/usr/include/fabdef.h is in libdnet-dev 2.64build2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 | /* <fabdef.h>
*
* RMS File Access Block definitions
*/
#ifndef _FABDEF_H
#define _FABDEF_H
#define FAB$C_BID 3 /* code for fab */
/* special IFI fields for process permanent files */
#define FAB$V_PPF_RAT 6
#define FAB$M_PPF_RAT 0x3FC0
#define FAB$S_PPF_RAT 8
#define FAB$V_PPF_IND 14
#define FAB$M_PPF_IND 0x4000
#define FAB$V_PPIFI 15
#define FAB$M_PPIFI 0x8000
/* file options (FOP) mask bits */
#define FAB$V_ASY 0
#define FAB$V_MXV 1
#define FAB$V_SUP 2
#define FAB$V_TMP 3
#define FAB$V_TMD 4
#define FAB$V_DFW 5
#define FAB$V_SQO 6
#define FAB$V_RWO 7
#define FAB$V_POS 8
#define FAB$V_WCK 9
#define FAB$V_NEF 10
#define FAB$V_RWC 11
#define FAB$V_DMO 12
#define FAB$V_SPL 13
#define FAB$V_SCF 14
#define FAB$V_DLT 15
#define FAB$V_NFS 16
#define FAB$V_UFO 17
#define FAB$V_PPF 18
#define FAB$V_INP 19
#define FAB$V_CTG 20
#define FAB$V_CBT 21
#define FAB$V_SYNCSTS 22
#define FAB$V_JNL 22 /* obsolete */
#define FAB$V_RCK 23
#define FAB$V_NAM 24
#define FAB$V_CIF 25
#define FAB$V_UFM 26 /* obsolete */
#define FAB$V_ESC 27
#define FAB$V_TEF 28
#define FAB$V_OFP 29
#define FAB$V_KFO 30
#define FAB$M_ASY (1<<FAB$V_ASY) /* 0x01 */
#define FAB$M_MXV (1<<FAB$V_MXV) /* 0x02 */
#define FAB$M_SUP (1<<FAB$V_SUP) /* 0x04 */
#define FAB$M_TMP (1<<FAB$V_TMP) /* 0x08 */
#define FAB$M_TMD (1<<FAB$V_TMD) /* 0x10 */
#define FAB$M_DFW (1<<FAB$V_DFW) /* 0x20 */
#define FAB$M_SQO (1<<FAB$V_SQO) /* 0x40 */
#define FAB$M_RWO (1<<FAB$V_RWO) /* 0x80 */
#define FAB$M_POS (1<<FAB$V_POS) /* 0x0100 */
#define FAB$M_WCK (1<<FAB$V_WCK) /* 0x0200 */
#define FAB$M_NEF (1<<FAB$V_NEF) /* 0x0400 */
#define FAB$M_RWC (1<<FAB$V_RWC) /* 0x0800 */
#define FAB$M_DMO (1<<FAB$V_DMO) /* 0x1000 */
#define FAB$M_SPL (1<<FAB$V_SPL) /* 0x2000 */
#define FAB$M_SCF (1<<FAB$V_SCF) /* 0x4000 */
#define FAB$M_DLT (1<<FAB$V_DLT) /* 0x8000 */
#define FAB$M_NFS (1<<FAB$V_NFS) /* 0x010000 */
#define FAB$M_UFO (1<<FAB$V_UFO) /* 0x020000 */
#define FAB$M_PPF (1<<FAB$V_PPF) /* 0x040000 */
#define FAB$M_INP (1<<FAB$V_INP) /* 0x080000 */
#define FAB$M_CTG (1<<FAB$V_CTG) /* 0x100000 */
#define FAB$M_CBT (1<<FAB$V_CBT) /* 0x200000 */
#define FAB$M_SYNCSTS (1<<FAB$V_SYNCSTS) /* 0x400000 */
#define FAB$M_JNL (1<<FAB$V_JNL) /*(0x400000)*/
#define FAB$M_RCK (1<<FAB$V_RCK) /* 0x800000 */
#define FAB$M_NAM (1<<FAB$V_NAM) /* 0x01000000 */
#define FAB$M_CIF (1<<FAB$V_CIF) /* 0x02000000 */
#define FAB$M_UFM (1<<FAB$V_UFM) /* 0x04000000 */
#define FAB$M_ESC (1<<FAB$V_ESC) /* 0x08000000 */
#define FAB$M_TEF (1<<FAB$V_TEF) /* 0x10000000 */
#define FAB$M_OFP (1<<FAB$V_OFP) /* 0x20000000 */
#define FAB$M_KFO (1<<FAB$V_KFO) /* 0x40000000 */
/* file access (FAC) mask bits */
#define FAB$V_PUT 0
#define FAB$V_GET 1
#define FAB$V_DEL 2
#define FAB$V_UPD 3
#define FAB$V_TRN 4
#define FAB$V_BIO 5
#define FAB$V_BRO 6
#define FAB$V_EXE 7
#define FAB$M_PUT (1<<FAB$V_PUT) /* 0x01 */
#define FAB$M_GET (1<<FAB$V_GET) /* 0x02 */
#define FAB$M_DEL (1<<FAB$V_DEL) /* 0x04 */
#define FAB$M_UPD (1<<FAB$V_UPD) /* 0x08 */
#define FAB$M_TRN (1<<FAB$V_TRN) /* 0x10 */
#define FAB$M_BIO (1<<FAB$V_BIO) /* 0x20 */
#define FAB$M_BRO (1<<FAB$V_BRO) /* 0x40 */
#define FAB$M_EXE (1<<FAB$V_EXE) /* 0x80 */
/* file sharing (SHR) mask bits */
#define FAB$V_SHRPUT 0
#define FAB$V_SHRGET 1
#define FAB$V_SHRDEL 2
#define FAB$V_SHRUPD 3
#define FAB$V_MSE 4
#define FAB$V_NIL 5
#define FAB$V_UPI 6
#define FAB$M_SHRPUT (1<<FAB$V_SHRPUT) /* 0x01 */
#define FAB$M_SHRGET (1<<FAB$V_SHRGET) /* 0x02 */
#define FAB$M_SHRDEL (1<<FAB$V_SHRDEL) /* 0x04 */
#define FAB$M_SHRUPD (1<<FAB$V_SHRUPD) /* 0x08 */
#define FAB$M_MSE (1<<FAB$V_MSE) /* 0x10 */
#define FAB$M_NIL (1<<FAB$V_NIL) /* 0x20 */
#define FAB$M_UPI (1<<FAB$V_UPI) /* 0x40 */
/* file organization (ORG) mask bits and codes */
#define FAB$V_ORG 4
#define FAB$M_ORG 0xF0
#define FAB$S_ORG 4
#define FAB$C_SEQ 0 /* sequential */
#define FAB$C_REL 16 /* relative */
#define FAB$C_IDX 32 /* indexed */
#define FAB$C_HSH 48 /* hashed */
/* record attributes (RAT) mask bits */
#define FAB$V_FTN 0
#define FAB$V_CR 1
#define FAB$V_PRN 2
#define FAB$V_BLK 3
#ifndef NO_VMS_V6
#define FAB$V_MSB 4
#endif
#define FAB$M_FTN (1<<FAB$V_FTN) /* 0x01 */
#define FAB$M_CR (1<<FAB$V_CR) /* 0x02 */
#define FAB$M_PRN (1<<FAB$V_PRN) /* 0x04 */
#define FAB$M_BLK (1<<FAB$V_BLK) /* 0x08 */
#ifndef NO_VMS_V6
#define FAB$M_MSB (1<<FAB$V_MSB) /* 0x10 */
#endif
/* record format (RFM) codes */
#define FAB$C_RFM_DFLT 2 /* var len is default */
#define FAB$C_UDF 0 /* undefined (also stream binary) */
#define FAB$C_FIX 1 /* fixed length records */
#define FAB$C_VAR 2 /* variable length records */
#define FAB$C_VFC 3 /* variable fixed control */
#define FAB$C_STM 4 /* RMS-11 stream (valid only for sequential org) */
#define FAB$C_STMLF 5 /* LF stream (valid only for sequential org) */
#define FAB$C_STMCR 6 /* CR stream (valid only for sequential org) */
#define FAB$C_MAXRFM 6 /* maximum rfm supported */
/* journaling (JNL) mask bits; RU, ONLY_RU, and NEVER_RU are mutually exclusive */
#define FAB$V_ONLY_RU 0
#define FAB$V_RU 1
#define FAB$V_BI 2
#define FAB$V_AI 3
#define FAB$V_AT 4
#define FAB$V_NEVER_RU 5
#define FAB$V_JOURNAL_FILE 6
#define FAB$M_ONLY_RU (1<<FAB$V_ONLY_RU) /* 0x01 */
#define FAB$M_RU (1<<FAB$V_RU) /* 0x02 */
#define FAB$M_BI (1<<FAB$V_BI) /* 0x04 */
#define FAB$M_AI (1<<FAB$V_AI) /* 0x08 */
#define FAB$M_AT (1<<FAB$V_AT) /* 0x10 */
#define FAB$M_NEVER_RU (1<<FAB$V_NEVER_RU) /* 0x20 */
#define FAB$M_JOURNAL_FILE (1<<FAB$V_JOURNAL_FILE) /* 0x40 */
/* recovery control flags (RCF) mask bits */
#define FAB$V_RCF_RU 0
#define FAB$V_RCF_AI 1
#define FAB$V_RCF_BI 2
#define FAB$M_RCF_RU (1<<FAB$V_RCF_RU) /* 0x01 */
#define FAB$M_RCF_AI (1<<FAB$V_RCF_AI) /* 0x02 */
#define FAB$M_RCF_BI (1<<FAB$V_RCF_BI) /* 0x04 */
/* agent access modes (ACMODES) mask bits */
#define FAB$V_LNM_MODE 0 /* logical names */
#define FAB$M_LNM_MODE 0x03
#define FAB$S_LNM_MODE 2
#define FAB$V_CHAN_MODE 2 /* channel */
#define FAB$M_CHAN_MODE 0x0C
#define FAB$S_CHAN_MODE 2
#define FAB$V_FILE_MODE 4 /* file's accessability */
#define FAB$M_FILE_MODE 0x30
#define FAB$S_FILE_MODE 2
#define FAB$V_CALLERS_MODE 6 /* structure probing */
#define FAB$M_CALLERS_MODE 0xC0
#define FAB$S_CALLERS_MODE 2
#define FAB$K_BLN 80 /* length of fab */
#define FAB$C_BLN 80
struct FAB {
unsigned char fab$b_bid; /* block id */
unsigned char fab$b_bln; /* block len */
unsigned short fab$w_ifi; /* internal file index */
unsigned long fab$l_fop; /* file options */
unsigned long fab$l_sts; /* status */
unsigned long fab$l_stv; /* status value */
unsigned long fab$l_alq; /* allocation quantity */
unsigned short fab$w_deq; /* default allocation quantity */
unsigned char fab$b_fac; /* file access */
unsigned char fab$b_shr; /* file sharing */
unsigned long fab$l_ctx; /* user context */
char fab$b_rtv; /* retrieval window size */
unsigned char fab$b_org; /* file organization */
unsigned char fab$b_rat; /* record format */
unsigned char fab$b_rfm; /* record format */
unsigned long fab$l_jnl; /* journaling options */
void *fab$l_xab; /* xab address */
void *fab$l_nam; /* nam block address */
const char *fab$l_fna; /* file name string address */
const char *fab$l_dna; /* default file name string addr */
unsigned char fab$b_fns; /* file name string size */
unsigned char fab$b_dns; /* default name string size */
unsigned short fab$w_mrs; /* maximum record size */
unsigned long fab$l_mrn; /* maximum record number */
unsigned short fab$w_bls; /* blocksize for tape */
unsigned char fab$b_bks; /* bucket size */
unsigned char fab$b_fsz; /* fixed header size */
unsigned long fab$l_dev; /* device characteristics */
unsigned long fab$l_sdc; /* spooling device characteristics */
unsigned short fab$w_gbc; /* global buffer count */
unsigned char fab$b_acmodes; /* agent access modes */
unsigned char fab$b_rcf; /* (only for use by RMS Recovery) */
unsigned : 32; /* long fill; (spare) */
};
struct fabdef {
unsigned char fab$b_bid; /* block id */
unsigned char fab$b_bln; /* block len */
union {
unsigned short fab$w_ifi; /* internal file index */
struct {
unsigned : 6; /* move to bit 6 */
unsigned fab$v_ppf_rat : 8; /* rat value for process-permanent files */
unsigned fab$v_ppf_ind : 1; /* indirect access to process-permanent file */
unsigned fab$v_ppifi : 1; /* indicates that this is PPF file */
} fab$r_ifi_bits;
} fab$r_ifi_overlay;
union {
unsigned long fab$l_fop; /* file options */
struct {
unsigned fab$v_asy : 1; /* asynchronous operations */
unsigned fab$v_mxv : 1; /* maximize version number */
unsigned fab$v_sup : 1; /* supersede existing file */
unsigned fab$v_tmp : 1; /* create temporary file */
unsigned fab$v_tmd : 1; /* create temp file marked for delete */
unsigned fab$v_dfw : 1; /* deferred write (rel and idx) */
unsigned fab$v_sqo : 1; /* sequential access only */
unsigned fab$v_rwo : 1; /* rewind mt on open */
unsigned fab$v_pos : 1; /* use next magtape position */
unsigned fab$v_wck : 1; /* write checking */
unsigned fab$v_nef : 1; /* inhibit end of file positioning */
unsigned fab$v_rwc : 1; /* rewind mt on close */
unsigned fab$v_dmo : 1; /* dismount mt on close (not implemented) */
unsigned fab$v_spl : 1; /* spool file on close */
unsigned fab$v_scf : 1; /* submit command file on close */
unsigned fab$v_dlt : 1; /* delete sub-option */
unsigned fab$v_nfs : 1; /* non-file structured operation */
unsigned fab$v_ufo : 1; /* user file open - no rms operations */
unsigned fab$v_ppf : 1; /* process permanent file (pio segment) */
unsigned fab$v_inp : 1; /* process-permanent file is 'input' */
unsigned fab$v_ctg : 1; /* contiguous extension */
unsigned fab$v_cbt : 1; /* contiguous best try */
unsigned fab$v_syncsts : 1; /* Synchronous status notification for asynchronous routines. */
unsigned fab$v_rck : 1; /* read checking */
unsigned fab$v_nam : 1; /* use name block dvi, did, and/or fid fields for open */
unsigned fab$v_cif : 1; /* create if non-existent */
unsigned fab$v_ufm : 1; /* reserved (was UFM bitfield) */
unsigned fab$v_esc : 1; /* 'escape' to non-standard function ($modify) */
unsigned fab$v_tef : 1; /* truncate at eof on close (write-accessed seq. disk file only) */
unsigned fab$v_ofp : 1; /* output file parse (only name type sticky) */
unsigned fab$v_kfo : 1; /* known file open (image activator only release 1) */
unsigned : 1; /* reserved (not implemented) */
} fab$r_fop_bits;
} fab$r_fop_overlay;
unsigned long fab$l_sts; /* status */
unsigned long fab$l_stv; /* status value */
unsigned long fab$l_alq; /* allocation quantity */
unsigned short fab$w_deq; /* default allocation quantity */
union {
unsigned char fab$b_fac; /* file access */
struct {
unsigned fab$v_put : 1; /* put access */
unsigned fab$v_get : 1; /* get access */
unsigned fab$v_del : 1; /* delete access */
unsigned fab$v_upd : 1; /* update access */
unsigned fab$v_trn : 1; /* truncate access */
unsigned fab$v_bio : 1; /* block i/o access */
unsigned fab$v_bro : 1; /* block and record i/o access */
unsigned fab$v_exe : 1; /* execute access (caller must be exec -*/
/* or kernel mode, ufo must also be set)*/
} fab$r_fac_bits;
} fab$r_fac_overlay;
union {
unsigned char fab$b_shr; /* file sharing */
struct {
unsigned fab$v_shrput : 1; /* put access */
unsigned fab$v_shrget : 1; /* get access */
unsigned fab$v_shrdel : 1; /* delete access */
unsigned fab$v_shrupd : 1; /* update access */
unsigned fab$v_mse : 1; /* multi-stream connects enabled */
unsigned fab$v_nil : 1; /* no sharing */
unsigned fab$v_upi : 1; /* user provided interlocking (allows */
/* multiple writers to seq. files) */
unsigned : 1;
} fab$r_shr_bits;
} fab$r_shr_overlay;
unsigned long fab$l_ctx; /* user context */
char fab$b_rtv; /* retrieval window size (signed) */
union {
unsigned char fab$b_org; /* file organization */
struct {
unsigned : 4;
unsigned fab$v_org : 4;
} fab$r_org_bits;
} fab$r_org_overlay;
union {
unsigned char fab$b_rat; /* record format */
struct {
unsigned fab$v_ftn : 1; /* fortran carriage-ctl */
unsigned fab$v_cr : 1; /* lf-record-cr carriage ctl */
unsigned fab$v_prn : 1; /* print-file carriage ctl */
unsigned fab$v_blk : 1; /* records don't cross block boundaries */
#ifndef NO_VMS_V6
unsigned fab$v_msb : 1; /* MSB formatted byte count */
unsigned : 3;
#else
unsigned : 4;
#endif
} fab$r_rat_bits;
} fab$r_rat_overlay;
unsigned char fab$b_rfm; /* record format */
union {
unsigned char fab$b_journal; /* journaling options (from FH2$B_JOURNAL) */
struct { /* note: only one of RU, ONLY_RU, NEVER_RU may be set at a time */
unsigned fab$v_only_ru : 1; /* file is accessible only in recovery unit */
unsigned fab$v_ru : 1; /* enable recovery unit journal */
unsigned fab$v_bi : 1; /* enable before image journal */
unsigned fab$v_ai : 1; /* enable after image journal */
unsigned fab$v_at : 1; /* enable audit trail journal */
unsigned fab$v_never_ru: 1; /* file is never accessible in recovery unit */
unsigned fab$v_journal_file : 1; /* this is a journal file */
unsigned : 1;
} fab$r_journal_bits;
} fab$r_journal_overlay;
unsigned char fab$b_ru_facility; /* recoverable facility id number */
unsigned : 16; /* short fill; (spare) */
unsigned long fab$l_xab; /* xab address */
unsigned long fab$l_nam; /* nam block address */
unsigned long fab$l_fna; /* file name string address */
unsigned long fab$l_dna; /* default file name string addr */
unsigned char fab$b_fns; /* file name string size */
unsigned char fab$b_dns; /* default name string size */
unsigned short fab$w_mrs; /* maximum record size */
unsigned long fab$l_mrn; /* maximum record number */
unsigned short fab$w_bls; /* blocksize for tape */
unsigned char fab$b_bks; /* bucket size */
unsigned char fab$b_fsz; /* fixed header size */
unsigned long fab$l_dev; /* device characteristics */
unsigned long fab$l_sdc; /* spooling device characteristics */
unsigned short fab$w_gbc; /* global buffer count */
union {
unsigned char fab$b_acmodes; /* agent access modes */
#define fab$b_dsbmsk fab$b_acmodes /* obsolete log.trans. disable mask */
struct {
unsigned fab$v_lnm_mode : 2; /* ACMODE for log nams */
unsigned fab$v_chan_mode : 2; /* ACMODE for channel */
unsigned fab$v_file_mode : 2; /* ACMODE to use for determining file accessibility */
unsigned fab$v_callers_mode : 2; /* ACMODE for user structure probing; */
/* maximized with actual mode of caller */
} fab$r_acmodes_bits;
} fab$r_acmodes_overlay;
union { /* recovery control flags */
unsigned char fab$b_rcf; /* (only for use by RMS Recovery) */
struct {
unsigned fab$v_rcf_ru : 1; /* recovery unit recovery */
unsigned fab$v_rcf_ai : 1; /* after image recovery */
unsigned fab$v_rcf_bi : 1; /* before image recovery */
unsigned : 5;
} fab$r_rcf_bits;
} fab$r_rcf_overlay;
unsigned : 32; /* long fill; (spare) */
};
/* declare initialized prototype data structure */
extern struct FAB cc$rms_fab __asm("_$$PsectAttributes_GLOBALSYMBOL$$cc$rms_fab");
/* globalref struct FAB cc$rms_fab; */
#endif /*_FABDEF_H*/
|