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

📄 direc.h

📁 这是一个Linux下的集成开发环境
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef ISTKdirec_h#define ISTKdirec_h     /************************************************************************** *                 ****** ISTK Release 1.2 *****                          * *                                                                        * *                                                                        * * This code has been produced by numerous authors at the CERN centre for * * high energy physics, Geneve, Switzerland, at the SSC laboratory in     * * Dallas, Texas, USA and at the Lawrence Berekeley Laboratory in         * * California, USA.                                                       * * The latter two institutions perform work under US Government contract. * * The intent of the work is to provide useful code for people who need   * * it, with an emphasis on free and collaborative exchange of ideas,      * * techniques and implementations.                                        * * Please read the disclaimer and copyright notices contained in the ISTK * * distribution and in distributed applications.                          * *                                                                        * **************************************************************************//* Reference release  Aug 10 1991 - C G Saltmarsh *//* Has the basics used at CDG & SSC 1988-1991, plus vxworks   support*//************************************************************************ *            Copyright (C) Frogsoft Corporation,  1987                 * * * SSC VERSION 2.0001 April 29 1988 * * Modification history: * * 2.0100 Base release Dec 20 1990  * ***********************************************************************/#ifdef __cplusplus#define EXTERN extern "C"#else#define EXTERN extern#endif#if defined (__STDC__)#define VOIDDEF void#else#define VOIDDEF /* void */#endif     typedef char * sds_addr; typedef long   sds_off_t; #if (SDS_BIGADDR != 1) /* this will have been set in sds_mdpe.h */typedef long          sds_handle;typedef unsigned long sds_code;#define SDS_HFORM %ld#elsetypedef int            sds_handle;typedef unsigned int   sds_code;#define SDS_HFORM %d#endifstruct record_entry {	sds_code number;	sds_code elemtype;	void     *pointer;	struct record_entry *next;	char     *name;	int      record_depth;	};typedef struct record_header sds_record_handle;      /*  a few NULL pointers */#define DNULL ((struct direc *)0)#define TNULL ((struct type_list *)0)#define HNULL ((struct sds_header *)0)#define INULL ((int *)0)#define SNULL ((char *)0)#define SDS_ALLOCATE ((sds_off_t )0)#define SDS_NOT_ASSEMBLED      (sds_off_t)-1#define SDS_IMPOSSIBLE_ADDRESS (sds_off_t )-2#ifdef  VMS#define SDS_BLOCKING_FACTOR 512#else#define SDS_BLOCKING_FACTOR 8192#endif#define SDS_DEFAULT_BUFSIZE 0x10000#ifndef L_SET#define L_SET 0#endif     #define SDS_BASE_MAGIC  (sds_code )0x50420043#define SDS_MAGIC  SDS_BASE_MAGIC + (sds_code )((SDS_ARC+1) << 8)#define SDS_MAGIC_BYTESWAP (sds_code )0x43004250#define SDS_VERSION  (short )3/* the following are markers to define the end of a tlist... */#define SDS_ENDLIST  ((sds_code )0x40000001)/* ... the end of a structure within a tlist...       */#define SDS_RETLIST  ((sds_code )0x40000000)/* ...and a flag to be &'ed with an internal (not system) pointer to generate a non-primitive element code.                   */#define SDS_INDLIST    ((sds_code )0x80000000)#define SDS_STRUCT     SDS_INDLIST#define SDS_LOCALLIST  ((sds_code )0x08000000)#define SDS_CODE_MASK  ((sds_code )0xff000000)#define SDS_UNION      ((sds_code )0x04000000L)#define SDS_RECLIST    ((sds_code )0x02000000L)/* this, at the start of a tlist,indicates that it is named   */#define SDS_LENLIST    ((sds_code )0x10000000)#define SDS_SIZE_ALIGN ((sds_code )0x20000000)/* These things should be hidden from the user as soon as possible */#define SDS_WAS_ALLOCATED   (char)0x01#define SDS_EXTERNAL_OBJECT (char)0x02#define SDS_REALLOC         (char)0x04#define SDS_DISJOINT_OBJECT (char)0x08#define SDS_SAVE_STATE 1#define SDS_RESTORE_STATE 2#define SDS_GEN_NAME (sds_code )-1#define SDS_READY -1     #define   DIR_NAM_LEN   32#define SDS_HEAP_ALLOC   0x01#define SDS_TLIST_ALLOC  0x02#define SDS_DPTR_ALLOC   0x04#define SDS_HEAD_ALLOC   0x08#define SDS_DUP_ALLOC    0x10#define SDS_NORMAL_OBJECT   (short)0x00#define SDS_LISTK           (short)0x01#define SDS_VARIABLE_LENGTH (short)0x02#define SDS_RECORDS         (short)0x04#define SDS_FORTRAN_RECORDS (short)0x08#define SDS_SDC_EVENT       (short)0x10#define SDS_EXTERNAL_LENGTH (short)0x20#define SDS_LENGTH_UNDETERMINED 0xffffffff#define SDS_LOADED_MULT         0xfffffffe#define SDS_DATASET_LEVEL   0#define SDS_OBJECT_LEVEL    1#define SDS_SUBOBJECT_LEVEL 2/* Here are things that go in the controlbits region of SDS control *//* First, what to do if you find incoming 64-bit integers */#define SDS_DOUBLE_LONGS_IN_LONGS 0x0#define SDS_TRUNCATE_DOUBLE_LONGS 0x1#define SDS_FLOAT_DOUBLE_LONGS 0x2#define SDS_TRAP_DOUBLE_LONG_OVERFLOW 0x4#define SDS_DOUBLE_LONG_MASK 0x3/* This flag is set in the PER-SDS controlbits: that is, it signals   incoming big address data so that offset sizes in eg direc.h must be   truncated */#define SDS_FROM_BIGADDR 1/* This bit says that a dataset is actually risc-padded even if	 it was actually generated on an intel or 680x0 machine. */#define SDS_IS_RISCY 0x80struct sds_header {    sds_code magic_number;   short controlbits;   short version;   unsigned short heap_size;   unsigned short list_size;  };#define BASE_OFFSET sizeof(struct sds_header)     struct direc    {            /* Directory structure for standard dataset*/ sds_off_t       offst;      /* offset from memory start */ sds_code        nelems;     /* # elements */ sds_code        elemsz;     /* size in bytes of 1 element */ sds_code        elemcod;    /* code of the type */ sds_code        wtime;      /* last write time  */ short           structype;  /* is it a list etc? */ unsigned char   align_type; /* alignment type  */ unsigned char   illoca;     /* reallocation flag */ sds_code        obj_name;   /* name offset of the object */ };struct type_list { sds_code        nelems;    /* # elements requested */ sds_code        elemcod;   /* code of the type */ };struct    sds_odesc { char *   address;       /* start address */ char *   name;          /* base name */ sds_code elemcod;       /* code */ sds_code nelems;        /* number of elements */ sds_code nnames;        /* number of names   */ sds_code size;          /* size of one element, in bytes */ char     align;         /* Byte boundary for alignment */ char     startbit; char     nbits; char *   namelist;      /* Pointer to namelist of nnames names */ sds_code maxn;          /* system bookkeeping */ sds_code ind;           /* system bookkeeping */ };struct  sds_res_control {  int                 stack_size;  int                 addr_inc;  int                 thiso;

⌨️ 快捷键说明

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