/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:04 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]RMSUSR.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $XABALLDEF ***/ #ifndef __XABALLDEF_LOADED #define __XABALLDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /* */ /* 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 */ #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _xaballdef { #pragma __nomember_alignment unsigned char xab$b_cod; /* xab id code */ unsigned char xab$b_bln; /* block length */ short int xaballdef$$_fill_1; /* (spare) */ void *xab$l_nxt; /* xab chain link */ __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 */ /* (not applicable if aln = vbn or rfi) */ 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; /*COMMON TO FHC AND ALQ XABS */ 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) */ } XABALLDEF; #if !defined(__VAXC) #define xab$b_aop xab$r_aop_overlay.xab$b_aop #define xab$r_aop_bits xab$r_aop_overlay.xab$r_aop_bits #define xab$v_hrd xab$r_aop_bits.xab$v_hrd #define xab$v_onc xab$r_aop_bits.xab$v_onc #define xab$v_cbt xab$r_aop_bits.xab$v_cbt #define xab$v_ctg xab$r_aop_bits.xab$v_ctg #define xab$w_rfi xab$r_rfi_overlay.xab$w_rfi #define xab$r_rfi_fields xab$r_rfi_overlay.xab$r_rfi_fields #define xab$w_rfi0 xab$r_rfi_fields.xab$w_rfi0 #define xab$w_rfi2 xab$r_rfi_fields.xab$w_rfi2 #define xab$w_rfi4 xab$r_rfi_fields.xab$w_rfi4 #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif struct xaballdef { #pragma __nomember_alignment unsigned char xab$b_cod; /* xab id code */ unsigned char xab$b_bln; /* block length */ short int xaballdef$$_fill_1; /* (spare) */ void *xab$l_nxt; /* xab chain link */ __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 */ /* (not applicable if aln = vbn or rfi) */ 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; /*COMMON TO FHC AND ALQ XABS */ 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) #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 /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* basealign on aggregate XABALLDEF operates after aggregate end */ #define XAB$K_ALLLEN 32 /* length of xaball */ #define XAB$C_ALLLEN 32 /* length of xaball */ /* These are traditional macros that should be hand-maintained for compatibility */ /* Do not have to add new ones, but do have to maintain those that are here already. */ #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 #ifdef __NEW_STARLET #define XABALL _xaballdef #else #define XABALL xaballdef #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 #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __XABALLDEF_LOADED */