/********************************************************************************************************************************/ /* Created: 19-JUN-1992 18:08:28 by OpenVMS SDL EV1-11 */ /* Source: 19-JUN-1992 18:04:56 CRTL$:[ROUTLEY.CRTL.SDLFIX.BLADEFIX]RMSUSR.SDI; */ /********************************************************************************************************************************/ /*** MODULE $XABALLDEF ***/ #ifndef __XABALLDEF_LOADED #define __XABALLDEF_LOADED 1 #if defined(__DECC) || defined(__DECCXX) #pragma __nostandard /* This file uses non-ANSI-Standard features */ #else #pragma nostandard #endif #if defined(__DECC) #pragma __member_alignment __save #pragma __nomember_alignment __byte #endif #if defined(__DECCXX) #pragma __member_alignment __save #pragma __nomember_alignment #endif #ifdef __DECC #pragma __message __save #pragma __message __disable (__MISALGNDSTRCT) #pragma __message __disable (__MISALGNDMEM) #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #else #define __unknown_params #endif #if !defined(__VAXC) && !defined(VAXC) #define __struct struct #define __union union #else #define __struct variant_struct #define __union variant_union #endif /*** MODULE $xaballdef ***/ /*-- */ /*++ */ /* */ /* allocation xab definitions */ /* $xaballdef */ /* */ /* */ /*+++++***** */ /* the fields thru bkz cannot be rearranged due to */ /* their commonality with fab */ #define XAB$C_ALL 20 /* xaball id code */ #define XAB$M_HRD 0x1 #define XAB$M_ONC 0x2 #define XAB$M_CBT 0x20 #define XAB$M_CTG 0x80 #define XAB$C_ANY 0 /* any allocation o.k. */ #define XAB$C_CYL 1 /* cylinder boundary */ #define XAB$C_LBN 2 /* allocate at specified lbn */ #define XAB$C_VBN 3 /* allocate near specified vbn */ #define XAB$C_RFI 4 /* allocate near related file */ #define XAB$K_ALLLEN 32 /* length of xaball */ #define XAB$C_ALLLEN 32 /* length of xaball */ struct XABALL { unsigned char xab$b_cod; unsigned char xab$b_bln; unsigned : 16; /* spare */ void *xab$l_nxt; /* Next XAB in chain */ __union { unsigned char xab$b_aop; /* allocation options */ __struct { unsigned xab$v_hrd : 1; /* fail if requested alignment impossible */ unsigned xab$v_onc : 1; /* locate allocated space within a cylinder */ unsigned xaballdef$$_fill_5 : 3; /* (spares) */ unsigned xab$v_cbt : 1; /* contiguous alllocation, best try */ unsigned xaballdef$$_fill_6 : 1; /* spare */ unsigned xab$v_ctg : 1; /* contiguous allocation */ } xab$r_aop_bits; } xab$r_aop_overlay; unsigned char xab$b_aln; /* alignment type */ unsigned short int xab$w_vol; /* relative volume no. for allocation */ unsigned int xab$l_loc; /* allocation location */ unsigned int xab$l_alq; /* allocation quantity */ unsigned short int xab$w_deq; /* default allocation quantity */ unsigned char xab$b_bkz; /* bucket size for area */ unsigned char xab$b_aid; /* area id number */ __union { unsigned short int xab$w_rfi [3]; /* related file id */ __struct { unsigned short int xab$w_rfi0; /* file number */ unsigned short int xab$w_rfi2; /* seq number */ unsigned short int xab$w_rfi4; /* rev number */ } xab$r_rfi_fields; } xab$r_rfi_overlay; short int xaballdef$$_fill_8; /* (spare) */ } ; #if !defined(__VAXC) && !defined(VAXC) #define xab$b_aop xab$r_aop_overlay.xab$b_aop #define xab$v_hrd xab$r_aop_overlay.xab$r_aop_bits.xab$v_hrd #define xab$v_onc xab$r_aop_overlay.xab$r_aop_bits.xab$v_onc #define xab$v_cbt xab$r_aop_overlay.xab$r_aop_bits.xab$v_cbt #define xab$v_ctg xab$r_aop_overlay.xab$r_aop_bits.xab$v_ctg #define xab$w_rfi xab$r_rfi_overlay.xab$w_rfi #define xab$w_rfi0 xab$r_rfi_overlay.xab$r_rfi_fields.xab$w_rfi0 #define xab$w_rfi2 xab$r_rfi_overlay.xab$r_rfi_fields.xab$w_rfi2 #define xab$w_rfi4 xab$r_rfi_overlay.xab$r_rfi_fields.xab$w_rfi4 #endif /* These are tradtional macros that should be hand-maintained for compatibility */ #define XAB$V_HRD 0 /* fail if requestd alignmt cannot be performed */ #define XAB$V_ONC 1 /* locate space on cylinder boundary */ #define XAB$V_CBT 5 /* contiguous allocation, best try */ #define XAB$V_CTG 7 /* contiguous allocation */ /* Note: if you wish to access the xab$w_rfi field defined in the struct, * #undef this macro in your code */ #ifndef __cplusplus #undef xab$w_rfi #define xab$w_rfi xab$w_rfi0 #endif #define cc$rms_xaball (*decc$ga_rms_xaball) #if defined(__DECC) || defined(__DECCXX) # pragma __extern_model __save # pragma __extern_model __strict_refdef extern struct XABALL cc$rms_xaball; /* Declare initialized prototype data structures */ # pragma __extern_model __restore #else globalref struct XABALL cc$rms_xaball; /* Declare initialized prototype data structures */ #endif #if defined(__DECC) #pragma __message __restore #endif #if defined(__DECC) || defined(__DECCXX) #pragma __member_alignment __restore #endif #ifdef __cplusplus } #endif #if defined(__DECC) || defined(__DECCXX) #pragma __standard /* This file uses non-ANSI-Standard features */ #else #pragma standard #endif #endif /* __XABALLDEF_LOADED */