/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:05 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]SRMDEF.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $DSCDEF ***/ #ifndef __DSCDEF_LOADED #define __DSCDEF_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 /* Define Procedure argument data types */ /* The following encoding is used for atomic data elements: */ /* Mnemonic Code Description */ #define DSC$K_DTYPE_Z 0 /* Unspecified. The calling program has */ #define DSC64$K_DTYPE_Z 0 /* specified no data type/* the called */ /* procedure should assume the argument is of */ /* the correct type. */ #define DSC$K_DTYPE_BU 2 /* Byte Logical. 8-bit unsigned quantity. */ #define DSC64$K_DTYPE_BU 2 #define DSC$K_DTYPE_WU 3 /* Word Logical. 16-bit unsigned quantity. */ #define DSC64$K_DTYPE_WU 3 #define DSC$K_DTYPE_LU 4 /* Longword Logical. 32-bit unsigned */ #define DSC64$K_DTYPE_LU 4 /* quantity. */ #define DSC$K_DTYPE_QU 5 /* Quadword Logical. 64-bit unsigned */ #define DSC64$K_DTYPE_QU 5 /* quantity. */ #define DSC$K_DTYPE_OU 25 /* Octaword Logical. 128-bit unsigned */ #define DSC64$K_DTYPE_OU 25 /* quantity. */ #define DSC$K_DTYPE_B 6 /* Byte Integer. 8-bit signed 2's-complement */ #define DSC64$K_DTYPE_B 6 /* integer. */ #define DSC$K_DTYPE_W 7 /* Word Integer. 16-bit signed 2's-complement */ #define DSC64$K_DTYPE_W 7 /* integer. */ #define DSC$K_DTYPE_L 8 /* Longword Integer. 32-bit signed */ #define DSC64$K_DTYPE_L 8 /* 2's-complement integer. */ #define DSC$K_DTYPE_Q 9 /* Quadword Integer. 64-bit signed */ #define DSC64$K_DTYPE_Q 9 /* 2's-complement integer. */ #define DSC$K_DTYPE_O 26 /* Octaword Integer. 128-bit signed */ #define DSC64$K_DTYPE_O 26 /* 2's-complement integer. */ #define DSC$K_DTYPE_F 10 /* F_floating. 32-bit F_floating quantity representing */ #define DSC64$K_DTYPE_F 10 /* a single-precision number. */ #define DSC$K_DTYPE_D 11 /* D_floating. 64-bit D_floating quantity representing */ #define DSC64$K_DTYPE_D 11 /* a double-precision number. */ #define DSC$K_DTYPE_G 27 /* G_floating. 64-bit G_floating quantity representing */ #define DSC64$K_DTYPE_G 27 /* a double-precision number. */ #define DSC$K_DTYPE_H 28 /* H_floating. 128-bit H_floating quantity representing */ #define DSC64$K_DTYPE_H 28 /* a quadruple-precision number. */ #define DSC$K_DTYPE_FC 12 /* F_floating complex. Ordered pair of F_floating */ #define DSC64$K_DTYPE_FC 12 /* quantities representing a single-precision complex */ /* number. The lower addressed quantity is the */ /* real part, the higher addressed quantity is the */ /* imaginary part. */ #define DSC$K_DTYPE_DC 13 /* D_floating complex. Ordered pair of D_floating */ #define DSC64$K_DTYPE_DC 13 /* quantities representing a double-precision complex */ /* number. The lower addressed quantity is the */ /* real part, the higher addressed quantity is the */ /* imaginary part. */ #define DSC$K_DTYPE_GC 29 /* G_floating complex. Ordered pair of G_floating */ #define DSC64$K_DTYPE_GC 29 /* quantities representing a double-precision complex */ /* number. The lower addressed quantity is the */ /* real part, the higher addressed quantity is the */ /* imaginary part. */ #define DSC$K_DTYPE_HC 30 /* H_floating complex. Ordered pair of H_floating */ #define DSC64$K_DTYPE_HC 30 /* quantities representing a quadruple-precision complex */ /* number. The lower addressed quantity is the */ /* real part, the higher addressed quantity is the */ /* imaginary part. */ #define DSC$K_DTYPE_FS 52 /* IEEE floating basic single S. 32-bit quantity representing */ #define DSC64$K_DTYPE_FS 52 /* a single-precision number. */ #define DSC$K_DTYPE_FT 53 /* IEEE floating basic double T. 64-bit quantity representing */ #define DSC64$K_DTYPE_FT 53 /* a double-precision number. */ #define DSC$K_DTYPE_FSC 54 /* IEEE floating basic single S complex. Ordered pair of S_floating */ #define DSC64$K_DTYPE_FSC 54 /* quantities representing a single-precision complex */ /* number. The lower addressed quantity is the */ /* real part, the higher addressed quantity is the */ /* imaginary part. */ #define DSC$K_DTYPE_FTC 55 /* IEEE floating basic double T complex. Ordered pair of T_floating */ #define DSC64$K_DTYPE_FTC 55 /* quantities representing a double-precision complex */ /* number. The lower addressed quantity is the */ /* real part, the higher addressed quantity is the */ /* imaginary part. */ #define DSC$K_DTYPE_FX 57 /* IEEE floating basic quadruple X. 128-bit quantity representing */ #define DSC64$K_DTYPE_FX 57 /* an extended-precision number. */ #define DSC$K_DTYPE_FXC 58 /* IEEE floating basic quadruple X complex. Ordered pair of X_floating */ #define DSC64$K_DTYPE_FXC 58 /* quantities representing an extended-precision complex */ /* number. The lower addressed quantity is the */ /* real part, the higher addressed quantity is the */ /* imaginary part. */ #define DSC$K_DTYPE_CIT 31 /* COBOL Intermediate Temporary. Floating point */ #define DSC64$K_DTYPE_CIT 31 /* datum with an 18 digit normalized decimal */ /* fraction and a 2 digit decimal exponent. The */ /* fraction is represented as a packed decimal */ /* number. The exponent is represented as a */ /* 16-bit 2's complement integer. */ /* The following string types are ordinarily described by a string */ /* descriptor. The data type codes below occur in those descriptors: */ #define DSC$K_DTYPE_T 14 /* Character-coded text. A single 8-bit character */ #define DSC64$K_DTYPE_T 14 /* (atomic data type) or a sequence of 0 to */ /* 2**16-1 8-bit characters (string data type). */ #define DSC$K_DTYPE_VT 37 /* Varying Character-coded Text Data Type. */ #define DSC64$K_DTYPE_VT 37 #define DSC$K_DTYPE_T2 38 /* 16-bit Text (Asian workstations) */ #define DSC64$K_DTYPE_T2 38 #define DSC$K_DTYPE_NU 15 /* Numeric string, unsigned. */ #define DSC64$K_DTYPE_NU 15 #define DSC$K_DTYPE_NL 16 /* Numeric string, left separate sign. */ #define DSC64$K_DTYPE_NL 16 #define DSC$K_DTYPE_NLO 17 /* Numeric string, left overpunched sign. */ #define DSC64$K_DTYPE_NLO 17 #define DSC$K_DTYPE_NR 18 /* Numeric string, right separate sign. */ #define DSC64$K_DTYPE_NR 18 #define DSC$K_DTYPE_NRO 19 /* Numeric string, right overpunched sign. */ #define DSC64$K_DTYPE_NRO 19 #define DSC$K_DTYPE_NZ 20 /* Numeric string, zoned sign. */ #define DSC64$K_DTYPE_NZ 20 #define DSC$K_DTYPE_P 21 /* Packed decimal string. */ #define DSC64$K_DTYPE_P 21 #define DSC$K_DTYPE_V 1 /* Bit. An aligned bit string. */ #define DSC64$K_DTYPE_V 1 #define DSC$K_DTYPE_VU 34 /* Bit Unaligned. */ #define DSC64$K_DTYPE_VU 34 /* The following encodings are used for miscellaneous data types: */ #define DSC$K_DTYPE_ZI 22 /* Sequence of instructions. */ #define DSC64$K_DTYPE_ZI 22 #define DSC$K_DTYPE_ZEM 23 /* Procedure entry mask. */ #define DSC64$K_DTYPE_ZEM 23 #define DSC$K_DTYPE_DSC 24 /* Descriptor. This data type allows a descriptor */ #define DSC64$K_DTYPE_DSC 24 /* to be an argument data type, thereby allowing */ /* the use of levels of descriptors. */ #define DSC$K_DTYPE_BPV 32 /* Bound Procedure Value. A two longword entity */ #define DSC64$K_DTYPE_BPV 32 /* in which the first longword contains the address */ /* of a procedure entry mask and the second longword */ /* contains the environment value. The environmeent */ /* value is determined in a language specific */ /* fashion when the original Bound Procedure Value */ /* is generated. When the bound procedure is */ /* invoked, the calling program loads the second */ /* longword into R1. This data type can be passed */ /* using the immediate value mechanism when the */ /* environment value is not needed. In this case */ /* the argument list entry contains the address of */ /* the procedure entry mask and the second longword */ /* is omitted. */ #define DSC$K_DTYPE_BLV 33 /* Bound label value. */ #define DSC64$K_DTYPE_BLV 33 #define DSC$K_DTYPE_ADT 35 /* Absolute Date and Time */ #define DSC64$K_DTYPE_ADT 35 /* K DTYPE_???,36 /* DTYPE code 36 is reserved for future definition */ /* The following types are used by the VAX/VMS Debug Facility: \FOR */ /* INTERNAL DOCUMENTATION ONLY. For details, see VAX/VMS Debug Facility */ /* Documentation.\ */ #define DSC$K_DTYPE_CAD 178 /* Address calculation command */ #define DSC64$K_DTYPE_CAD 178 #define DSC$K_DTYPE_ENT 179 /* Entry global definition */ #define DSC64$K_DTYPE_ENT 179 #define DSC$K_DTYPE_GBL 180 /* Global symbol definition */ #define DSC64$K_DTYPE_GBL 180 #define DSC$K_DTYPE_EPT 181 /* Entry point to routine. */ #define DSC64$K_DTYPE_EPT 181 #define DSC$K_DTYPE_R11 182 /* Line number relative to R11 correlation */ #define DSC64$K_DTYPE_R11 182 /* table. */ #define DSC$K_DTYPE_FLD 183 /* BLISS FIELD name. */ #define DSC64$K_DTYPE_FLD 183 #define DSC$K_DTYPE_PCT 184 /* PSECT information. */ #define DSC64$K_DTYPE_PCT 184 #define DSC$K_DTYPE_DPC 185 /* PC correlation table for FORTRAN IV+ */ #define DSC64$K_DTYPE_DPC 185 #define DSC$K_DTYPE_LBL 186 /* LITERAL or LABEL */ #define DSC64$K_DTYPE_LBL 186 #define DSC$K_DTYPE_SLB 187 /* Label in non-assembly language modules */ #define DSC64$K_DTYPE_SLB 187 #define DSC$K_DTYPE_MOD 188 /* Beginning of new module */ #define DSC64$K_DTYPE_MOD 188 #define DSC$K_DTYPE_EOM 189 /* End of module */ #define DSC64$K_DTYPE_EOM 189 #define DSC$K_DTYPE_RTN 190 /* Beginning of new routine */ #define DSC64$K_DTYPE_RTN 190 #define DSC$K_DTYPE_EOR 191 /* End of routine */ #define DSC64$K_DTYPE_EOR 191 /* The following type codes are RESERVED for future use: */ /* 37-177 RESERVED to DEC */ /* 192-255 RESERVED to CSS and customers */ /* */ /* A uniform descriptor mechanism is defined for use by all procedures */ /* which conform to this standard. Descriptors are uniformly typed and */ /* the mechanism is extensible. As new varieties of descriptor become */ /* necessary, they will be added to this catalogue. */ /* Note: */ /* */ /* All fields represent unsigned quantities unless explicitly stated */ /* otherwise. */ /* */ /* 32-bit Descriptor Prototype */ /* */ /* Each class of 32-bit descriptor consists of at least 2 longwords in */ /* the following format: */ /* */ /* +-------+-------+---------------+ */ /* | CLASS | DTYPE | LENGTH | :Descriptor */ /* +-------+-------+---------------+ */ /* | POINTER | */ /* +-------------------------------+ */ /* */ /* DSC$W_LENGTH A one-word field specific to the descriptor */ /* <0,15:0> class/* typically a 16-bit (unsigned) length. */ /* */ /* DSC$B_DTYPE A one-byte atomic data type code */ /* <0,23:16> */ /* */ /* DSC$B_CLASS A one-byte descriptor class code (see below) */ /* <0,31:24> */ /* */ /* DSC$A_POINTER A longword pointing to the first byte of the */ /* <1,31:0> data element described. */ /* */ /* 64-bit Descriptor Prototype */ /* */ /* Each class of 64-bit descriptor consists of at least 3 aligned */ /* quadwords in the following format: */ /* */ /* +-------+-------+---------------+ */ /* | CLASS | DTYPE | MBO (=1) | :Descriptor */ /* +-------+-------+---------------+ */ /* | MBMO (=-1) | */ /* +-------------------------------+ */ /* | | : 8 */ /* +- LENGTH -+ */ /* | | */ /* +-------------------------------+ */ /* | | : 16 */ /* +- POINTER -+ */ /* | | */ /* +-------------------------------+ */ /* */ /* DSC64$W_MBO A one-word field which must contain the value 1. */ /* <0,15:0> */ /* */ /* DSC64$B_DTYPE A one-byte atomic data type code */ /* <0,23:16> */ /* */ /* DSC64$B_CLASS A one-byte descriptor class code (see below) */ /* <0,31:24> */ /* */ /* DSC$L_MBMO A longword field which must contain the value -1. */ /* <1,31:0> */ /* */ /* DSC64$Q_LENGTH A quadword containing the length of the */ /* <2,63:0> data element described. */ /* */ /* DSC64$PQ_POINTER A quadword pointing to the first byte of the */ /* <4,63:0> data element described. */ /* */ /* Define the descriptor class codes */ /* */ #define DSC$K_CLASS_Z 0 /* Unspecified */ #define DSC64$K_CLASS_Z 0 /* Unspecified */ #define DSC$K_CLASS_S 1 /* Scalar, String Descriptor */ #define DSC64$K_CLASS_S 1 /* Scalar, String Descriptor */ #define DSC$K_CLASS_D 2 /* Dynamic String Descriptor */ #define DSC64$K_CLASS_D 2 /* Dynamic String Descriptor */ #define DSC$K_CLASS_V 3 /* Reserved for use by Digital */ #define DSC64$K_CLASS_V 3 /* Reserved for use by Digital */ #define DSC$K_CLASS_A 4 /* Array Descriptor */ #define DSC64$K_CLASS_A 4 /* Array Descriptor */ #define DSC$K_CLASS_P 5 /* Procedure Descriptor */ #define DSC64$K_CLASS_P 5 /* Procedure Descriptor */ #define DSC$K_CLASS_PI 6 /* Procedure Incarnation Descriptor */ #define DSC64$K_CLASS_PI 6 /* Procedure Incarnation Descriptor */ #define DSC$K_CLASS_J 7 /* Reserved for use by Digital */ #define DSC64$K_CLASS_J 7 /* Reserved for use by Digital */ #define DSC$K_CLASS_JI 8 /* Obsolete */ #define DSC$K_CLASS_SD 9 /* Decimal Scalar String Descriptor */ #define DSC64$K_CLASS_SD 9 /* Decimal Scalar String Descriptor */ #define DSC$K_CLASS_NCA 10 /* Non-contiguous Array Descriptor */ #define DSC64$K_CLASS_NCA 10 /* Non-contiguous Array Descriptor */ #define DSC$K_CLASS_VS 11 /* Varying String Descriptor */ #define DSC64$K_CLASS_VS 11 /* Varying String Descriptor */ #define DSC$K_CLASS_VSA 12 /* Varying String Array Descriptor */ #define DSC64$K_CLASS_VSA 12 /* Varying String Array Descriptor */ #define DSC$K_CLASS_UBS 13 /* Unaligned Bit String Descriptor */ #define DSC64$K_CLASS_UBS 13 /* Unaligned Bit String Descriptor */ #define DSC$K_CLASS_UBA 14 /* Unaligned Bit Array Descriptor */ #define DSC64$K_CLASS_UBA 14 /* Unaligned Bit Array Descriptor */ #define DSC$K_CLASS_SB 15 /* String with Bounds Descriptor */ #define DSC64$K_CLASS_SB 15 /* String with Bounds Descriptor */ #define DSC$K_CLASS_UBSB 16 /* Unaligned Bit String with Bounds Descriptor */ #define DSC64$K_CLASS_UBSB 16 /* Unaligned Bit String with Bounds Descriptor */ /* */ /* The following descriptor class is FOR INTERNAL USE ONLY by the VAX */ /* Common Run-Time Library and Debugger. This descriptor is not passed */ /* between separately compiled modules. For further information, see */ /* VAX-11 BASIC Description of Generated Code, Software Document */ /* Retrieval Number JBS-79-004. */ #define DSC$K_CLASS_BFA 191 /* BASIC File Array Descriptor */ /* Descriptor classes 17-190 are RESERVED to DEC. Classes */ /* 192 through 255 are RESERVED to CSS and customers. */ /* */ /* Array Descriptor (DSC$K_CLASS_A) */ /* */ /* An array descriptor consists of 3 contiguous blocks. The first block */ /* contains the descriptor prototype information and is part of every */ /* array descriptor. The second and third blocks are optional. If the */ /* third block is present then so is the second. */ /* */ /* A complete 32-bit array descriptor has the form: */ /* */ /* +-------+-------+---------------+ */ /* | 4 | DTYPE | LENGTH | :Descriptor */ /* +-------+-------+---------------+ */ /* | POINTER | */ /* +-------+-------+---------------+ */ /* | DIMCT | AFLAGS|DIGITS | SCALE | Block 1 - Prototype */ /* +-------+-------+---------------+ */ /* | ARSIZE | */ /* +-------------------------------+ */ /* */ /* +-------------------------------+ */ /* | A0 | */ /* +-------------------------------+ */ /* | M1 | */ /* +-------------------------------+ */ /* | ... | Block 2 - Multipliers */ /* +-------------------------------+ */ /* | M(n-1) | */ /* +-------------------------------+ */ /* | Mn | */ /* +-------------------------------+ */ /* */ /* +-------------------------------+ */ /* | L1 | */ /* +-------------------------------+ */ /* | U1 | */ /* +-------------------------------+ */ /* | ... | Block 3 - Bounds */ /* +-------------------------------+ */ /* | Ln | */ /* +-------------------------------+ */ /* | Un | */ /* +-------------------------------+ */ /* */ /* Block 1 of a 64-bit array descriptor has the following */ /* form. Blocks 2 and 3 have the same form as above, */ /* EXCEPT that the entries are QUADWORDS rather than */ /* longwords. */ /* */ /* +-------+-------+---------------+ */ /* | 4 | DTYPE | MBO | :Descriptor */ /* +-------+-------+---------------+ */ /* | MBMO | */ /* +-------+-------+---------------+ */ /* | | : 8 */ /* +- LENGTH -+ */ /* | | */ /* +-------------------------------+ */ /* | | : 16 */ /* +- POINTER -+ */ /* | | */ /* +-------------------------------+ */ /* | DIMCT | AFLAGS|DIGITS | SCALE | : 24 */ /* +-------+-------+---------------+ */ /* | MBZ | */ /* +-------+-------+---------------+ */ /* | | : 32 */ /* +- ARSIZE -+ */ /* | | */ /* +-------------------------------+ */ /* */ /* */ /* Define descriptor fields. 32-bit versions are defined first, followed */ /* by the 64-bit equivalents. */ /* */ /* \The following three fields are only valid for descriptor */ /* class DSC$K_CLASS_BFA (see above). \ */ #ifdef __NEW_STARLET typedef struct _dscdef { /* WARNING: aggregate has origin of -12 */ /* WARNING: aggregate element "dsc$a_handle" ignored */ /* WARNING: aggregate element "" ignored */ /* WARNING: aggregate element "" ignored */ /* WARNING: aggregate element "" ignored */ /* WARNING: aggregate element "" ignored */ /* WARNING: aggregate element "dsc$l_byteoff" ignored */ /* WARNING: aggregate element "" ignored */ /* WARNING: aggregate element "" ignored */ /* WARNING: aggregate element "" ignored */ /* WARNING: aggregate element "dsc$l_logunit" ignored */ /* which the file containing the array has */ /* been opened. This is set by the creator of the */ /* descriptor before first referencing the array. */ /* */ /* End of BASIC File Array specific descriptor fields. The remaining */ /* fields are common to all array descriptors. */ /* */ /* */ unsigned short int dsc$w_length; /* A one-word field specifiec to the descriptor class; */ /* typically a 16-bit (unsigned) length. */ } DSCDEF; #else /* __OLD_STARLET */ struct dscdef { /* WARNING: aggregate has origin of -12 */ int dsc$a_handle; /* The address of a vector of data concerning the */ /* current state of processing of the array. This */ /* is set to zero by the creator of the */ /* descriptor, and maintained thereafter by the */ /* BASIC file array processing functions. */ unsigned int dsc$l_byteoff; /* Byte offset in the file of element 0,0,...,0 */ /* of the array. This need not be within the */ /* array, or even within the file if the array */ /* does not have zero origin. */ unsigned int dsc$l_logunit; /* The logical unit number (BASIC channel) on */ /* which the file containing the array has */ /* been opened. This is set by the creator of the */ /* descriptor before first referencing the array. */ /* */ /* End of BASIC File Array specific descriptor fields. The remaining */ /* fields are common to all array descriptors. */ /* */ /* */ unsigned short int dsc$w_length; /* A one-word field specifiec to the descriptor class; */ /* typically a 16-bit (unsigned) length. */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _dscdef1 { unsigned short int dsc$w_maxstrlen; /* Max length of the BODY field of the varying string */ /* in bytes in the range 0 to 2**16-1. */ /* (Classes VS, VSA) */ unsigned char dsc$b_dtype; /* A one-byte atomic data type code */ /* Symbols used in this filed have form: DSC$K_DTYPE_t */ /* where t is the data type mnemonic from above */ /* and agrees with methodology manual. */ unsigned char dsc$b_class; /* A one-byte descriptor class code (see above). */ /* Symbols used in this field have form: DSC$K_CLASS_f */ /* where f is the argument form mnemonic from above */ /* and agrees with the methodology manual. */ void *dsc$a_pointer; /* An address pointing to the first byte of the data */ /* element described. */ } DSCDEF1; #else /* __OLD_STARLET */ struct dscdef1 { unsigned short int dsc$w_maxstrlen; /* Max length of the BODY field of the varying string */ /* in bytes in the range 0 to 2**16-1. */ /* (Classes VS, VSA) */ unsigned char dsc$b_dtype; /* A one-byte atomic data type code */ /* Symbols used in this filed have form: DSC$K_DTYPE_t */ /* where t is the data type mnemonic from above */ /* and agrees with methodology manual. */ unsigned char dsc$b_class; /* A one-byte descriptor class code (see above). */ /* Symbols used in this field have form: DSC$K_CLASS_f */ /* where f is the argument form mnemonic from above */ /* and agrees with the methodology manual. */ int dsc$a_pointer; /* An address pointing to the first byte of the data */ /* element described. */ } ; #endif /* #ifdef __NEW_STARLET */ #define DSC$K_Z_BLN 8 /* Block length in bytes for Z class descr. */ #define DSC$C_Z_BLN 8 /* Block length in bytes for Z class descr. */ #define DSC$K_S_BLN 8 /* Block length in bytes for S class descr. */ #define DSC$C_S_BLN 8 /* Block length in bytes for S class descr. */ #define DSC$K_D_BLN 8 /* Block length in bytes for D class descr. */ #define DSC$C_D_BLN 8 /* Block length in bytes for D class descr. */ #define DSC$K_P_BLN 8 /* Block length in bytes for P class descr. */ #define DSC$C_P_BLN 8 /* Block length in bytes for P class descr. */ #define DSC$K_J_BLN 8 /* Block length in bytes for J class descr. */ #define DSC$C_J_BLN 8 /* Block length in bytes for J class descr. */ #define DSC$K_VS_BLN 8 /* Block length in bytes for VS class descr. */ #define DSC$C_VS_BLN 8 /* Block length in bytes for VS class descr. */ #ifdef __NEW_STARLET typedef struct _dscdef2 { char dscdef$$_fill_3 [4]; void *dsc$a_base; /* Base of address relative to which the signed relative */ /* bit position, POS, is used to locate the bit string. */ /* (Classes UBS, UBA and UBSB) */ } DSCDEF2; #else /* __OLD_STARLET */ struct dscdef2 { char dscdef$$_fill_3 [4]; int dsc$a_base; /* Base of address relative to which the signed relative */ /* bit position, POS, is used to locate the bit string. */ /* (Classes UBS, UBA and UBSB) */ } ; #endif /* #ifdef __NEW_STARLET */ /*+ */ /* End of common definitions for all descriptors. */ /*- */ #define DSC$K_UBS_BLN 12 /* Block length in bytes for UBS class descr. */ #define DSC$C_UBS_BLN 12 /* Block length in bytes for UBS class descr. */ #ifdef __NEW_STARLET typedef struct _dscdef3 { char dscdef$$_fill_4 [8]; int dsc$l_pos; /* Signed longword relative bit position */ /* with respect to BASE of the first bit */ /* of unaligned bit string */ /* WARNING!! Do not use this symbol to reference */ /* class UBA descriptors! The DSC$L_POS in that */ /* descriptor is at a variable location after the */ /* bounds and multiplier blocks. */ } DSCDEF3; #else /* __OLD_STARLET */ struct dscdef3 { char dscdef$$_fill_4 [8]; int dsc$l_pos; /* Signed longword relative bit position */ /* with respect to BASE of the first bit */ /* of unaligned bit string */ /* WARNING!! Do not use this symbol to reference */ /* class UBA descriptors! The DSC$L_POS in that */ /* descriptor is at a variable location after the */ /* bounds and multiplier blocks. */ } ; #endif /* #ifdef __NEW_STARLET */ /*+ */ /* *Obsolete* Varying type descriptor definition */ /* This form should not be used. */ /*- */ #ifdef __NEW_STARLET typedef struct _dscdef4 { char dscdef$$_fill_5 [8]; unsigned short int dsc$w_maxlen; /* An unsigned word specifying the */ /* maximum length of the data item */ /* (i.e., the space allocated) */ short int dscdef$$_fill_1; /* reserved word */ } DSCDEF4; #else /* __OLD_STARLET */ struct dscdef4 { char dscdef$$_fill_5 [8]; unsigned short int dsc$w_maxlen; /* An unsigned word specifying the */ /* maximum length of the data item */ /* (i.e., the space allocated) */ short int dscdef$$_fill_1; /* reserved word */ } ; #endif /* #ifdef __NEW_STARLET */ /*+ */ /* Array Descriptor definitions */ /*- */ #define DSC$K_SD_BLN 12 /* Block length in bytes for SD class descr. */ #define DSC$C_SD_BLN 12 /* Block length in bytes for SD class descr. */ #ifdef __NEW_STARLET typedef struct _dscdef5 { char dscdef_64$$_fill_6 [8]; char dsc$b_scale; /* Signed power of ten multiplier to convert the */ /* internal form to external form. For example, */ /* if internal number is 123 and scale is +1, */ /* then the represented external number is 1230. */ unsigned char dsc$b_digits; /* If non-zero, unsigned number of decimal */ /* digits in the external representation. If */ /* zero, the number of digits can be computed */ /* based on DSC$W_LENGTH. */ __union { unsigned char dsc$b_aflags; /* Array flag bits. */ __struct { unsigned dscdef$$_fill_2 : 4; /* reserved to Digital */ unsigned dsc$v_fl_redim : 1; /* If set, the array can be redimensioned; */ /* i.e., DSC$A_A0, DSC$L_Mi, DSC$L_Li, and */ /* DSC$L_Ui may be changed. The redimensioned */ /* array cannot exceed the size allocated to */ /* the array (i.e. DSC$L_ARSIZE). */ unsigned dsc$v_fl_column : 1; /* If set, the elements of the array are */ /* stored by columns (FORTRAN)> Otherwise */ /* the elements are stored by rows. */ unsigned dsc$v_fl_coeff : 1; /* If set, the multiplicative coefficients in */ /* Block 2 are present. */ unsigned dsc$v_fl_bounds : 1; /* If set, the bounds information in Block 3 */ /* is present. */ } dsc$r_aflags_bits; } dsc$r_aflags_overlay; unsigned char dsc$b_dimct; /* Number of dimensions */ unsigned int dsc$l_arsize; /* Total size of array (in bytes unless DTYPE is */ /* EQUL DSC$K_DTYPE_V or DSC$K_DTYPE_P). */ void *dsc$a_a0; /* Address of element A(0,0,...,0). This */ /* need not be within the actual array/* it */ /* is the same as DSC$A_POINTER for 0-origin */ /* arrays. */ } DSCDEF5; #if !defined(__VAXC) #define dsc$b_aflags dsc$r_aflags_overlay.dsc$b_aflags #define dsc$v_fl_redim dsc$r_aflags_overlay.dsc$r_aflags_bits.dsc$v_fl_redim #define dsc$v_fl_column dsc$r_aflags_overlay.dsc$r_aflags_bits.dsc$v_fl_column #define dsc$v_fl_coeff dsc$r_aflags_overlay.dsc$r_aflags_bits.dsc$v_fl_coeff #define dsc$v_fl_bounds dsc$r_aflags_overlay.dsc$r_aflags_bits.dsc$v_fl_bounds #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct dscdef5 { char dscdef_64$$_fill_6 [8]; char dsc$b_scale; /* Signed power of ten multiplier to convert the */ /* internal form to external form. For example, */ /* if internal number is 123 and scale is +1, */ /* then the represented external number is 1230. */ unsigned char dsc$b_digits; /* If non-zero, unsigned number of decimal */ /* digits in the external representation. If */ /* zero, the number of digits can be computed */ /* based on DSC$W_LENGTH. */ __union { unsigned char dsc$b_aflags; /* Array flag bits. */ __struct { unsigned dscdef$$_fill_2 : 4; /* reserved to Digital */ unsigned dsc$v_fl_redim : 1; /* If set, the array can be redimensioned; */ /* i.e., DSC$A_A0, DSC$L_Mi, DSC$L_Li, and */ /* DSC$L_Ui may be changed. The redimensioned */ /* array cannot exceed the size allocated to */ /* the array (i.e. DSC$L_ARSIZE). */ unsigned dsc$v_fl_column : 1; /* If set, the elements of the array are */ /* stored by columns (FORTRAN)> Otherwise */ /* the elements are stored by rows. */ unsigned dsc$v_fl_coeff : 1; /* If set, the multiplicative coefficients in */ /* Block 2 are present. */ unsigned dsc$v_fl_bounds : 1; /* If set, the bounds information in Block 3 */ /* is present. */ } dsc$r_aflags_bits; } dsc$r_aflags_overlay; unsigned char dsc$b_dimct; /* Number of dimensions */ unsigned int dsc$l_arsize; /* Total size of array (in bytes unless DTYPE is */ /* EQUL DSC$K_DTYPE_V or DSC$K_DTYPE_P). */ int dsc$a_a0; /* Address of element A(0,0,...,0). This */ /* need not be within the actual array/* it */ /* is the same as DSC$A_POINTER for 0-origin */ /* arrays. */ } ; #if !defined(__VAXC) #define dsc$b_aflags dsc$r_aflags_overlay.dsc$b_aflags #define dsc$v_fl_redim dsc$r_aflags_overlay.dsc$r_aflags_bits.dsc$v_fl_redim #define dsc$v_fl_column dsc$r_aflags_overlay.dsc$r_aflags_bits.dsc$v_fl_column #define dsc$v_fl_coeff dsc$r_aflags_overlay.dsc$r_aflags_bits.dsc$v_fl_coeff #define dsc$v_fl_bounds dsc$r_aflags_overlay.dsc$r_aflags_bits.dsc$v_fl_bounds #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _dscdef6 { char dscdef$$_fill_7 [16]; int dsc$l_v0; /* Signed bit offset of element A(0,0,...0) with */ /* respect to BASE. (Class UBA) */ /* The following two fields have meaning only if the array is of */ /* class DSC$K_CLASS_NCA (Non-contiguous array). */ unsigned int dsc$l_s1; /* Stride of the first dimension, i.e. the */ /* difference between the addresses of */ /* successive elements of the first dimension. */ unsigned int dsc$l_s2; /* Stride of the second dimension. */ } DSCDEF6; #else /* __OLD_STARLET */ struct dscdef6 { char dscdef$$_fill_7 [16]; int dsc$l_v0; /* Signed bit offset of element A(0,0,...0) with */ /* respect to BASE. (Class UBA) */ /* The following two fields have meaning only if the array is of */ /* class DSC$K_CLASS_NCA (Non-contiguous array). */ unsigned int dsc$l_s1; /* Stride of the first dimension, i.e. the */ /* difference between the addresses of */ /* successive elements of the first dimension. */ unsigned int dsc$l_s2; /* Stride of the second dimension. */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _dscdef7 { char dscdef$$_fill_8 [20]; unsigned int dsc$l_m1; /* Addressing coefficient M1 = U1-L1+1 */ unsigned int dsc$l_m2; /* Addressing coefficient M2 = U2-L2+1 */ } DSCDEF7; #else /* __OLD_STARLET */ struct dscdef7 { char dscdef$$_fill_8 [20]; unsigned int dsc$l_m1; /* Addressing coefficient M1 = U1-L1+1 */ unsigned int dsc$l_m2; /* Addressing coefficient M2 = U2-L2+1 */ } ; #endif /* #ifdef __NEW_STARLET */ /*+ */ /* Procedure Incarnation descriptor (DSC$K_CLASS_PI) and */ /* Label Incarnation descriptor (DSC$K_CLASS_JI). */ /*- */ #define DSC$K_PI_BLN 12 /* Block length in bytes for PI class descr. */ #define DSC$C_PI_BLN 12 /* Block length in bytes for PI class descr. */ #define DSC$K_JI_BLN 12 /* block length in bytes for JI class descr. */ #define DSC$C_JI_BLN 12 /* block length in bytes for JI class descr. */ #ifdef __NEW_STARLET typedef struct _dscdef8 { char dscdef$$_fill_9 [8]; void *dsc$a_frame; /* Address of frame */ } DSCDEF8; #else /* __OLD_STARLET */ struct dscdef8 { char dscdef$$_fill_9 [8]; int dsc$a_frame; /* Address of frame */ } ; #endif /* #ifdef __NEW_STARLET */ /*+ */ /* String with Bounds descriptor (DSC$K_CLASS_SB). */ /*- */ #ifdef __NEW_STARLET typedef struct _dscdef9 { char dscdef$$_fill_10 [8]; int dsc$l_sb_l1; /* Signed lower bound of first dimension */ int dsc$l_sb_u1; /* Signed upper bound of first dimension */ } DSCDEF9; #else /* __OLD_STARLET */ struct dscdef9 { char dscdef$$_fill_10 [8]; int dsc$l_sb_l1; /* Signed lower bound of first dimension */ int dsc$l_sb_u1; /* Signed upper bound of first dimension */ } ; #endif /* #ifdef __NEW_STARLET */ /*+ */ /* Unaligned Bit String with Bounds descriptor (DSC$K_CLASS_UBSB). */ /*- */ #ifdef __NEW_STARLET typedef struct _dscdef10 { char dscdef$$_fill_11 [12]; int dsc$l_ubsb_l1; /* Signed lower bound of first dimension */ int dsc$l_ubsb_u1; /* Signed upper bound of first dimension */ } DSCDEF10; #else /* __OLD_STARLET */ struct dscdef10 { char dscdef$$_fill_11 [12]; int dsc$l_ubsb_l1; /* Signed lower bound of first dimension */ int dsc$l_ubsb_u1; /* Signed upper bound of first dimension */ } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* 64-bit versions of the descriptors defined above. These are expected */ /* to be quadword aligned. */ /*- */ #ifdef __NEW_STARLET typedef struct _dscdef64 { char dscdef_64$$_fill_1 [8]; /* No 64-bit versions of handle/byteoff/logunit */ unsigned __int64 dsc64$q_length; /* 64-bit LENGTH field */ } DSCDEF64; #else /* __OLD_STARLET */ struct dscdef64 { char dscdef_64$$_fill_1 [8]; /* No 64-bit versions of handle/byteoff/logunit */ unsigned int dsc64$q_length [2]; /* 64-bit LENGTH field */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _dscdef1_64 { unsigned short int dsc64$w_mbo; /* 32-bit LENGTH field is MBO in 64-bit descs */ unsigned char dsc64$b_dtype; /* Identical to 32-bit form */ unsigned char dsc64$b_class; /* Identical to 32-bit form */ int dsc64$l_mbmo; /* 32-bit POINTER field is MBMO in 64-bit descs */ unsigned __int64 dsc64$q_maxstrlen; /* 64-bit MAXSTRLEN field */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *dsc64$pq_pointer; /* 64-bit pointer field */ #else unsigned __int64 dsc64$pq_pointer; #endif } DSCDEF1_64; #else /* __OLD_STARLET */ struct dscdef1_64 { unsigned short int dsc64$w_mbo; /* 32-bit LENGTH field is MBO in 64-bit descs */ unsigned char dsc64$b_dtype; /* Identical to 32-bit form */ unsigned char dsc64$b_class; /* Identical to 32-bit form */ int dsc64$l_mbmo; /* 32-bit POINTER field is MBMO in 64-bit descs */ unsigned int dsc64$q_maxstrlen [2]; /* 64-bit MAXSTRLEN field */ unsigned __int64 dsc64$pq_pointer; /* 64-bit pointer field */ } ; #endif /* #ifdef __NEW_STARLET */ #define DSC64$K_Z_BLN 24 /* Block length in bytes for 64-bit Z class descr. */ #define DSC64$C_Z_BLN 24 /* Block length in bytes for 64-bit Z class descr. */ #define DSC64$K_S_BLN 24 /* Block length in bytes for 64-bit S class descr. */ #define DSC64$C_S_BLN 24 /* Block length in bytes for 64-bit S class descr. */ #define DSC64$K_D_BLN 24 /* Block length in bytes for 64-bit D class descr. */ #define DSC64$C_D_BLN 24 /* Block length in bytes for 64-bit D class descr. */ #define DSC64$K_P_BLN 24 /* Block length in bytes for 64-bit P class descr. */ #define DSC64$C_P_BLN 24 /* Block length in bytes for 64-bit P class descr. */ #define DSC64$K_J_BLN 24 /* Block length in bytes for 64-bit J class descr. */ #define DSC64$C_J_BLN 24 /* Block length in bytes for 64-bit J class descr. */ #define DSC64$K_VS_BLN 24 /* Block length in bytes for 64-bit VS class descr. */ #define DSC64$C_VS_BLN 24 /* Block length in bytes for 64-bit VS class descr. */ #ifdef __NEW_STARLET typedef struct _dscdef2_64 { char dscdef_64$$_fill_3 [16]; #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *dsc64$pq_base; /* 64-bit BASE field */ #else unsigned __int64 dsc64$pq_base; #endif } DSCDEF2_64; #else /* __OLD_STARLET */ struct dscdef2_64 { char dscdef_64$$_fill_3 [16]; unsigned __int64 dsc64$pq_base; /* 64-bit BASE field */ } ; #endif /* #ifdef __NEW_STARLET */ /*+ */ /* End of common definitions for all descriptors. */ /*- */ #define DSC64$K_UBS_BLN 32 /* Block length in bytes for 64-bit UBS class descr. */ #define DSC64$C_UBS_BLN 32 /* Block length in bytes for 64-bit UBS class descr. */ #ifdef __NEW_STARLET typedef struct _dscdef3_64 { char dscdef_64$$_fill_4 [24]; __int64 dsc64$q_pos; /* 64-bit POS field */ } DSCDEF3_64; #else /* __OLD_STARLET */ struct dscdef3_64 { char dscdef_64$$_fill_4 [24]; int dsc64$q_pos [2]; /* 64-bit POS field */ } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* 64-bit version of the array descriptor */ /* */ #define DSC64$K_SD_BLN 32 /* Block length in bytes for 64-bit SD class descr. */ #define DSC64$C_SD_BLN 32 /* Block length in bytes for 64-bit SD class descr. */ #ifdef __NEW_STARLET typedef struct _dscdef5_64 { char dscdef_64$$_fill_6 [24]; char dsc64$b_scale; /* 64-bit descriptor SCALE */ unsigned char dsc64$b_digits; /* 64-bit descriptor DIGITS */ __union { /* */ unsigned char dsc64$b_aflags; /* 64-bit descriptor AFLAGS */ __struct { unsigned dscdef_64$$_fill_2 : 4; unsigned dsc64$v_fl_redim : 1; unsigned dsc64$v_fl_column : 1; unsigned dsc64$v_fl_coeff : 1; unsigned dsc64$v_fl_bounds : 1; } dsc64$r_aflags_bits; } dsc64$r_aflags_overlay; unsigned char dsc64$b_dimct; /* 64-bit descriptor DIMCT */ unsigned int dsc64$l_mbz; /* MBZ field for quad alignment. */ unsigned __int64 dsc64$q_arsize; /* 64-bit descriptor ARSIZE */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *dsc64$pq_a0; /* 64-bit descriptor A0 */ #else unsigned __int64 dsc64$pq_a0; #endif } DSCDEF5_64; #if !defined(__VAXC) #define dsc64$b_aflags dsc64$r_aflags_overlay.dsc64$b_aflags #define dsc64$v_fl_redim dsc64$r_aflags_overlay.dsc64$r_aflags_bits.dsc64$v_fl_redim #define dsc64$v_fl_column dsc64$r_aflags_overlay.dsc64$r_aflags_bits.dsc64$v_fl_column #define dsc64$v_fl_coeff dsc64$r_aflags_overlay.dsc64$r_aflags_bits.dsc64$v_fl_coeff #define dsc64$v_fl_bounds dsc64$r_aflags_overlay.dsc64$r_aflags_bits.dsc64$v_fl_bounds #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct dscdef5_64 { char dscdef_64$$_fill_6 [24]; char dsc64$b_scale; /* 64-bit descriptor SCALE */ unsigned char dsc64$b_digits; /* 64-bit descriptor DIGITS */ __union { /* */ unsigned char dsc64$b_aflags; /* 64-bit descriptor AFLAGS */ __struct { unsigned dscdef_64$$_fill_2 : 4; unsigned dsc64$v_fl_redim : 1; unsigned dsc64$v_fl_column : 1; unsigned dsc64$v_fl_coeff : 1; unsigned dsc64$v_fl_bounds : 1; } dsc64$r_aflags_bits; } dsc64$r_aflags_overlay; unsigned char dsc64$b_dimct; /* 64-bit descriptor DIMCT */ unsigned int dsc64$l_mbz; /* MBZ field for quad alignment. */ unsigned int dsc64$q_arsize [2]; /* 64-bit descriptor ARSIZE */ unsigned __int64 dsc64$pq_a0; /* 64-bit descriptor A0 */ } ; #if !defined(__VAXC) #define dsc64$b_aflags dsc64$r_aflags_overlay.dsc64$b_aflags #define dsc64$v_fl_redim dsc64$r_aflags_overlay.dsc64$r_aflags_bits.dsc64$v_fl_redim #define dsc64$v_fl_column dsc64$r_aflags_overlay.dsc64$r_aflags_bits.dsc64$v_fl_column #define dsc64$v_fl_coeff dsc64$r_aflags_overlay.dsc64$r_aflags_bits.dsc64$v_fl_coeff #define dsc64$v_fl_bounds dsc64$r_aflags_overlay.dsc64$r_aflags_bits.dsc64$v_fl_bounds #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _dscdef6_64 { char dscdef_64$$_fill_7 [40]; __int64 dsc64$q_v0; /* 64-bit descriptor V0 */ unsigned __int64 dsc64$q_s1; /* Stride of the first dimension */ unsigned __int64 dsc64$q_s2; /* Stride of the second dimension. */ } DSCDEF6_64; #else /* __OLD_STARLET */ struct dscdef6_64 { char dscdef_64$$_fill_7 [40]; int dsc64$q_v0 [2]; /* 64-bit descriptor V0 */ unsigned int dsc64$q_s1 [2]; /* Stride of the first dimension */ unsigned int dsc64$q_s2 [2]; /* Stride of the second dimension. */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _dscdef7_64 { char dscdef_64$$_fill_8 [48]; unsigned __int64 dsc64$q_m1; /* Addressing coefficient M1 = U1-L1+1 */ unsigned __int64 dsc64$q_m2; /* Addressing coefficient M2 = U2-L2+1 */ } DSCDEF7_64; #else /* __OLD_STARLET */ struct dscdef7_64 { char dscdef_64$$_fill_8 [48]; unsigned int dsc64$q_m1 [2]; /* Addressing coefficient M1 = U1-L1+1 */ unsigned int dsc64$q_m2 [2]; /* Addressing coefficient M2 = U2-L2+1 */ } ; #endif /* #ifdef __NEW_STARLET */ #define DSC64$K_PI_BLN 32 /* Block length in bytes for 64-bit PI class descr. */ #define DSC64$C_PI_BLN 32 /* Block length in bytes for 64-bit PI class descr. */ #define DSC64$K_JI_BLN 32 /* block length in bytes for 64-bit JI class descr. */ #define DSC64$C_JI_BLN 32 /* block length in bytes for 64-bit JI class descr. */ #ifdef __NEW_STARLET typedef struct _dscdef8_64 { char dscdef_64$$_fill_9 [24]; #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *dsc64$pq_frame; /* Address of frame */ #else unsigned __int64 dsc64$pq_frame; #endif } DSCDEF8_64; #else /* __OLD_STARLET */ struct dscdef8_64 { char dscdef_64$$_fill_9 [24]; unsigned __int64 dsc64$pq_frame; /* Address of frame */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _dscdef9_64 { char dscdef_64$$_fill_10 [24]; __int64 dsc64$q_sb_l1; /* Signed lower bound of first dimension */ __int64 dsc64$q_sb_u1; /* Signed upper bound of first dimension */ } DSCDEF9_64; #else /* __OLD_STARLET */ struct dscdef9_64 { char dscdef_64$$_fill_10 [24]; int dsc64$q_sb_l1 [2]; /* Signed lower bound of first dimension */ int dsc64$q_sb_u1 [2]; /* Signed upper bound of first dimension */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _dscdef10_64 { char dscdef_64$$_fill_11 [32]; __int64 dsc64$q_ubsb_l1; /* Signed lower bound of first dimension */ __int64 dsc64$q_ubsb_u1; /* Signed upper bound of first dimension */ } DSCDEF10_64; #else /* __OLD_STARLET */ struct dscdef10_64 { char dscdef_64$$_fill_11 [32]; int dsc64$q_ubsb_l1 [2]; /* Signed lower bound of first dimension */ int dsc64$q_ubsb_u1 [2]; /* Signed upper bound of first dimension */ } ; #endif /* #ifdef __NEW_STARLET */ #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 /* __DSCDEF_LOADED */