/* Ported to GNU C openVMS/Alpha by Klaus Kämpf, kkaempf@progis.de */ /* * * RMS recovery unit XAB definitions */ #ifndef _XABRUDEF_H #define _XABRUDEF_H #ifdef __cplusplus extern "C" { #endif #define XAB$C_RU 35 /* xabru ID code */ #define XAB$V_NOJOIN 0 #define XAB$M_NOJOIN (1< #endif #ifdef __ALPHA #define XABRU xabrudef #else struct XABRU { __XABSTART_FIELDS unsigned short xab$w_ru_flags; /* flags */ unsigned short : 16; unsigned long xab$l_ru_handle; /* RU handle to join (input field) */ unsigned long xab$l_ru_handle_joined; /* RU handle joined (output field) */ unsigned : 32, : 32, : 32, : 32, : 32, :32, : 32; /*long[7]*/ } __attribute__ ((packed)); #endif struct xabrudef { __XABSTART_FIELDS union { unsigned short xab$w_ru_flags; /* flags */ #define xab$w_ru_flags xab$r_ru_flags_overlay.xab$w_ru_flags struct { unsigned short xab$v_nojoin : 1; /* do not join any recovery unit */ unsigned short : 7; unsigned short : 8; /* padding */ } xab$r_ru_flags_bits; #define xab$v_nojoin xab$r_ru_flags_overlay.xab$r_ru_flags_bits.xab$v_nojoin } xab$r_ru_flags_overlay; unsigned short : 16; /* short fill; */ unsigned long xab$l_ru_handle; /* RU handle to join (input field) */ unsigned long xab$l_ru_handle_joined; /* RU handle joined (output field) */ unsigned : 32, :32, :32, : 32, /* long fill1, fill2, ... */ : 32, :32, :32; /* long fill1, fill2, ... */ } __attribute__ ((packed)); #if 0 /* there's no recovery unit xab prototype available */ /* declare initialized prototype data structure */ #ifdef __ALPHA #else extern struct XABRU cc$rms_xabru __asm("_$$PsectAttributes_GLOBALSYMBOL$$cc$rms_xabru"); /* globalref struct XABRU cc$rms_xabru; */ #endif #endif #ifdef __cplusplus } #endif #endif /*_XABRUDEF_H*/