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 81struct 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 211struct 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 293struct 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