summaryrefslogtreecommitdiff
path: root/vms/vmsdefs.h
blob: d5ca6100da201a4f39efeb6685466f97e91297a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
/*
  Copyright (c) 1990-2005 Info-ZIP.  All rights reserved.

  See the accompanying file LICENSE, version 2004-May-22 or later
  (the contents of which are also included in zip.h) for terms of use.
  If, for some reason, both of these files are missing, the Info-ZIP license
  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
*/
/*---------------------------------------------------------------------------

  vmsdefs.h

  Contents of three header files from Joe
  Meadows' FILE program.  Used by vmsmunch

        06-Apr-1994     Jamie Hanrahan  jeh@cmkrnl.com
                        Moved "contents of three header files" from
                        VMSmunch.h to VMSdefs.h .

        16-Sep-1995     Christian Spieler
                        Added #pragma (no)member_alignment directives
                        to achieve compatibility with DEC C and Alpha AXP

        05-Oct-1995     Christian Spieler
                        Revised fatdef, fchdef, fjndef to achieve closer
                        compatibility with DEC's system include header files
                        supplied with C version 4.0 and newer.

        10-Oct-1995     Christian Spieler
                        Use lowercase filenames for vms specific sources
                        (VMSmunch.? -> vmsmunch.?, VMSdefs.h -> vmsdefs.h)

        15-Dec-1995     Christian Spieler
                        Removed the last "tabs" from the source.

        24-Jun-1997     Onno van der Linden / Chr. Spieler
                        Modifications to support the VMS port of GNU C 2.x.

        27-Jul-1999     Chr. Spieler
                        Added Info-ZIP copyright note for identification.

  ---------------------------------------------------------------------------*/

#ifndef __vmsdefs_h
#define __vmsdefs_h 1

#if defined(__DECC) || defined(__DECCXX)
#pragma __nostandard
#endif /* __DECC || __DECCXX */

#if defined(__DECC) || defined(__DECCXX)
#pragma __member_alignment __save
#pragma __nomember_alignment
#endif /* __DECC || __DECCXX */

#if !(defined(__VAXC) || defined(VAXC)) || defined(__GNUC__)
#define __struct struct
#define __union union
#else
#define __struct variant_struct
#define __union variant_union
#endif /* !(__VAXC || VAXC) || __GNUC__ */

