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

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

?? ipc.c

?? 支持數字元件仿真的SPICE插件
?? C
?? 第 1 頁 / 共 2 頁
字號:
This function sends a line of text over the interprocesscommunication channel.*/Ipc_Status_t ipc_send_line (str)     char               *str;     /* The text to send */{    int len;   int send_len;   char  *s;   Ipc_Status_t  status;   len = strlen(str);   /* if short string, send it immediately */   if(len < 80)      status = ipc_send_line_binary (str, len);   else {      /* otherwise, we have to send it as multiple strings */      /* because Mspice cannot handle things longer than 80 chars */      s = str;      while(len > 0) {         if(len < 80)            send_len = len;         else            send_len = 79;         status = ipc_send_line_binary (str, send_len);         if(status != IPC_STATUS_OK)            break;         s += send_len;         len -= send_len;      }   }   return(status);}/*---------------------------------------------------------------------------*//*ipc_send_data_prefixThis function sends a ``>DATAB'' line over the interprocesscommunication channel to signal that this is the beginning of aresults dump for the current analysis point.*/Ipc_Status_t ipc_send_data_prefix (time)     double             time;    /* The analysis point for this data set */{   char buffer[40];   sprintf (buffer, ">DATAB %.5E", time);   return ipc_send_line (buffer);}/*---------------------------------------------------------------------------*//*ipc_send_data_suffixThis function sends a ``>ENDDATA'' line over the interprocesscommunication channel to signal that this is the end of a resultsdump from a particular analysis point.*/Ipc_Status_t ipc_send_data_suffix (){   Ipc_Status_t  status;   status = ipc_send_line (">ENDDATA");   if(status != IPC_STATUS_OK)       return(status);   return(ipc_flush());}/*---------------------------------------------------------------------------*//*ipc_send_dcop_prefixThis function sends a ``>DCOPB'' line over the interprocesscommunication channel to signal that this is the beginning of aresults dump from a DC operating point analysis.*/Ipc_Status_t ipc_send_dcop_prefix (){   return ipc_send_line (">DCOPB");}/*---------------------------------------------------------------------------*//*ipc_send_dcop_suffixThis function sends a ``>ENDDATA'' line over the interprocesscommunication channel to signal that this is the end of a resultsdump from a particular analysis point.*/Ipc_Status_t ipc_send_dcop_suffix (){   Ipc_Status_t  status;   status = ipc_send_line (">ENDDCOP");   if(status != IPC_STATUS_OK)       return(status);   return(ipc_flush());}/*---------------------------------------------------------------------------*//*ipc_send_evtdict_prefixThis function sends a ``>EVTDICT'' line over the interprocesscommunication channel to signal that this is the beginning of anevent-driven node dictionary.The line is sent only if the IPC is configuredfor UNIX sockets, indicating use with the V2 ATESSE SI process.*/Ipc_Status_t ipc_send_evtdict_prefix (){#ifdef IPC_AEGIS_MAILBOXES   return IPC_STATUS_OK;#else   return ipc_send_line (">EVTDICT");#endif}/*---------------------------------------------------------------------------*//*ipc_send_evtdict_suffixThis function sends a ``>ENDDICT'' line over the interprocesscommunication channel to signal that this is the end of anevent-driven node dictionary.The line is sent only if the IPC is configuredfor UNIX sockets, indicating use with the V2 ATESSE SI process.*/Ipc_Status_t ipc_send_evtdict_suffix (){#ifdef IPC_AEGIS_MAILBOXES   return IPC_STATUS_OK;#else   Ipc_Status_t  status;   status = ipc_send_line (">ENDDICT");   if(status != IPC_STATUS_OK)       return(status);   return(ipc_flush());#endif}/*---------------------------------------------------------------------------*//*ipc_send_evtdata_prefixThis function sends a ``>EVTDATA'' line over the interprocesscommunication channel to signal that this is the beginning of anevent-driven node data block.The line is sent only if the IPC is configuredfor UNIX sockets, indicating use with the V2 ATESSE SI process.*/Ipc_Status_t ipc_send_evtdata_prefix (){#ifdef IPC_AEGIS_MAILBOXES   return IPC_STATUS_OK;#else   return ipc_send_line (">EVTDATA");#endif}/*---------------------------------------------------------------------------*//*ipc_send_evtdata_suffixThis function sends a ``>ENDDATA'' line over the interprocesscommunication channel to signal that this is the end of anevent-driven node data block.The line is sent only if the IPC is configuredfor UNIX sockets, indicating use with the V2 ATESSE SI process.*/Ipc_Status_t ipc_send_evtdata_suffix (){#ifdef IPC_AEGIS_MAILBOXES   return IPC_STATUS_OK;#else   Ipc_Status_t  status;   status = ipc_send_line (">ENDDATA");   if(status != IPC_STATUS_OK)       return(status);   return(ipc_flush());#endif}/*---------------------------------------------------------------------------*//*ipc_send_errchkThis function sends a ``\ERRCHK [GO|NOGO]'' message over theinterprocess communication channel to signal that the initialparsing of the input deck has been completed and to indicatewhether or not errors were detected.*/Ipc_Status_t ipc_send_errchk(){    char str[IPC_MAX_LINE_LEN+1];    Ipc_Status_t  status;    if(g_ipc.errchk_sent)        return(IPC_STATUS_OK);    if(g_ipc.syntax_error)        sprintf(str, "#ERRCHK NOGO");    else        sprintf(str, "#ERRCHK GO");    g_ipc.errchk_sent = IPC_TRUE;    status = ipc_send_line(str);    if(status != IPC_STATUS_OK)        return(status);    return(ipc_flush());}/*---------------------------------------------------------------------------*//*ipc_send_endThis function sends either an ``>ENDANAL'' or an ``>ABORTED'' messageover the interprocess communication channel together with thetotal CPU time used to indicate whether or not the simulationcompleted normally.*/Ipc_Status_t ipc_send_end(){    char str[IPC_MAX_LINE_LEN+1];    Ipc_Status_t  status;    if(g_ipc.syntax_error || g_ipc.run_error)        sprintf(str, ">ABORTED %.4f", g_ipc.cpu_time);    else        sprintf(str, ">ENDANAL %.4f", g_ipc.cpu_time);    status = ipc_send_line(str);    if(status != IPC_STATUS_OK)        return(status);    return(ipc_flush());}/*---------------------------------------------------------------------------*/static int stuff_binary_v1 (d1, d2, n, buf, pos)     double     d1, d2;         /* doubles to be stuffed                */     int        n;              /* how many of d1, d2 ( 1 <= n <= 2 )   */     char       *buf;           /* buffer to stuff to                   */     int        pos;            /* index at which to stuff              */{   union {      float float_val[2];      char ch[32];   } trick;   int i, j;      assert (protocol == IPC_PROTOCOL_V1);   assert (sizeof(float) == 4);   assert (sizeof(char)  == 1);   assert ((n >= 1) && (n <= 2));   trick.float_val[0] = d1;   if (n > 1) {      trick.float_val[1] = d2;   }   for (i = 0, j = pos; i < n*sizeof(float); j++, i++)      buf[j] = trick.ch[i];   i = sizeof(float)*n + pos;   buf[0] = 'A' + i - 1;    return i;}/*---------------------------------------------------------------------------*//*ipc_send_doubleThis function sends a double data value over the interprocesscommunication channel preceded by a character string thatidentifies the simulation variable.*/Ipc_Status_t ipc_send_double (tag, value)     char               *tag;    /* The node or instance */     double             value;   /* The data value to send */{   int i;   int len;   int fmt_buffer_len;              switch (protocol) {   case IPC_PROTOCOL_V1:      strcpy (fmt_buffer, " "); /* save room for the length byte */      strcat (fmt_buffer, tag);      strcat (fmt_buffer, " ");      /* If talking to Mentor tools, must force upper case for Mspice 7.0 */      fmt_buffer_len = strlen(fmt_buffer);      for(i = 0; i < fmt_buffer_len; i++) {          if(islower(fmt_buffer[i]))              fmt_buffer[i] = toupper(fmt_buffer[i]);      }      len = stuff_binary_v1 (value, 0.0, 1, fmt_buffer, strlen(fmt_buffer));      break;   case IPC_PROTOCOL_V2:      break;   }   return ipc_send_line_binary (fmt_buffer, len);}/*---------------------------------------------------------------------------*//*ipc_send_complexThis function sends a complex data value over the interprocesscommunication channel preceded by a character string thatidentifies the simulation variable.*/Ipc_Status_t ipc_send_complex (tag, value)     char               *tag;    /* The node or instance */     Ipc_Complex_t      value;   /* The data value to send */{   int i;   int len;   int fmt_buffer_len;              switch (protocol) {   case IPC_PROTOCOL_V1:      strcpy (fmt_buffer, " "); /* save room for the length byte */      strcat (fmt_buffer, tag);      strcat (fmt_buffer, " ");      /* If talking to Mentor tools, must force upper case for Mspice 7.0 */      fmt_buffer_len = strlen(fmt_buffer);      for(i = 0; i < fmt_buffer_len; i++) {          if(islower(fmt_buffer[i]))              fmt_buffer[i] = toupper(fmt_buffer[i]);      }      len = stuff_binary_v1 (value.real, value.imag, 2, fmt_buffer,                             strlen(fmt_buffer));      break;   case IPC_PROTOCOL_V2:      break;   }   return ipc_send_line_binary (fmt_buffer, len);}/*---------------------------------------------------------------------------*//*ipc_send_eventThis function sends data from an event-driven node over the interprocesscommunication channel.  The data is sent only if the IPC is configuredfor UNIX sockets, indicating use with the V2 ATESSE SI process.*/Ipc_Status_t ipc_send_event(ipc_index, step, plot_val, print_val, ipc_val, len)    int         ipc_index;      /* Index used in EVTDICT */    double      step;           /* Analysis point or timestep (0.0 for DC) */    double      plot_val;       /* The value for plotting purposes */    char        *print_val;     /* The value for printing purposes */    void        *ipc_val;       /* The binary representation of the node data */    int         len;            /* The length of the binary representation */{#ifdef IPC_AEGIS_MAILBOXES   return IPC_STATUS_OK;#else   char         buff[OUT_BUFFER_SIZE];   int          i;   int          buff_len;   char         *buff_ptr;   char         *temp_ptr;   float        fvalue;   /* Report error if size of data is too big for IPC channel block size */   if((len + strlen(print_val) + 100) >= OUT_BUFFER_SIZE) {      printf("ERROR - Size of event-driven data too large for IPC channel\n");      return IPC_STATUS_ERROR;   }   /* Place the index into the buffer with a trailing space */   sprintf(buff, "%d ", ipc_index);   assert(sizeof(float) == 4);   assert(sizeof(int) == 4);   /* Put the analysis step bytes in */   buff_len = strlen(buff);   buff_ptr = buff + buff_len;   fvalue = step;   temp_ptr = (char *) &fvalue;   for(i = 0; i < 4; i++) {      *buff_ptr = temp_ptr[i];      buff_ptr++;      buff_len++;   }   /* Put the plot value in */   fvalue = plot_val;   temp_ptr = (char *) &fvalue;   for(i = 0; i < 4; i++) {      *buff_ptr = temp_ptr[i];      buff_ptr++;      buff_len++;   }   /* Put the length of the binary representation in */   temp_ptr = (char *) &len;   for(i = 0; i < 4; i++) {      *buff_ptr = temp_ptr[i];      buff_ptr++;      buff_len++;   }   /* Put the binary representation bytes in last */   temp_ptr = ipc_val;   for(i = 0; i < len; i++)      buff_ptr[i] = temp_ptr[i];   buff_ptr += len;   buff_len += len;   /* Put the print value in */   strcpy(buff_ptr, print_val);   buff_ptr += strlen(print_val);   buff_len += strlen(print_val);   /* Send the data to the IPC channel */   return ipc_send_line_binary(buff, buff_len);#endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区激情小说| 日韩午夜激情av| 成人一区二区三区在线观看| 另类中文字幕网| 麻豆专区一区二区三区四区五区| 亚洲高清视频的网址| 天天av天天翘天天综合网| 亚洲福利视频导航| 亚洲国产日韩综合久久精品| 亚洲无线码一区二区三区| 午夜视频在线观看一区二区三区| 午夜激情一区二区| 欧美a级一区二区| 国产一区二区三区日韩| 成人午夜视频在线观看| 91年精品国产| 欧美高清精品3d| 久久精品亚洲精品国产欧美kt∨| 国产午夜亚洲精品不卡| 亚洲三级在线看| 午夜精品成人在线视频| 国产中文字幕一区| 色女孩综合影院| 日韩一级精品视频在线观看| 久久天堂av综合合色蜜桃网| 国产精品美女久久久久久2018| 一区二区三区在线视频免费| 日本亚洲欧美天堂免费| 国产91精品入口| 欧美日韩一区精品| 久久天堂av综合合色蜜桃网| 一区二区三区在线播放| 久久国产乱子精品免费女| 91片在线免费观看| 亚洲精品在线网站| 亚洲激情男女视频| 国产suv一区二区三区88区| 日本高清不卡视频| 日本一区二区免费在线观看视频| 一区二区三区丝袜| 丰满白嫩尤物一区二区| 欧美高清性hdvideosex| 国产精品网友自拍| 天天色图综合网| www.欧美.com| 欧美一区二区视频在线观看2020| 国产精品成人网| 韩国视频一区二区| 91精品婷婷国产综合久久竹菊| 亚洲国产电影在线观看| 天天影视网天天综合色在线播放| www.欧美.com| 久久精品人人做人人综合| 日韩精品视频网站| 欧美日免费三级在线| 日韩码欧中文字| 成人激情午夜影院| 久久午夜羞羞影院免费观看| 日本少妇一区二区| 欧美三级韩国三级日本三斤| 成人欧美一区二区三区视频网页 | www.成人网.com| 久久亚洲二区三区| 免费观看在线色综合| 欧美日韩大陆在线| 亚洲免费在线看| 91网页版在线| 中文字幕制服丝袜一区二区三区 | 韩国三级在线一区| 欧美一级免费观看| 奇米四色…亚洲| 在线不卡的av| 视频在线观看一区| 欧美一区二区三区视频免费| 无吗不卡中文字幕| 欧美日韩成人在线| 日韩国产精品91| 日韩一级在线观看| 国产一区二区91| 国产日产欧美一区二区视频| 国产一区二区三区四区五区入口| 亚洲精品一区二区三区精华液 | 国产美女精品一区二区三区| 日韩欧美在线综合网| 麻豆成人久久精品二区三区红| 在线成人av网站| 久久国产精品免费| 欧美国产综合一区二区| 99视频精品免费视频| 亚洲男人的天堂一区二区| 欧美色网一区二区| 日韩精品高清不卡| 国产亚洲综合在线| 色94色欧美sute亚洲线路一久| 亚洲国产日产av| 精品国产乱码91久久久久久网站| 国产一区二区三区免费| 亚洲私人黄色宅男| 欧美性大战xxxxx久久久| 日韩精品高清不卡| 久久久91精品国产一区二区精品 | 日本一区二区三区dvd视频在线| 成人午夜av在线| 亚洲图片有声小说| 日韩免费看网站| 99国内精品久久| 日韩国产在线观看| 亚洲国产精品t66y| 欧美精品aⅴ在线视频| 国产不卡免费视频| 三级久久三级久久久| 日本一区二区三区dvd视频在线 | 男女男精品视频| 国产精品欧美一区二区三区| 欧美体内she精高潮| 国产精品资源在线观看| 亚洲一二三区视频在线观看| 久久久一区二区三区| 欧美羞羞免费网站| 福利电影一区二区| 裸体一区二区三区| 亚洲欧美日韩国产中文在线| 精品国产一区二区三区久久久蜜月 | 欧美电影免费提供在线观看| 成人app网站| 国产乱码精品一品二品| 五月天网站亚洲| 国产精品不卡一区| 国产亚洲欧洲一区高清在线观看| 欧美精品在线一区二区| 一本大道久久a久久精品综合| 国产精品一区二区在线观看不卡 | 久久国产夜色精品鲁鲁99| 亚洲老妇xxxxxx| 欧美极品aⅴ影院| 精品国产凹凸成av人导航| 欧美群妇大交群的观看方式| 一本色道亚洲精品aⅴ| 国产精品综合av一区二区国产馆| 日本欧美一区二区在线观看| 亚洲一二三区在线观看| 综合网在线视频| 亚洲国产高清不卡| 亚洲国产精品传媒在线观看| 久久久午夜电影| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美精选在线播放| 欧美熟乱第一页| 欧美三级日韩在线| 欧美人妖巨大在线| 欧美另类z0zxhd电影| 欧美主播一区二区三区| 在线视频国内自拍亚洲视频| 波多野结衣精品在线| 成人av资源站| 99精品视频在线观看免费| 粉嫩aⅴ一区二区三区四区五区 | 亚洲午夜激情网站| 天天影视色香欲综合网老头| 日韩成人免费在线| 久久成人免费电影| 国产一区二区女| 成人激情午夜影院| 色94色欧美sute亚洲线路二| 一本一道久久a久久精品综合蜜臀| 一本到不卡精品视频在线观看| 91黄视频在线观看| 欧美美女一区二区三区| 欧美成人猛片aaaaaaa| 久久综合给合久久狠狠狠97色69| 久久久精品免费观看| 18欧美亚洲精品| 亚洲www啪成人一区二区麻豆| 日本麻豆一区二区三区视频| 久久99日本精品| 成人av小说网| 精品视频在线看| 久久久精品免费免费| 亚洲男女毛片无遮挡| 免费人成在线不卡| 成人黄色免费短视频| 欧美性一二三区| 久久久久久久久蜜桃| 亚洲美女一区二区三区| 日本aⅴ精品一区二区三区| 国产精品一色哟哟哟| 色欧美88888久久久久久影院| 91精品国产欧美一区二区 | 在线视频国内一区二区| 宅男噜噜噜66一区二区66| 国产欧美一区二区精品性色超碰| 一区二区三区日韩精品视频| 日韩精品电影一区亚洲| 不卡一区二区中文字幕| 日韩欧美你懂的| 一区二区在线观看免费视频播放| 麻豆一区二区三| 91国偷自产一区二区使用方法| 日韩视频在线观看一区二区| 亚洲欧美激情视频在线观看一区二区三区 |