亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sclproc.c

?? scl解析文件,歡迎大家學習共享,解析算法值得學習
?? C
?? 第 1 頁 / 共 5 頁
字號:
                    scl_do->type, scl_do->name);
      return (SD_FAILURE);
      }
    }	/* end "for (scl_do...)" loop	*/

  if (tdl_ctxt->tdlptr > save_ptr_after_head)
    {		/* tdl was added. Finish it.	*/
    /* add ending text "},\n"	*/
    if (tdladd_string (tdl_ctxt, "},\n")!=SD_SUCCESS)
      return (SD_FAILURE);	/* error (already logged)	*/
    }
  else
    {				/* FC is empty so rollback changes	*/
    tdl_ctxt->tdlptr = save_start;		/* restore orig ptr		*/
    tdl_ctxt->len_avail = save_avail;	/* restore orig len		*/
    *save_start = '\0';			/* write NULL at orig ptr	*/
    }

  return (SD_SUCCESS);		/* this is only "good" return	*/
  }	/* end tdladd_fc	*/
/************************************************************************/
/*			tdladd_rp_or_br					*/
/* RETURNS:	SD_SUCCESS or error code				*/
/* Add the TDL for special FC=RP or FC=BR at the current pointer	*/
/* (tdl_ctxt->tdlptr).							*/
/* Increase (tdl_ctxt->tdlptr) by the number of bytes added.		*/
/* Decrease (tdl_ctxt->len_avail) by the number of bytes added.		*/
/* CRITICAL: Last arg "buffered" must be SD_TRUE or SD_FALSE (other	*/
/*           non-zero values NOT treated the same as SD_TRUE).		*/
/************************************************************************/
static ST_RET tdladd_rp_or_br (
	TDLADD_CTXT *tdl_ctxt,
	SCL_INFO *scl_info,
	SCL_LNTYPE *scl_lntype,
	SCL_LN *scl_ln,
	ST_BOOLEAN buffered)	/* SD_TRUE to add "buffered" reports	*/
				/* SD_FALSE to add "unbuffered" reports	*/
				/* CRITICAL: no other values allowed	*/
  {
SCL_RCB *scl_rcb;
SCL_RCB_COUNTERS scl_rcb_counters;
SCL_DATASET *scl_dataset;
ST_RET retcode = SD_SUCCESS;
ST_INT count = 0;

  /* CRITICAL: start with all 0 in struct.	*/
  memset (&scl_rcb_counters, 0, sizeof (scl_rcb_counters));

  for (scl_rcb = (SCL_RCB *) list_find_last ((DBL_LNK *) scl_ln->rcbHead);
       scl_rcb != NULL;
       scl_rcb = (SCL_RCB *) list_find_prev ((DBL_LNK *) scl_ln->rcbHead, (DBL_LNK *) scl_rcb))
    {
    /* If RCB doesn't match the kind we're looking for, ignore it.	*/
    if (scl_rcb->buffered != buffered)
      continue;

    scl_dataset = scl_find_dataset (scl_ln, scl_rcb->datSet);
    if (scl_dataset == NULL)
      {
      SXLOG_ERR1 ("tdladd_rp_or_br: datSet='%s' not found", scl_rcb->datSet);
      return (SD_FAILURE);
      }

    /* NOTE: if NOT the type we're looking for, never get here (see 'continue' above)*/
    /* NOTE: don't chk every tdladd.. return. If one call fails, subsequent calls fail too.*/
    if (buffered)	/* looking for buffered & this is buffered	*/
      {
      if (count==0)
        tdladd_string (tdl_ctxt, "(BR){\n");	/* first one needs (BR)	*/
      }
    else		/* looking for unbuffered & this is unbuffered	*/
      {
      if (count==0)
        tdladd_string (tdl_ctxt, "(RP){\n");	/* first one needs (RP)	*/
      }
    tdladd_string (tdl_ctxt, "(");
    tdladd_string (tdl_ctxt, scl_rcb->name);

    if (tdladd_string (tdl_ctxt, ")")!=SD_SUCCESS)
      return (SD_FAILURE);	/* error (already logged)	*/

    /* NOTE: if NOT the type we're looking for, never get here (see 'continue' above)*/
    if (buffered)	/* looking for buffered & this is buffered	*/
      retcode = tdladd_string (tdl_ctxt, brcb_tdl);
    else		/* looking for unbuffered & this is unbuffered	*/
      retcode = tdladd_string (tdl_ctxt, urcb_tdl);

    if (retcode)		/* if error, stop	*/
      return (retcode);	

    count++;	/* increment count of rcb	*/
    }	/* end loop	*/

  /* If any found, add ending text.	*/
  if (count>0)
    retcode = tdladd_string (tdl_ctxt, "},\n");

  return (retcode);	/* NOTE: may have returned sooner on some errors*/
  }	/* end tdladd_rp_or_br	*/