#ifdef __cplusplus
    extern "C" {
#endif

/*---------------------------------------------------------------------------
    fatdef.h
  ---------------------------------------------------------------------------*/

/* This header file was created by Joe Meadows, and is not copyrighted
   in any way. No guarantee is made as to the accuracy of the contents
   of this header file. This header file was last modified on Sep. 22th,
   1987. (Modified to include this statement) */

#define FAT$K_LENGTH 32
#define FAT$C_LENGTH 32
#define FAT$S_FATDEF 32

struct fatdef {
  __union  {
    unsigned char fat$b_rtype;          /* record type                      */
    __struct  {
      unsigned fat$v_rtype : 4;         /* record type subfield             */
      unsigned fat$v_fileorg : 4;       /* file organization                */
    } fat$r_rtype_bits;
  } fat$r_rtype_overlay;
# define FAT$S_RTYPE 4
# define FAT$V_RTYPE 0
#   define FAT$C_UNDEFINED 0
#   define FAT$C_FIXED 1
#   define FAT$C_VARIABLE 2
#   define FAT$C_VFC 3
#   define FAT$C_STREAM 4
#   define FAT$C_STREAMLF 5
#   define FAT$C_STREAMCR 6
# define FAT$S_FILEORG 4
# define FAT$V_FILEORG 4
#   define FAT$C_SEQUENTIAL 0
#   define FAT$C_RELATIVE 1
#   define FAT$C_INDEXED 2
#   define FAT$C_DIRECT 3
  __union  {
    unsigned char fat$b_rattrib;        /* record attributes                */
    __struct  {
      unsigned fat$v_fortrancc : 1;
      unsigned fat$v_impliedcc : 1;
      unsigned fat$v_printcc : 1;
      unsigned fat$v_nospan : 1;
      unsigned fat$v_msbrcw : 1;
    } fat$r_rattrib_bits;
  } fat$r_rattrib_overlay;
#   define FAT$V_FORTRANCC 0
#   define FAT$M_FORTRANCC 1
#   define FAT$V_IMPLIEDCC 1
#   define FAT$M_IMPLIEDCC 2
#   define FAT$V_PRINTCC 2
#   define FAT$M_PRINTCC 4
#   define FAT$V_NOSPAN 3
#   define FAT$M_NOSPAN 8
#   define FAT$V_MSBRCW 4
#   define FAT$M_MSBRCW 16
  unsigned short int fat$w_rsize;       /* record size in bytes             */
  __union
  {
    unsigned long int fat$l_hiblk;      /* highest allocated VBN            */
    __struct
    {
      unsigned short int fat$w_hiblkh;  /* high order word                  */
      unsigned short int fat$w_hiblkl;  /* low order word                   */
    } fat$r_hiblk_fields;
  } fat$r_hiblk_overlay;
  __union
  {
    unsigned long int fat$l_efblk;      /* end of file VBN                  */
    __struct
    {
      unsigned short int fat$w_efblkh;  /* high order word                  */
      unsigned short int fat$w_efblkl;  /* low order word                   */
    } fat$r_efblk_fields;
  } fat$r_efblk_overlay;
  unsigned short int fat$w_ffbyte;      /* first free byte in EFBLK         */
  unsigned char fat$b_bktsize;          /* bucket size in blocks            */
  unsigned char fat$b_vfcsize;          /* # of control bytes in VFC record */
  unsigned short int fat$w_maxrec;      /* maximum record size in bytes     */
  unsigned short int fat$w_defext;      /* default extend quantity          */
  unsigned short int fat$w_gbc;         /* global buffer count              */
  char fat$fill[8];
  unsigned short int fat$w_versions;
};

#if !(defined(__VAXC) || defined(VAXC)) || defined(__GNUC__)
#define fat$b_rtype fat$r_rtype_overlay.fat$b_rtype
#define fat$v_rtype fat$r_rtype_overlay.fat$r_rtype_bits.fat$v_rtype
#define fat$v_fileorg fat$r_rtype_overlay.fat$r_rtype_bits.fat$v_fileorg
#define fat$b_rattrib fat$r_rattrib_overlay.fat$b_rattrib
#define fat$v_fortrancc fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_fortrancc
#define fat$v_impliedcc fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_impliedcc
#define fat$v_printcc fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_printcc
#define fat$v_nospan fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_nospan
#define fat$v_msbrcw fat$r_rattrib_overlay.fat$r_rattrib_bits.fat$v_msbrcw
#define fat$l_hiblk fat$r_hiblk_overlay.fat$l_hiblk
#define fat$w_hiblkh fat$r_hiblk_overlay.fat$r_hiblk_fields.fat$w_hiblkh
#define fat$w_hiblkl fat$r_hiblk_overlay.fat$r_hiblk_fields.fat$w_hiblkl
#define fat$l_efblk fat$r_efblk_overlay.fat$l_efblk
#define fat$w_efblkh fat$r_efblk_overlay.fat$r_efblk_fields.fat$w_efblkh
#define fat$w_efblkl fat$r_efblk_overlay.fat$r_efblk_fields.fat$w_efblkl
#endif /* !(__VAXC || VAXC) || __GNUC__ */

#define __FATDEF_LOADED 1       /* prevent inclusion of DECC's fatdef.h */

/*---------------------------------------------------------------------------
    fchdef.h
  ---------------------------------------------------------------------------*/

/* This header file was created by Joe Meadows, and is not copyrighted
   in any way. No guarantee is made as to the accuracy of the contents
   of this header file. This header file was last modified on Sep. 22th,
   1987. (Modified to include this statement) */

#define FCH$V_BADACL 0x00B
#define FCH$M_BADACL (1 << FCH$V_BADACL)
#define FCH$V_BADBLOCK 0x00E
#define FCH$M_BADBLOCK (1 << FCH$V_BADBLOCK)
#define FCH$V_CONTIG 0x007
#define FCH$M_CONTIG (1 << FCH$V_CONTIG)
#define FCH$V_CONTIGB 0x005
#define FCH$M_CONTIGB (1 << FCH$V_CONTIGB)
#define FCH$V_DIRECTORY 0x00D
#define FCH$M_DIRECTORY (1 << FCH$V_DIRECTORY)
#define FCH$V_ERASE 0x011
#define FCH$M_ERASE (1 << FCH$V_ERASE)
#define FCH$V_LOCKED 0x006
#define FCH$M_LOCKED (1 << FCH$V_LOCKED)
#define FCH$V_MARKDEL 0x00F
#define FCH$M_MARKDEL (1 << FCH$V_MARKDEL)
#define FCH$V_NOBACKUP 0x001
#define FCH$M_NOBACKUP (1 << FCH$V_NOBACKUP)
#define FCH$V_NOCHARGE 0x010
#define FCH$M_NOCHARGE (1 << FCH$V_NOCHARGE)
#define FCH$V_READCHECK 0x003
#define FCH$M_READCHECK (1 << FCH$V_READCHECK)
#define FCH$V_SPOOL 0x00C
#define FCH$M_SPOOL (1 << FCH$V_SPOOL)
#define FCH$V_WRITCHECK 0x004
#define FCH$M_WRITCHECK (1 << FCH$V_WRITCHECK)
#define FCH$V_WRITEBACK 0x002
#define FCH$M_WRITEBACK (1 << FCH$V_WRITEBACK)

struct fchdef  {
  __union  {
    int fch$$_fill_1;
    __struct  {
      unsigned fch$$_fill_31 : 8;
      unsigned fch$v_vcc_state : 3;    /* VCC state bits              */
      unsigned fch$$_fill_32 : 7;
      unsigned fch$$_alm_state : 2;
      unsigned fch$v_associated : 1;   /* ISO 9660 Associated file    */
      unsigned fch$v_existence : 1;    /* ISO 9660 Existence file     */
      unsigned fch$v_fill_6 : 2;
    } fch$r_fill_1_chunks;
    __struct  {
      unsigned fch$v_wascontig : 1;
      unsigned fch$v_nobackup : 1 ;
      unsigned fch$v_writeback : 1;
      unsigned fch$v_readcheck : 1;
      unsigned fch$v_writcheck : 1;
      unsigned fch$v_contigb : 1;
      unsigned fch$v_locked : 1;
      unsigned fch$v_contig : 1;
      unsigned fch$$_fill_3 : 3;
      unsigned fch$v_badacl : 1;
      unsigned fch$v_spool : 1;
      unsigned fch$v_directory : 1;
      unsigned fch$v_badblock : 1;
      unsigned fch$v_markdel : 1;
      unsigned fch$v_nocharge : 1;
      unsigned fch$v_erase : 1;
      unsigned fch$$_fill_4 : 1;
      unsigned fch$v_shelved : 1;
      unsigned fch$v_scratch : 1;
      unsigned fch$v_nomove : 1;
      unsigned fch$v_noshelvable : 1;
    } fch$r_fill_1_bits;
  } fch$r_fch_union;
};

#if !(defined(__VAXC) || defined(VAXC)) || defined(__GNUC__)
#define fch$v_vcc_state fch$r_fch_union.fch$r_fill_1_chunks.fch$v_vcc_state
#define fch$v_associated fch$r_fch_union.fch$r_fill_1_chunks.fch$v_associated
#define fch$v_existence fch$r_fch_union.fch$r_fill_1_chunks.fch$v_existence
#define fch$v_wascontig fch$r_fch_union.fch$r_fill_1_bits.fch$v_wascontig
#define fch$v_nobackup fch$r_fch_union.fch$r_fill_1_bits.fch$v_nobackup
#define fch$v_writeback fch$r_fch_union.fch$r_fill_1_bits.fch$v_writeback
#define fch$v_readcheck fch$r_fch_union.fch$r_fill_1_bits.fch$v_readcheck
#define fch$v_writcheck fch$r_fch_union.fch$r_fill_1_bits.fch$v_writcheck
#define fch$v_contigb fch$r_fch_union.fch$r_fill_1_bits.fch$v_contigb
#define fch$v_locked fch$r_fch_union.fch$r_fill_1_bits.fch$v_locked
#define fch$v_contig fch$r_fch_union.fch$r_fill_1_bits.fch$v_contig
#define fch$v_badacl fch$r_fch_union.fch$r_fill_1_bits.fch$v_badacl
#define fch$v_spool fch$r_fch_union.fch$r_fill_1_bits.fch$v_spool
#define fch$v_directory fch$r_fch_union.fch$r_fill_1_bits.fch$v_directory
#define fch$v_badblock fch$r_fch_union.fch$r_fill_1_bits.fch$v_badblock
#define fch$v_markdel fch$r_fch_union.fch$r_fill_1_bits.fch$v_markdel
#define fch$v_nocharge fch$r_fch_union.fch$r_fill_1_bits.fch$v_nocharge
#define fch$v_erase fch$r_fch_union.fch$r_fill_1_bits.fch$v_erase
#define fch$v_shelved fch$r_fch_union.fch$r_fill_1_bits.fch$v_shelved
#define fch$v_scratch fch$r_fch_union.fch$r_fill_1_bits.fch$v_scratch
#define fch$v_nomove fch$r_fch_union.fch$r_fill_1_bits.fch$v_nomove
#define fch$v_noshelvable fch$r_fch_union.fch$r_fill_1_bits.fch$v_noshelvable
#endif /* !(__VAXC || VAXC) || __GNUC__ */

#define __FCHDEF_LOADED 1       /* prevent inclusion of DECC's fchdef.h */

/*---------------------------------------------------------------------------
    fjndef.h
  ---------------------------------------------------------------------------*/

/* This header file was created by Joe Meadows, and is not copyrighted
   in any way. No guarantee is made as to the accuracy of the contents
   of this header file. This header file was last modified on Sep. 22th,
   1987. (Modified to include this statement) */

#define FJN$M_ONLY_RU 1
#define FJN$M_RUJNL 2
#define FJN$M_BIJNL 4
#define FJN$M_AIJNL 8
#define FJN$M_ATJNL 16
#define FJN$M_NEVER_RU 32
#define FJN$M_JOURNAL_FILE 64
#define FJN$S_FJNDEF 1
struct fjndef  {
  unsigned fjn$v_only_ru : 1;
  unsigned fjn$v_rujnl : 1;
  unsigned fjn$v_bijnl : 1;
  unsigned fjn$v_aijnl : 1;
  unsigned fjn$v_atjnl : 1;
  unsigned fjn$v_never_ru : 1;
  unsigned fjn$v_journal_file : 1;
  unsigned fjn$v_fill_7 : 1;
} ;

#define __FJNDEF_LOADED 1       /* prevent inclusion of DECC's fjndef.h */

/*---------------------------------------------------------------------------*/

#ifdef __cplusplus
    }
#endif

#if defined(__DECC) || defined(__DECCXX)
#pragma __member_alignment __restore
#endif /* __DECC || __DECCXX */

#if defined(__DECC) || defined(__DECCXX)
#pragma __standard
#endif /* __DECC || __DECCXX */

#endif /* !__vmsdefs_h */