vmsdefs.h
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:12k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. /*---------------------------------------------------------------------------
  2.   vmsdefs.h
  3.   Contents of three header files from Joe
  4.   Meadows' FILE program.  Used by vmsmunch
  5.         06-Apr-1994     Jamie Hanrahan  jeh@cmkrnl.com
  6.                         Moved "contents of three header files" from
  7.                         VMSmunch.h to VMSdefs.h .
  8.         16-Sep-1995     Christian Spieler
  9.                         Added #pragma (no)member_alignment directives
  10.                         to achieve compatibility with DEC C and Alpha AXP
  11.         05-Oct-1995     Christian Spieler
  12.                         Revised fatdef, fchdef, fjndef to achieve closer
  13.                         compatibility with DEC's system include header files
  14.                         supplied with C version 4.0 and newer.
  15.         10-Oct-1995     Christian Spieler
  16.                         Use lowercase filenames for vms specific sources
  17.                         (VMSmunch.? -> vmsmunch.?, VMSdefs.h -> vmsdefs.h)
  18.         15-Dec-1995     Christian Spieler
  19.                         Removed the last "tabs" from the source.
  20.         24-Jun-1997     Onno van der Linden / Chr. Spieler
  21.                         Modifications to support the VMS port of GNU C 2.x.
  22.   ---------------------------------------------------------------------------*/
  23. #ifndef __vmsdefs_h
  24. #define __vmsdefs_h 1
  25. #if defined(__DECC) || defined(__DECCXX)
  26. #pragma __nostandard
  27. #endif /* __DECC || __DECCXX */
  28. #if defined(__DECC) || defined(__DECCXX)
  29. #pragma __member_alignment __save
  30. #pragma __nomember_alignment
  31. #endif /* __DECC || __DECCXX */
  32. #if !(defined(__VAXC) || defined(VAXC)) || defined(__GNUC__)
  33. #define __struct struct
  34. #define __union union
  35. #else
  36. #define __struct variant_struct
  37. #define __union variant_union
  38. #endif /* !(__VAXC || VAXC) || __GNUC__ */
  39. #ifdef __cplusplus
  40.     extern "C" {
  41. #endif
  42. /*---------------------------------------------------------------------------
  43.     fatdef.h
  44.   ---------------------------------------------------------------------------*/
  45. /* This header file was created by Joe Meadows, and is not copyrighted
  46.    in any way. No guarantee is made as to the accuracy of the contents
  47.    of this header file. This header file was last modified on Sep. 22th,
  48.    1987. (Modified to include this statement) */
  49. #define FAT$K_LENGTH 32
  50. #define FAT$C_LENGTH 32
  51. #define FAT$S_FATDEF 32
  52. struct fatdef {
  53.   __union  {
  54.     unsigned char fat$b_rtype;          /* record type                      */
  55.     __struct  {
  56.       unsigned fat$v_rtype : 4;         /* record type subfield             */
  57.       unsigned fat$v_fileorg : 4;       /* file organization                */
  58.     } fat$r_rtype_bits;
  59.   } fat$r_rtype_overlay;
  60. # define FAT$S_RTYPE 4
  61. # define FAT$V_RTYPE 0
  62. #   define FAT$C_UNDEFINED 0
  63. #   define FAT$C_FIXED 1
  64. #   define FAT$C_VARIABLE 2
  65. #   define FAT$C_VFC 3
  66. #   define FAT$C_STREAM 4
  67. #   define FAT$C_STREAMLF 5
  68. #   define FAT$C_STREAMCR 6
  69. # define FAT$S_FILEORG 4
  70. # define FAT$V_FILEORG 4
  71. #   define FAT$C_SEQUENTIAL 0
  72. #   define FAT$C_RELATIVE 1
  73. #   define FAT$C_INDEXED 2
  74. #   define FAT$C_DIRECT 3
  75.   __union  {
  76.     unsigned char fat$b_rattrib;        /* record attributes                */
  77.     __struct  {
  78.       unsigned fat$v_fortrancc : 1;
  79.       unsigned fat$v_impliedcc : 1;
  80.       unsigned fat$v_printcc : 1;
  81.       unsigned fat$v_nospan : 1;
  82.       unsigned fat$v_msbrcw : 1;
  83.     } fat$r_rattrib_bits;
  84.   } fat$r_rattrib_overlay;
  85. #   define FAT$V_FORTRANCC 0
  86. #   define FAT$M_FORTRANCC 1
  87. #   define FAT$V_IMPLIEDCC 1
  88. #   define FAT$M_IMPLIEDCC 2
  89. #   define FAT$V_PRINTCC 2
  90. #   define FAT$M_PRINTCC 4
  91. #   define FAT$V_NOSPAN 3
  92. #   define FAT$M_NOSPAN 8
  93. #   define FAT$V_MSBRCW 4
  94. #   define FAT$M_MSBRCW 16
  95.   unsigned short int fat$w_rsize;       /* record size in bytes             */
  96.   __union
  97.   {
  98.     unsigned long int fat$l_hiblk;      /* highest allocated VBN            */
  99.     __struct
  100.     {
  101.       unsigned short int fat$w_hiblkh;  /* high order word                  */
  102.       unsigned short int fat$w_hiblkl;  /* low order word                   */
  103.     } fat$r_hiblk_fields;
  104.   } fat$r_hiblk_overlay;
  105.   __union
  106.   {
  107.     unsigned long int fat$l_efblk;      /* end of file VBN                  */
  108.     __struct
  109.     {
  110.       unsigned short int fat$w_efblkh;  /* high order word                  */
  111.       unsigned short int fat$w_efblkl;  /* low order word                   */
  112.     } fat$r_efblk_fields;
  113.   } fat$r_efblk_overlay;
  114.   unsigned short int fat$w_ffbyte;      /* first free byte in EFBLK         */
  115.   unsigned char fat$b_bktsize;          /* bucket size in blocks            */
  116.   unsigned char fat$b_vfcsize;          /* # of control bytes in VFC record */
  117.   unsigned short int fat$w_maxrec;      /* maximum record size in bytes     */
  118.   unsigned short int fat$w_defext;      /* default extend quantity          */
  119.   unsigned short int fat$w_gbc;         /* global buffer count              */
  120.   char fat$fill[8];
  121.   unsigned short int fat$w_versions;
  122. };
  123. #if !(defined(__VAXC) || defined(VAXC)) || defined(__GNUC__)
  124. #define fat$b_rtype fat$r_rtype_overlay.fat$b_rtype
  125. #define fat$v_rtype fat$r_rtype_overlay.fat$r_rtype_bits.fat$v_rtype
  126. #define fat$v_fileorg fat$r_rtype_overlay.fat$r_rtype_bits.fat$v_fileorg
  127. #define fat$b_rattrib fat$r_rattrib_overlay.fat$b_rattrib
  128. #define fat$v_fortrancc fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_fortrancc
  129. #define fat$v_impliedcc fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_impliedcc
  130. #define fat$v_printcc fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_printcc
  131. #define fat$v_nospan fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_nospan
  132. #define fat$v_msbrcw fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_msbrcw
  133. #define fat$l_hiblk fat$r_hiblk_overlay.fat$l_hiblk
  134. #define fat$w_hiblkh fat$r_hiblk_overlay.fat$r_hiblk_fields.fat$w_hiblkh
  135. #define fat$w_hiblkl fat$r_hiblk_overlay.fat$r_hiblk_fields.fat$w_hiblkl
  136. #define fat$l_efblk fat$r_efblk_overlay.fat$l_efblk
  137. #define fat$w_efblkh fat$r_efblk_overlay.fat$r_efblk_fields.fat$w_efblkh
  138. #define fat$w_efblkl fat$r_efblk_overlay.fat$r_efblk_fields.fat$w_efblkl
  139. #endif /* !(__VAXC || VAXC) || __GNUC__ */
  140. #define __FATDEF_LOADED 1       /* prevent inclusion of DECC's fatdef.h */
  141. /*---------------------------------------------------------------------------
  142.     fchdef.h
  143.   ---------------------------------------------------------------------------*/
  144. /* This header file was created by Joe Meadows, and is not copyrighted
  145.    in any way. No guarantee is made as to the accuracy of the contents
  146.    of this header file. This header file was last modified on Sep. 22th,
  147.    1987. (Modified to include this statement) */
  148. #define FCH$V_BADACL 0x00B
  149. #define FCH$M_BADACL (1 << FCH$V_BADACL)
  150. #define FCH$V_BADBLOCK 0x00E
  151. #define FCH$M_BADBLOCK (1 << FCH$V_BADBLOCK)
  152. #define FCH$V_CONTIG 0x007
  153. #define FCH$M_CONTIG (1 << FCH$V_CONTIG)
  154. #define FCH$V_CONTIGB 0x005
  155. #define FCH$M_CONTIGB (1 << FCH$V_CONTIGB)
  156. #define FCH$V_DIRECTORY 0x00D
  157. #define FCH$M_DIRECTORY (1 << FCH$V_DIRECTORY)
  158. #define FCH$V_ERASE 0x011
  159. #define FCH$M_ERASE (1 << FCH$V_ERASE)
  160. #define FCH$V_LOCKED 0x006
  161. #define FCH$M_LOCKED (1 << FCH$V_LOCKED)
  162. #define FCH$V_MARKDEL 0x00F
  163. #define FCH$M_MARKDEL (1 << FCH$V_MARKDEL)
  164. #define FCH$V_NOBACKUP 0x001
  165. #define FCH$M_NOBACKUP (1 << FCH$V_NOBACKUP)
  166. #define FCH$V_NOCHARGE 0x010
  167. #define FCH$M_NOCHARGE (1 << FCH$V_NOCHARGE)
  168. #define FCH$V_READCHECK 0x003
  169. #define FCH$M_READCHECK (1 << FCH$V_READCHECK)
  170. #define FCH$V_SPOOL 0x00C
  171. #define FCH$M_SPOOL (1 << FCH$V_SPOOL)
  172. #define FCH$V_WRITCHECK 0x004
  173. #define FCH$M_WRITCHECK (1 << FCH$V_WRITCHECK)
  174. #define FCH$V_WRITEBACK 0x002
  175. #define FCH$M_WRITEBACK (1 << FCH$V_WRITEBACK)
  176. struct fchdef  {
  177.   __union  {
  178.     int fch$$_fill_1;
  179.     __struct  {
  180.       unsigned fch$$_fill_31 : 8;
  181.       unsigned fch$v_vcc_state : 3;    /* VCC state bits              */
  182.       unsigned fch$$_fill_32 : 7;
  183.       unsigned fch$$_alm_state : 2;
  184.       unsigned fch$v_associated : 1;   /* ISO 9660 Associated file    */
  185.       unsigned fch$v_existence : 1;    /* ISO 9660 Existence file     */
  186.       unsigned fch$v_fill_6 : 2;
  187.     } fch$r_fill_1_chunks;
  188.     __struct  {
  189.       unsigned fch$v_wascontig : 1;
  190.       unsigned fch$v_nobackup : 1 ;
  191.       unsigned fch$v_writeback : 1;
  192.       unsigned fch$v_readcheck : 1;
  193.       unsigned fch$v_writcheck : 1;
  194.       unsigned fch$v_contigb : 1;
  195.       unsigned fch$v_locked : 1;
  196.       unsigned fch$v_contig : 1;
  197.       unsigned fch$$_fill_3 : 3;
  198.       unsigned fch$v_badacl : 1;
  199.       unsigned fch$v_spool : 1;
  200.       unsigned fch$v_directory : 1;
  201.       unsigned fch$v_badblock : 1;
  202.       unsigned fch$v_markdel : 1;
  203.       unsigned fch$v_nocharge : 1;
  204.       unsigned fch$v_erase : 1;
  205.       unsigned fch$$_fill_4 : 1;
  206.       unsigned fch$v_shelved : 1;
  207.       unsigned fch$v_scratch : 1;
  208.       unsigned fch$v_nomove : 1;
  209.       unsigned fch$v_noshelvable : 1;
  210.     } fch$r_fill_1_bits;
  211.   } fch$r_fch_union;
  212. };
  213. #if !(defined(__VAXC) || defined(VAXC)) || defined(__GNUC__)
  214. #define fch$v_vcc_state fch$r_fch_union.fch$r_fill_1_chunks.fch$v_vcc_state
  215. #define fch$v_associated fch$r_fch_union.fch$r_fill_1_chunks.fch$v_associated
  216. #define fch$v_existence fch$r_fch_union.fch$r_fill_1_chunks.fch$v_existence
  217. #define fch$v_wascontig fch$r_fch_union.fch$r_fill_1_bits.fch$v_wascontig
  218. #define fch$v_nobackup fch$r_fch_union.fch$r_fill_1_bits.fch$v_nobackup
  219. #define fch$v_writeback fch$r_fch_union.fch$r_fill_1_bits.fch$v_writeback
  220. #define fch$v_readcheck fch$r_fch_union.fch$r_fill_1_bits.fch$v_readcheck
  221. #define fch$v_writcheck fch$r_fch_union.fch$r_fill_1_bits.fch$v_writcheck
  222. #define fch$v_contigb fch$r_fch_union.fch$r_fill_1_bits.fch$v_contigb
  223. #define fch$v_locked fch$r_fch_union.fch$r_fill_1_bits.fch$v_locked
  224. #define fch$v_contig fch$r_fch_union.fch$r_fill_1_bits.fch$v_contig
  225. #define fch$v_badacl fch$r_fch_union.fch$r_fill_1_bits.fch$v_badacl
  226. #define fch$v_spool fch$r_fch_union.fch$r_fill_1_bits.fch$v_spool
  227. #define fch$v_directory fch$r_fch_union.fch$r_fill_1_bits.fch$v_directory
  228. #define fch$v_badblock fch$r_fch_union.fch$r_fill_1_bits.fch$v_badblock
  229. #define fch$v_markdel fch$r_fch_union.fch$r_fill_1_bits.fch$v_markdel
  230. #define fch$v_nocharge fch$r_fch_union.fch$r_fill_1_bits.fch$v_nocharge
  231. #define fch$v_erase fch$r_fch_union.fch$r_fill_1_bits.fch$v_erase
  232. #define fch$v_shelved fch$r_fch_union.fch$r_fill_1_bits.fch$v_shelved
  233. #define fch$v_scratch fch$r_fch_union.fch$r_fill_1_bits.fch$v_scratch
  234. #define fch$v_nomove fch$r_fch_union.fch$r_fill_1_bits.fch$v_nomove
  235. #define fch$v_noshelvable fch$r_fch_union.fch$r_fill_1_bits.fch$v_noshelvable
  236. #endif /* !(__VAXC || VAXC) || __GNUC__ */
  237. #define __FCHDEF_LOADED 1       /* prevent inclusion of DECC's fchdef.h */
  238. /*---------------------------------------------------------------------------
  239.     fjndef.h
  240.   ---------------------------------------------------------------------------*/
  241. /* This header file was created by Joe Meadows, and is not copyrighted
  242.    in any way. No guarantee is made as to the accuracy of the contents
  243.    of this header file. This header file was last modified on Sep. 22th,
  244.    1987. (Modified to include this statement) */
  245. #define FJN$M_ONLY_RU 1
  246. #define FJN$M_RUJNL 2
  247. #define FJN$M_BIJNL 4
  248. #define FJN$M_AIJNL 8
  249. #define FJN$M_ATJNL 16
  250. #define FJN$M_NEVER_RU 32
  251. #define FJN$M_JOURNAL_FILE 64
  252. #define FJN$S_FJNDEF 1
  253. struct fjndef  {
  254.   unsigned fjn$v_only_ru : 1;
  255.   unsigned fjn$v_rujnl : 1;
  256.   unsigned fjn$v_bijnl : 1;
  257.   unsigned fjn$v_aijnl : 1;
  258.   unsigned fjn$v_atjnl : 1;
  259.   unsigned fjn$v_never_ru : 1;
  260.   unsigned fjn$v_journal_file : 1;
  261.   unsigned fjn$v_fill_7 : 1;
  262. } ;
  263. #define __FJNDEF_LOADED 1       /* prevent inclusion of DECC's fjndef.h */
  264. /*---------------------------------------------------------------------------*/
  265. #ifdef __cplusplus
  266.     }
  267. #endif
  268. #if defined(__DECC) || defined(__DECCXX)
  269. #pragma __member_alignment __restore
  270. #endif /* __DECC || __DECCXX */
  271. #if defined(__DECC) || defined(__DECCXX)
  272. #pragma __standard
  273. #endif /* __DECC || __DECCXX */
  274. #endif /* !__vmsdefs_h */