/************************************************************************/
/* Fixed TDL for defining IEC Setting Group Control Block (sgcb)	*/
/************************************************************************/
ST_CHAR *sgcb_tdl = "{\
(NumOfSG)Ubyte,\
(ActSG)Ubyte,\
(EditSG)Ubyte,\
(CnfEdit)Bool,\
(LActTim)Utctime,\
},\n";	/* TDL for IEC Setting Group Control Block	*/

/************************************************************************/
/*			tdladd_sp					*/
/* RETURNS:	SD_SUCCESS or error code				*/
/* Add the TDL for special FC=SG at the current pointer	*/
/* (tdl_ctxt->tdlptr).							*/
/* Increase (tdl_ctxt->tdlptr) by the number of bytes added.		*/
/* Decrease (tdl_ctxt->len_avail) by the number of bytes added.		*/
/************************************************************************/
static ST_RET tdladd_sp (
	TDLADD_CTXT *tdl_ctxt,
	SCL_INFO *scl_info,
	SCL_LNTYPE *scl_lntype,
	SCL_LN *scl_ln)
  {
SCL_SGCB *scl_sgcb;
ST_INT count = 0;
ST_RET retcode = SD_SUCCESS;

  for (scl_sgcb = (SCL_SGCB *) list_find_last ((DBL_LNK *) scl_ln->sgcbHead);
       scl_sgcb != NULL;
       scl_sgcb = (SCL_SGCB *) list_find_prev ((DBL_LNK *) scl_ln->sgcbHead, (DBL_LNK *) scl_sgcb))
    {
    /* NOTE: don't chk every tdladd.. return. If one call fails, subsequent calls fail too.*/
    tdladd_string (tdl_ctxt, "(SP){\n");	/* first one needs (BR)	*/
    tdladd_string (tdl_ctxt, "(");
    tdladd_string (tdl_ctxt, "SGCB");

    if (tdladd_string (tdl_ctxt, ")")!=SD_SUCCESS)
      return (SD_FAILURE);	/* error (already logged)	*/

    /* NOTE: if NOT the type we're looking for, never get here (see 'continue' above)*/
    retcode = tdladd_string (tdl_ctxt, sgcb_tdl);

    if (retcode)		/* if error, stop	*/
      return (retcode);	

    count++;	/* increment count of rcb	*/
    }	/* end loop	*/

  /* If any found, add ending text.	*/
  if (count>0)
    retcode = tdladd_string (tdl_ctxt, "},\n");

  return (retcode);	/* NOTE: may have returned sooner on some errors*/
  }	/* end tdladd_sp	*/

/************************************************************************/
/*			tdladd_lg					*/
/* RETURNS:	SD_SUCCESS or error code				*/
/* Add the TDL for special FC=LG at the current pointer (tdl_ctxt->tdlptr).*/
/* Increase (tdl_ctxt->tdlptr) by the number of bytes added.		*/
/* Decrease (tdl_ctxt->len_avail) by the number of bytes added.		*/
/* NOTE: OptFlds in 61850-7-2 not mapped to MMS.			*/
/************************************************************************/
ST_CHAR *lcb_tdl = "{\
(LogEna)Bool,\
(LogRef)Vstring65,\
(DatSet)Vstring65,\
(OldEntrTm)Btime6,\
(NewEntrTm)Btime6,\
(OldEnt)Ostring8,\
(NewEnt)Ostring8,\
(OptFlds)BVString10,\
(TrgOps)BString6,\
(IntgPd)Ulong,\
},\n";	/* TDL for LCB (IEC Log Control Block)	*/

