⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 evon.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
字号:
/* $Header: /home/harrison/c/tcgmsg/ipcv4.0/RCS/evon.c,v 1.1 91/12/06 17:26:31 harrison Exp Locker: harrison $ *//* Crude FORTRAN interface to C event logging routines.   See evlog.c for more details.   FORTRAN character variables are so unportable that guaranteeing   that U can parse a variable length argument list is next to impossible.   This provides very basic event logging functionality.   CALL EVON()      enable logging.   CALL EVOFF()       disable logging.   CALL EVBGIN("event description")      push event onto state stack   CALL EVEND("event description")      pop event off state stack   CALL EVENT("event description")      log occurence of event that doesn't change state stack*/#ifdef IPSC#define bcopy(a, b, n) memcpy((b), (a), (n))#endif#if defined(ULTRIX) || defined(SGI) || defined(NEXT) || defined(HPUX) || \    defined(KSR)extern void *malloc();#elseextern char *malloc();#endif#include "evlog.h"/* These to get portable FORTRAN interface ... these routines   will not be called from C which has the superior evlog interface */#if (defined(AIX) || defined(NEXT) || defined(HPUX)) && !defined(EXTNAME)#define evon_     evon#define evoff_    evoff#define evbgin_   evbgin#define evend_    evend#define event_    event#endif#if (defined(CRAY) || defined(ARDENT))#define evon_     EVON#define evoff_    EVOFF#define evbgin_   EVBGIN#define evend_    EVEND#define event_    EVENT#endif/* Define crap for handling FORTRAN character arguments */#ifdef CRAY#include <fortran.h>#endif#ifdef ARDENTstruct char_desc {  char *string;  int len;};#endifvoid evon_(){#ifdef EVENTLOG  evlog(EVKEY_ENABLE, EVKEY_LAST_ARG);#endif}void evoff_(){#ifdef EVENTLOG  evlog(EVKEY_DISABLE, EVKEY_LAST_ARG);#endif}#ifdef ARDENTvoid evbgin_(arg)     struct char_desc *arg;{  char *string = arg->string;  int   len = arg->len;#endif#ifdef CRAYvoid evbgin_(arg)     _fcd arg;{  char *string = _fcdtocp(arg);  int len = _fcdlen(arg);#endif#if !defined(ARDENT) && !defined(CRAY)void evbgin_(string, len)  char *string;  int   len;{#endif#ifdef EVENTLOG  char *value = malloc( (unsigned) (len+1) );  if (value) {    (void) bcopy(string, value, len);    value[len] = '\0';    evlog(EVKEY_BEGIN, value, EVKEY_LAST_ARG);    (void) free(value);  }#endif}#ifdef ARDENTvoid evend_(arg)     struct char_desc *arg;{  char *string = arg->string;  int   len = arg->len;#endif#ifdef CRAYvoid evend_(arg)     _fcd arg;{  char *string = _fcdtocp(arg);  int len = _fcdlen(arg);#endif#if !defined(CRAY) && !defined(ARDENT)void evend_(string, len)  char *string;  int   len;{#endif#ifdef EVENTLOG  char *value = malloc( (unsigned) (len+1) );  if (value) {    (void) bcopy(string, value, len);    value[len] = '\0';    evlog(EVKEY_END, value, EVKEY_LAST_ARG);    (void) free(value);  }#endif}  #ifdef ARDENTvoid event_(arg)     struct char_desc *arg;{  char *string = arg->string;  int   len = arg->len;#endif#ifdef CRAYvoid event_(arg)     _fcd arg;{  char *string = _fcdtocp(arg);  int len = _fcdlen(arg);#endif#if !defined(ARDENT) && !defined(CRAY)void event_(string, len)  char *string;  int   len;{#endif#ifdef EVENTLOG  char *value = malloc( (unsigned) (len+1) );  if (value) {    (void) bcopy(string, value, len);    value[len] = '\0';    evlog(EVKEY_EVENT, value, EVKEY_LAST_ARG);    (void) free(value);  }#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -