/* Ported to GNU C openVMS/Alpha by Klaus Kämpf, kkaempf@progis.de */ /* * * RMS itemlist XAB definitions */ #ifndef _XABITMDEF_H #define _XABITMDEF_H #ifdef __cplusplus extern "C" { #endif #define XAB$C_ITM 36 /* xabitm ID code */ /* The following set of flags exactly mimic the FCHDEF flags defined in STARLET. They are here to provide an unsupported interface to the UCHAR longword maintained by the file system. */ #define XAB$V_WASCONTIG 0 #define XAB$V_NOBACKUP 1 #define XAB$V_WRITEBACK 2 #define XAB$V_READCHECK 3 #define XAB$V_WRITCHECK 4 #define XAB$V_CONTIGB 5 #define XAB$V_LOCKED 6 #define XAB$V_CONTIG 7 #define XAB$V_RESERVED1 8 #define XAB$V_RESERVED2 9 #define XAB$V_RESERVED3 10 #define XAB$V_BADACL 11 #define XAB$V_SPOOL 12 #define XAB$V_DIRECTORY 13 #define XAB$V_BADBLOCK 14 #define XAB$V_MARKDEL 15 #define XAB$V_NOCHARGE 16 #define XAB$V_ERASE 17 #ifndef NO_VMS_V6 #define XAB$V_RESERVED4 18 #define XAB$V_SHELVED 19 #define XAB$V_RESERVED6 20 #define XAB$V_NOMOVE 21 #define XAB$V_NOSHELVABLE 22 #define XAB$V_SCRATCH_FILE XAB$V_RESERVED6 #endif #define XAB$M_WASCONTIG (1< #endif #ifdef __ALPHA #define XABITM xabitmdef #else struct XABITM { __XABSTART_FIELDS void *xab$l_itemlist; /* address of the item list */ unsigned char xab$b_mode; /* must be either SETMODE or SENSEMODE */ unsigned : 24; /* reserved */ unsigned : 32, : 32, : 32, : 32; /*long[4]*/ } __attribute__ ((packed)); #endif struct xabitmdef { __XABSTART_FIELDS void *xab$l_itemlist; /* address of the item list */ unsigned char xab$b_mode; /* must be either SETMODE or SENSEMODE */ unsigned char : 8, : 8, : 8; /* char fill[3]; reserved */ unsigned int : 32, : 32, : 32, : 32; /* long fill[4]; reserved */ unsigned char xab$v_file_attributes : 4; unsigned char xab$v_file_contents : 4; unsigned char xab$v_flush_on_close : 4; unsigned int xab$v_cachectl_mbz : 20; } __attribute__ ((packed)); /* The following set of flags mimic the IFB$B_RECVRFLGS flags. */ /* They are here to provide an interface for RECOVER. */ #define XAB$V_RCF_RU 0 #define XAB$V_RCF_AI 1 #define XAB$V_RCF_BI 2 #define XAB$V_RCF_NOPAD 3 #define XAB$M_RCF_RU (1<