static ST_RET tdladd_lg (
	TDLADD_CTXT *tdl_ctxt,
	SCL_INFO *scl_info,
	SCL_LNTYPE *scl_lntype,
	SCL_LN *scl_ln)
  {
SCL_LCB *scl_lcb;
SCL_DATASET *scl_dataset;
ST_RET retcode = SD_SUCCESS;
ST_INT count = 0;

  for (scl_lcb = (SCL_LCB *) list_find_last ((DBL_LNK *) scl_ln->lcbHead);
       scl_lcb != NULL;
       scl_lcb = (SCL_LCB *) list_find_prev ((DBL_LNK *) scl_ln->lcbHead, (DBL_LNK *) scl_lcb))
    {
    scl_dataset = scl_find_dataset (scl_ln, scl_lcb->datSet);
    if (scl_dataset == NULL)
      {
      SXLOG_ERR1 ("tdladd_lg: datSet='%s' not found", scl_lcb->datSet);
      return (SD_FAILURE);
      }

    if (count==0)
      retcode = tdladd_string (tdl_ctxt, "(LG){\n(");	/* first one needs (LG)	*/
    else
      retcode = tdladd_string (tdl_ctxt, "(");

    if (retcode)		/* if error, stop	*/
      return (retcode);

    /* Add lcb name as component name.*/  
    if (tdladd_string (tdl_ctxt, scl_lcb->name)!=SD_SUCCESS)
      return (SD_FAILURE);	/* error (already logged)	*/

    if (tdladd_string (tdl_ctxt, ")")!=SD_SUCCESS)	/* add end of comp name	*/
      return (SD_FAILURE);	/* error (already logged)	*/

    retcode = tdladd_string (tdl_ctxt, lcb_tdl);

    if (retcode)		/* if error, stop	*/
      return (retcode);	

    count++;	/* increment count of lcb	*/
    }	/* end loop	*/

  /* If any found, add ending text.	*/
  if (count>0)
    retcode = tdladd_string (tdl_ctxt, "},\n");

  return (retcode);	/* NOTE: may have returned sooner on some errors*/
  }	/* end tdladd_lg	*/

/************************************************************************/
/*			tdladd_go_or_gs					*/
/* RETURNS:	SD_SUCCESS or error code				*/
/* Add the TDL for special FC=GO or FC=GS at the current pointer	*/
/* (tdl_ctxt->tdlptr).							*/
/* Increase (tdl_ctxt->tdlptr) by the number of bytes added.		*/
/* Decrease (tdl_ctxt->len_avail) by the number of bytes added.		*/
/************************************************************************/
ST_CHAR *gcb_tdl = "{\
(GoEna)Bool,\
(GoID)Vstring65,\
(DatSet)Vstring65,\
(ConfRev)Ulong,\
(NdsCom)Bool,\
(DstAddress){\
  (Addr)Ostring6,\
  (PRIORITY)Ubyte,\
  (VID)Ushort,\
  (APPID)Ushort,\
},\
(Mode)Ubyte,\
},\n";	/* TDL for GCB (GOOSE Control Block)	*/

ST_CHAR *scb_tdl = "{\
(GsEna)Bool,\
(GsID)Vstring65,\
(DNALabels)[32:Vstring65],\
(UserSTLabels)[128:Vstring65],\
(LSentData) {\
  (GsID)Vstring65,\
  (t)Btime6,\
  (SqNum)Ulong,\
  (StNum)Ulong,\
  (TAL)Ulong,\
  (usec)Ulong,\
  (PhsID)Ushort,\
  (DNA)Bstring64,\
  (UserST)Bstring256,\
},\
},\n";	/* TDL for SCB (GSSE Control Block)	*/

