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

📄 tcl8.0.h

📁 一个用在mips体系结构中的操作系统
💻 H
📖 第 1 页 / 共 4 页
字号:
typedef struct Tcl_HashTable {    Tcl_HashEntry **buckets;		/* Pointer to bucket array.  Each					 * element points to first entry in					 * bucket's hash chain, or NULL. */    Tcl_HashEntry *staticBuckets[TCL_SMALL_HASH_TABLE];					/* Bucket array used for small tables					 * (to avoid mallocs and frees). */    int numBuckets;			/* Total number of buckets allocated					 * at **bucketPtr. */    int numEntries;			/* Total number of entries present					 * in table. */    int rebuildSize;			/* Enlarge table when numEntries gets					 * to be this large. */    int downShift;			/* Shift count used in hashing					 * function.  Designed to use high-					 * order bits of randomized keys. */    int mask;				/* Mask value used in hashing					 * function. */    int keyType;			/* Type of keys used in this table. 					 * It's either TCL_STRING_KEYS,					 * TCL_ONE_WORD_KEYS, or an integer					 * giving the number of ints that                                         * is the size of the key.					 */    Tcl_HashEntry *(*findProc) _ANSI_ARGS_((struct Tcl_HashTable *tablePtr,	    CONST char *key));    Tcl_HashEntry *(*createProc) _ANSI_ARGS_((struct Tcl_HashTable *tablePtr,	    CONST char *key, int *newPtr));} Tcl_HashTable;/* * Structure definition for information used to keep track of searches * through hash tables: */typedef struct Tcl_HashSearch {    Tcl_HashTable *tablePtr;		/* Table being searched. */    int nextIndex;			/* Index of next bucket to be					 * enumerated after present one. */    Tcl_HashEntry *nextEntryPtr;	/* Next entry to be enumerated in the					 * the current bucket. */} Tcl_HashSearch;/* * Acceptable key types for hash tables: */#define TCL_STRING_KEYS		0#define TCL_ONE_WORD_KEYS	1/* * Macros for clients to use to access fields of hash entries: */#define Tcl_GetHashValue(h) ((h)->clientData)#define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value))#define Tcl_GetHashKey(tablePtr, h) \    ((char *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS) ? (h)->key.oneWordValue \						: (h)->key.string))/* * Macros to use for clients to use to invoke find and create procedures * for hash tables: */#define Tcl_FindHashEntry(tablePtr, key) \	(*((tablePtr)->findProc))(tablePtr, key)#define Tcl_CreateHashEntry(tablePtr, key, newPtr) \	(*((tablePtr)->createProc))(tablePtr, key, newPtr)/* * Flag values to pass to Tcl_DoOneEvent to disable searches * for some kinds of events: */#define TCL_DONT_WAIT		(1<<1)#define TCL_WINDOW_EVENTS	(1<<2)#define TCL_FILE_EVENTS		(1<<3)#define TCL_TIMER_EVENTS	(1<<4)#define TCL_IDLE_EVENTS		(1<<5)	/* WAS 0x10 ???? */#define TCL_ALL_EVENTS		(~TCL_DONT_WAIT)/* * The following structure defines a generic event for the Tcl event * system.  These are the things that are queued in calls to Tcl_QueueEvent * and serviced later by Tcl_DoOneEvent.  There can be many different * kinds of events with different fields, corresponding to window events, * timer events, etc.  The structure for a particular event consists of * a Tcl_Event header followed by additional information specific to that * event. */struct Tcl_Event {    Tcl_EventProc *proc;	/* Procedure to call to service this event. */    struct Tcl_Event *nextPtr;	/* Next in list of pending events, or NULL. */};/* * Positions to pass to Tcl_QueueEvent: */typedef enum {    TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK} Tcl_QueuePosition;/* * Values to pass to Tcl_SetServiceMode to specify the behavior of notifier * event routines. */#define TCL_SERVICE_NONE 0#define TCL_SERVICE_ALL 1/* * The following structure keeps is used to hold a time value, either as * an absolute time (the number of seconds from the epoch) or as an * elapsed time. On Unix systems the epoch is Midnight Jan 1, 1970 GMT. * On Macintosh systems the epoch is Midnight Jan 1, 1904 GMT. */typedef struct Tcl_Time {    long sec;			/* Seconds. */    long usec;			/* Microseconds. */} Tcl_Time;/* * Bits to pass to Tcl_CreateFileHandler and Tcl_CreateChannelHandler * to indicate what sorts of events are of interest: */#define TCL_READABLE	(1<<1)#define TCL_WRITABLE	(1<<2)#define TCL_EXCEPTION	(1<<3)/* * Flag values to pass to Tcl_OpenCommandChannel to indicate the * disposition of the stdio handles.  TCL_STDIN, TCL_STDOUT, TCL_STDERR, * are also used in Tcl_GetStdChannel. */#define TCL_STDIN		(1<<1)	#define TCL_STDOUT		(1<<2)#define TCL_STDERR		(1<<3)#define TCL_ENFORCE_MODE	(1<<4)/* * Typedefs for the various operations in a channel type: */typedef int	(Tcl_DriverBlockModeProc) _ANSI_ARGS_((		    ClientData instanceData, int mode));typedef int	(Tcl_DriverCloseProc) _ANSI_ARGS_((ClientData instanceData,		    Tcl_Interp *interp));typedef int	(Tcl_DriverInputProc) _ANSI_ARGS_((ClientData instanceData,		    char *buf, int toRead, int *errorCodePtr));typedef int	(Tcl_DriverOutputProc) _ANSI_ARGS_((ClientData instanceData,		    char *buf, int toWrite, int *errorCodePtr));typedef int	(Tcl_DriverSeekProc) _ANSI_ARGS_((ClientData instanceData,		    long offset, int mode, int *errorCodePtr));typedef int	(Tcl_DriverSetOptionProc) _ANSI_ARGS_((		    ClientData instanceData, Tcl_Interp *interp,	            char *optionName, char *value));typedef int	(Tcl_DriverGetOptionProc) _ANSI_ARGS_((		    ClientData instanceData, Tcl_Interp *interp,		    char *optionName, Tcl_DString *dsPtr));typedef void	(Tcl_DriverWatchProc) _ANSI_ARGS_((		    ClientData instanceData, int mask));typedef int	(Tcl_DriverGetHandleProc) _ANSI_ARGS_((		    ClientData instanceData, int direction,		    ClientData *handlePtr));/* * Enum for different end of line translation and recognition modes. */typedef enum Tcl_EolTranslation {    TCL_TRANSLATE_AUTO,			/* Eol == \r, \n and \r\n. */    TCL_TRANSLATE_CR,			/* Eol == \r. */    TCL_TRANSLATE_LF,			/* Eol == \n. */    TCL_TRANSLATE_CRLF			/* Eol == \r\n. */} Tcl_EolTranslation;/* * struct Tcl_ChannelType: * * One such structure exists for each type (kind) of channel. * It collects together in one place all the functions that are * part of the specific channel type. */typedef struct Tcl_ChannelType {    char *typeName;			/* The name of the channel type in Tcl                                         * commands. This storage is owned by                                         * channel type. */    Tcl_DriverBlockModeProc *blockModeProc;    					/* Set blocking mode for the                                         * raw channel. May be NULL. */    Tcl_DriverCloseProc *closeProc;	/* Procedure to call to close                                         * the channel. */    Tcl_DriverInputProc *inputProc;	/* Procedure to call for input                                         * on channel. */    Tcl_DriverOutputProc *outputProc;	/* Procedure to call for output                                         * on channel. */    Tcl_DriverSeekProc *seekProc;	/* Procedure to call to seek                                         * on the channel. May be NULL. */    Tcl_DriverSetOptionProc *setOptionProc;    					/* Set an option on a channel. */    Tcl_DriverGetOptionProc *getOptionProc;    					/* Get an option from a channel. */    Tcl_DriverWatchProc *watchProc;	/* Set up the notifier to watch                                         * for events on this channel. */    Tcl_DriverGetHandleProc *getHandleProc;					/* Get an OS handle from the channel                                         * or NULL if not supported. */} Tcl_ChannelType;/* * The following flags determine whether the blockModeProc above should * set the channel into blocking or nonblocking mode. They are passed * as arguments to the blockModeProc procedure in the above structure. */#define TCL_MODE_BLOCKING 0		/* Put channel into blocking mode. */#define TCL_MODE_NONBLOCKING 1		/* Put channel into nonblocking					 * mode. *//* * Enum for different types of file paths. */typedef enum Tcl_PathType {    TCL_PATH_ABSOLUTE,    TCL_PATH_RELATIVE,    TCL_PATH_VOLUME_RELATIVE} Tcl_PathType;/* * Exported Tcl procedures: */EXTERN void		Tcl_AddErrorInfo _ANSI_ARGS_((Tcl_Interp *interp,			    char *message));EXTERN void		Tcl_AddObjErrorInfo _ANSI_ARGS_((Tcl_Interp *interp,			    char *message, int length));EXTERN void		Tcl_AllowExceptions _ANSI_ARGS_((Tcl_Interp *interp));EXTERN int		Tcl_AppendAllObjTypes _ANSI_ARGS_((			    Tcl_Interp *interp, Tcl_Obj *objPtr));EXTERN void		Tcl_AppendElement _ANSI_ARGS_((Tcl_Interp *interp,			    char *string));EXTERN void		Tcl_AppendResult _ANSI_ARGS_(			    TCL_VARARGS(Tcl_Interp *,interp));EXTERN void		Tcl_AppendToObj _ANSI_ARGS_((Tcl_Obj *objPtr,			    char *bytes, int length));EXTERN void		Tcl_AppendStringsToObj _ANSI_ARGS_(			    TCL_VARARGS(Tcl_Obj *,interp));EXTERN int		Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp));EXTERN Tcl_AsyncHandler	Tcl_AsyncCreate _ANSI_ARGS_((Tcl_AsyncProc *proc,			    ClientData clientData));EXTERN void		Tcl_AsyncDelete _ANSI_ARGS_((Tcl_AsyncHandler async));EXTERN int		Tcl_AsyncInvoke _ANSI_ARGS_((Tcl_Interp *interp,			    int code));EXTERN void		Tcl_AsyncMark _ANSI_ARGS_((Tcl_AsyncHandler async));EXTERN int		Tcl_AsyncReady _ANSI_ARGS_((void));EXTERN void		Tcl_BackgroundError _ANSI_ARGS_((Tcl_Interp *interp));EXTERN char		Tcl_Backslash _ANSI_ARGS_((CONST char *src,			    int *readPtr));EXTERN int		Tcl_BadChannelOption _ANSI_ARGS_((Tcl_Interp *interp,			    char *optionName, char *optionList));EXTERN void		Tcl_CallWhenDeleted _ANSI_ARGS_((Tcl_Interp *interp,			    Tcl_InterpDeleteProc *proc,			    ClientData clientData));EXTERN void		Tcl_CancelIdleCall _ANSI_ARGS_((Tcl_IdleProc *idleProc,			    ClientData clientData));#define Tcl_Ckalloc Tcl_Alloc#define Tcl_Ckfree Tcl_Free#define Tcl_Ckrealloc Tcl_ReallocEXTERN int		Tcl_Close _ANSI_ARGS_((Tcl_Interp *interp,        		    Tcl_Channel chan));EXTERN int		Tcl_CommandComplete _ANSI_ARGS_((char *cmd));EXTERN char *		Tcl_Concat _ANSI_ARGS_((int argc, char **argv));EXTERN Tcl_Obj *	Tcl_ConcatObj _ANSI_ARGS_((int objc,			    Tcl_Obj *CONST objv[]));EXTERN int		Tcl_ConvertCountedElement _ANSI_ARGS_((CONST char *src,			    int length, char *dst, int flags));EXTERN int		Tcl_ConvertElement _ANSI_ARGS_((CONST char *src,			    char *dst, int flags));EXTERN int		Tcl_ConvertToType _ANSI_ARGS_((Tcl_Interp *interp,			    Tcl_Obj *objPtr, Tcl_ObjType *typePtr));EXTERN int		Tcl_CreateAlias _ANSI_ARGS_((Tcl_Interp *slave,			    char *slaveCmd, Tcl_Interp *target,        		    char *targetCmd, int argc, char **argv));EXTERN int		Tcl_CreateAliasObj _ANSI_ARGS_((Tcl_Interp *slave,			    char *slaveCmd, Tcl_Interp *target,        		    char *targetCmd, int objc,		            Tcl_Obj *CONST objv[]));EXTERN Tcl_Channel	Tcl_CreateChannel _ANSI_ARGS_((    			    Tcl_ChannelType *typePtr, char *chanName,                            ClientData instanceData, int mask));EXTERN void		Tcl_CreateChannelHandler _ANSI_ARGS_((			    Tcl_Channel chan, int mask,                            Tcl_ChannelProc *proc, ClientData clientData));EXTERN void		Tcl_CreateCloseHandler _ANSI_ARGS_((			    Tcl_Channel chan, Tcl_CloseProc *proc,                            ClientData clientData));EXTERN Tcl_Command	Tcl_CreateCommand _ANSI_ARGS_((Tcl_Interp *interp,			    char *cmdName, Tcl_CmdProc *proc,			    ClientData clientData,			    Tcl_CmdDeleteProc *deleteProc));EXTERN void		Tcl_CreateEventSource _ANSI_ARGS_((			    Tcl_EventSetupProc *setupProc,			    Tcl_EventCheckProc *checkProc,			    ClientData clientData));EXTERN void		Tcl_CreateExitHandler _ANSI_ARGS_((Tcl_ExitProc *proc,			    ClientData clientData));EXTERN void		Tcl_CreateFileHandler _ANSI_ARGS_((    			    int fd, int mask, Tcl_FileProc *proc,			    ClientData clientData));EXTERN Tcl_Interp *	Tcl_CreateInterp _ANSI_ARGS_((void));EXTERN void		Tcl_CreateMathFunc _ANSI_ARGS_((Tcl_Interp *interp,			    char *name, int numArgs, Tcl_ValueType *argTypes,			    Tcl_MathProc *proc, ClientData clientData));EXTERN Tcl_Command	Tcl_CreateObjCommand _ANSI_ARGS_((			    Tcl_Interp *interp, char *cmdName,			    Tcl_ObjCmdProc *proc, ClientData clientData,			    Tcl_CmdDeleteProc *deleteProc));EXTERN Tcl_Interp *	Tcl_CreateSlave _ANSI_ARGS_((Tcl_Interp *interp,		            char *slaveName, int isSafe));EXTERN Tcl_TimerToken	Tcl_CreateTimerHandler _ANSI_ARGS_((int milliseconds,			    Tcl_TimerProc *proc, ClientData clientData));EXTERN Tcl_Trace	Tcl_CreateTrace _ANSI_ARGS_((Tcl_Interp *interp,			    int level, Tcl_CmdTraceProc *proc,			    ClientData clientData));EXTERN char *		Tcl_DbCkalloc _ANSI_ARGS_((unsigned int size,			    char *file, int line));EXTERN int		Tcl_DbCkfree _ANSI_ARGS_((char *ptr,			    char *file, int line));EXTERN char *		Tcl_DbCkrealloc _ANSI_ARGS_((char *ptr,			    unsigned int size, char *file, int line));EXTERN void		Tcl_DbDecrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr,			    char *file, int line));EXTERN void		Tcl_DbIncrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr,			    char *file, int line));EXTERN int		Tcl_DbIsShared _ANSI_ARGS_((Tcl_Obj *objPtr,			    char *file, int line));EXTERN Tcl_Obj *	Tcl_DbNewBooleanObj _ANSI_ARGS_((int boolValue,                            char *file, int line));EXTERN Tcl_Obj *	Tcl_DbNewDoubleObj _ANSI_ARGS_((double doubleValue,                            char *file, int line));EXTERN Tcl_Obj *	Tcl_DbNewListObj _ANSI_ARGS_((int objc,			    Tcl_Obj *CONST objv[], char *file, int line));EXTERN Tcl_Obj *	Tcl_DbNewObj _ANSI_ARGS_((char *file, int line));EXTERN Tcl_Obj *	Tcl_DbNewStringObj _ANSI_ARGS_((char *bytes,			    int length, char *file, int line));EXTERN void		Tcl_DeleteAssocData _ANSI_ARGS_((Tcl_Interp *interp,                            char *name));EXTERN int		Tcl_DeleteCommand _ANSI_ARGS_((Tcl_Interp *interp,			    char *cmdName));EXTERN int		Tcl_DeleteCommandFromToken _ANSI_ARGS_((			    Tcl_Interp *interp, Tcl_Command command));EXTERN void		Tcl_DeleteChannelHandler _ANSI_ARGS_((    			    Tcl_Channel chan, Tcl_ChannelProc *proc,                            ClientData clientData));EXTERN void		Tcl_DeleteCloseHandler _ANSI_ARGS_((			    Tcl_Channel chan, Tcl_CloseProc *proc,                            ClientData clientData));EXTERN void		Tcl_DeleteEvents _ANSI_ARGS_((			    Tcl_EventDeleteProc *proc,                            ClientData clientData));EXTERN void		Tcl_DeleteEventSource _ANSI_ARGS_((			    Tcl_EventSetupProc *setupProc,			    Tcl_EventCheckProc *checkProc,			    ClientData clientData));EXTERN void		Tcl_DeleteExitHandler _ANSI_ARGS_((Tcl_ExitProc *proc,			    ClientData clientData));EXTERN void		Tcl_DeleteFileHandler _ANSI_ARGS_((int fd));EXTERN void		Tcl_DeleteHashEntry _ANSI_ARGS_((			    Tcl_HashEntry *entryPtr));EXTERN void		Tcl_DeleteHashTable _ANSI_ARGS_((			    Tcl_HashTable *tablePtr));EXTERN void		Tcl_DeleteInterp _ANSI_ARGS_((Tcl_Interp *interp));EXTERN void		Tcl_DeleteTimerHandler _ANSI_ARGS_((			    Tcl_TimerToken token));EXTERN void		Tcl_DeleteTrace _ANSI_ARGS_((Tcl_Interp *interp,			    Tcl_Trace trace));EXTERN void		Tcl_DetachPids _ANSI_ARGS_((int numPids, Tcl_Pid *pidPtr));EXTERN void		Tcl_DontCallWhenDeleted _ANSI_ARGS_((

⌨️ 快捷键说明

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