Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

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