static ST_RET tdladd_go_or_gs (
	TDLADD_CTXT *tdl_ctxt,
	SCL_INFO *scl_info,
	SCL_LNTYPE *scl_lntype,
	SCL_LN *scl_ln,
	ST_BOOLEAN isGoose)	/* SD_TRUE to add GOOSE (FC=GO)		*/
				/* SD_FALSE to add GSSE (FC=GS)		*/
				/* CRITICAL: no other values allowed	*/
  {
SCL_GCB *scl_gcb;
SCL_DATASET *scl_dataset;
ST_RET retcode = SD_SUCCESS;
ST_INT count = 0;

  for (scl_gcb = (SCL_GCB *) list_find_last ((DBL_LNK *) scl_ln->gcbHead);
       scl_gcb != NULL;
       scl_gcb = (SCL_GCB *) list_find_prev ((DBL_LNK *) scl_ln->gcbHead, (DBL_LNK *) scl_gcb))
    {
    /* If GCB doesn't match the kind we're looking for, ignore it.	*/
    if (scl_gcb->isGoose != isGoose)
      continue;

    /* NOTE: if NOT the type we're looking for, never get here (see 'continue' above)*/
    if (scl_gcb->isGoose)
      {
      /* GOOSE needs dataset. Find it now.	*/
      scl_dataset = scl_find_dataset (scl_ln, scl_gcb->datSet);
      if (scl_dataset == NULL)
        {
        SXLOG_ERR1 ("tdladd_go_or_gs: datSet='%s' not found", scl_gcb->datSet);
        return (SD_FAILURE);
        }

      if (count==0)
        retcode = tdladd_string (tdl_ctxt, "(GO){\n(");	/* first one needs (GO)	*/
      else
        retcode = tdladd_string (tdl_ctxt, "(");
      }
    else
      {
      if (count==0)
        retcode = tdladd_string (tdl_ctxt, "(GS){\n(");	/* first one needs (GS)	*/
      else
        retcode = tdladd_string (tdl_ctxt, "(");
      }

    if (retcode)		/* if error, stop	*/
      return (retcode);

    /* Add gcb name as component name.*/  
    if (tdladd_string (tdl_ctxt, scl_gcb->name)!=SD_SUCCESS)
      return (SD_FAILURE);	/* error (already logged)	*/

    if (tdladd_string (tdl_ctxt, ")")!=SD_SUCCESS)	/* add end of comp name	*/
      return (SD_FAILURE);	/* error (already logged)	*/

    /* NOTE: if NOT the type we're looking for, never get here (see 'continue' above)*/
    if (scl_gcb->isGoose)	/* looking for GOOSE & this is GOOSE	*/
      retcode = tdladd_string (tdl_ctxt, gcb_tdl);
    else			/* looking for GSSE & this is GSSE	*/
      retcode = tdladd_string (tdl_ctxt, scb_tdl);

    if (retcode)		/* if error, stop	*/
      return (retcode);	

    count++;	/* increment count of gcb	*/
    }	/* end loop	*/

  /* If any found, add ending text.	*/
  if (count>0)
    retcode = tdladd_string (tdl_ctxt, "},\n");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产aⅴ综合色| 精品99999| 精品国精品国产尤物美女| 亚洲国产高清在线观看视频| 一区二区免费在线| 国产69精品久久777的优势| 7777精品伊人久久久大香线蕉| 国产色婷婷亚洲99精品小说| 天堂成人国产精品一区| 成人动漫一区二区三区| 日韩欧美国产三级| 洋洋成人永久网站入口| 成人妖精视频yjsp地址| 日韩精品中文字幕在线不卡尤物 | 老司机精品视频线观看86| 91小视频免费看| 久久久精品蜜桃| 美国av一区二区| 欧美日韩一区二区三区在线| 中文字幕五月欧美| 国产成人精品免费看| 精品剧情在线观看| 欧美aaaaa成人免费观看视频| 一本色道久久综合亚洲91| 国产欧美精品在线观看| 国产在线不卡视频| 日韩欧美一区二区在线视频| 亚洲激情校园春色| 色悠悠久久综合| 中文字幕在线不卡国产视频| 懂色av中文字幕一区二区三区 | 欧美中文字幕不卡| 一区二区三区四区不卡在线| 91在线播放网址| 国产精品大尺度| 色呦呦国产精品| 亚洲精品高清在线| 日本韩国一区二区三区视频| 亚洲免费在线观看| 欧美在线999| 日本伊人色综合网| 日韩女优电影在线观看| 国产一区二区三区高清播放| 国产亚洲综合在线| 成人午夜免费电影| 亚洲乱码国产乱码精品精小说| 91日韩在线专区| 性久久久久久久久| 日韩欧美专区在线| 丁香激情综合五月| 亚洲欧美另类图片小说| 欧美日韩一区二区三区四区五区 | 国产中文字幕精品| 国产欧美日韩综合| 色综合色狠狠天天综合色| 亚洲综合偷拍欧美一区色| 欧美日韩国产一区二区三区地区| 日韩国产在线观看| 国产喂奶挤奶一区二区三区 | 国产毛片一区二区| 国产精品久久777777| 色爱区综合激月婷婷| 视频一区欧美日韩| 国产喷白浆一区二区三区| 色综合激情五月| 久久电影网站中文字幕| 亚洲色图制服丝袜| 91精品国产综合久久久久久漫画 | 三级欧美韩日大片在线看| 精品黑人一区二区三区久久| youjizz国产精品| 青青草91视频| 亚洲欧美色图小说| 久久综合五月天婷婷伊人| 91免费精品国自产拍在线不卡| 欧美aaa在线| 亚洲视频资源在线| 精品国产一区久久| 欧美性大战久久久| 成人爽a毛片一区二区免费| 视频在线观看国产精品| 中文字幕在线一区免费| 日韩三区在线观看| 欧美伊人久久久久久久久影院 | 人妖欧美一区二区| 亚洲免费毛片网站| 久久美女艺术照精彩视频福利播放| 欧美在线免费播放| 成人性生交大片免费看中文网站| 日韩精品乱码免费| 亚洲另类色综合网站| 国产欧美一区二区精品性色| 91精品国产91热久久久做人人| 91片在线免费观看| 国产另类ts人妖一区二区| 丝袜亚洲精品中文字幕一区| 亚洲欧美日韩系列| 欧美国产97人人爽人人喊| 精品少妇一区二区三区在线播放 | 日韩欧美aaaaaa| 欧美日韩成人高清| 在线亚洲+欧美+日本专区| 粗大黑人巨茎大战欧美成人| 久久99久久久久久久久久久| 日精品一区二区| 午夜精品久久久久久久99水蜜桃| 亚洲男人天堂av网| 综合欧美一区二区三区| 国产亚洲欧美日韩日本| 久久综合给合久久狠狠狠97色69| 欧美一区二区国产| 欧美一级一区二区| 91精品国产综合久久福利软件| 欧美日韩国产美女| 欧美三级中文字幕在线观看| 色8久久人人97超碰香蕉987| 波多野结衣中文字幕一区二区三区| 国产成人综合在线播放| 东方aⅴ免费观看久久av| 风间由美中文字幕在线看视频国产欧美 | xfplay精品久久| 精品少妇一区二区三区日产乱码 | 国产精品欧美一区二区三区| 久久久另类综合| 国产亚洲一本大道中文在线| 精品久久久久久无| 久久女同互慰一区二区三区| 久久久久久一二三区| 亚洲国产精品99久久久久久久久 | 日韩中文字幕麻豆| 免费成人在线视频观看| 麻豆精品在线观看| 国产在线精品一区二区不卡了| 国产成人日日夜夜| 99国产麻豆精品| 欧美性大战久久久| 日韩精品中文字幕一区| 国产亚洲制服色| 伊人一区二区三区| 免费高清在线一区| 丁香网亚洲国际| 91国在线观看| 欧美大肚乱孕交hd孕妇| 国产三级欧美三级| 亚洲免费观看高清完整版在线观看 | 91国产免费观看| 91精选在线观看| 国产免费成人在线视频| 一区二区三区国产精品| 美女国产一区二区三区| 成人精品视频网站| 欧美日韩精品电影| 国产嫩草影院久久久久| 亚洲国产精品一区二区久久| 精品一区二区三区在线播放视频 | ...xxx性欧美| 美腿丝袜亚洲色图| 91原创在线视频| 精品人在线二区三区| 亚洲欧洲在线观看av| 日本vs亚洲vs韩国一区三区| 成人激情图片网| 欧美一区二区精品在线| 最新国产成人在线观看| 久久精品国产亚洲5555| 色婷婷av一区二区三区之一色屋| 日韩一区二区免费电影| 一卡二卡三卡日韩欧美| 国产精品99久久久久久久女警 | 五月激情综合网| 成人精品视频一区二区三区| 日韩一区二区三区免费观看| 亚洲日本青草视频在线怡红院 | 免费成人美女在线观看| 一本色道久久综合狠狠躁的推荐 | 亚洲婷婷综合久久一本伊一区 | 亚洲精品成人精品456| 国产在线视频不卡二| 欧美男人的天堂一二区| 国产精品国产三级国产普通话三级 | 欧美一级高清片| 亚洲一区在线观看视频| 成人免费毛片嘿嘿连载视频| 日韩免费看的电影| 香蕉乱码成人久久天堂爱免费| 成人一区二区三区在线观看| 久久网站最新地址| 免费在线视频一区| 欧美福利一区二区| 亚洲自拍与偷拍| 色噜噜久久综合| 亚洲人123区| 91一区二区在线观看| 一区在线中文字幕| 成人综合婷婷国产精品久久免费| 亚洲精品伦理在线| 色天天综合色天天久久| 自拍偷在线精品自拍偷无码专区| 不卡一卡二卡三乱码免费网站| 国产午夜精品久久久久久久|