/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:08 by OpenVMS SDL EV3-3 */ /* Source: 22-JAN-1996 12:31:58 $1$DGA8085:[STARLET.LIS]ILEDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $ILEDEF ***/ #ifndef __ILEDEF_LOADED #define __ILEDEF_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 the 32-bit Item List Entry 3 structure */ /*- */ #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 _ile3 { #pragma __nomember_alignment unsigned short int ile3$w_length; /* Length of buffer in bytes */ unsigned short int ile3$w_code; /* Item code value */ void *ile3$ps_bufaddr; /* Buffer address */ unsigned short int *ile3$ps_retlen_addr; /* Address of word for returned length */ } ILE3; #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 typedef struct _ile3 { #pragma __nomember_alignment unsigned short int ile3$w_length; /* Length of buffer in bytes */ unsigned short int ile3$w_code; /* Item code value */ void *ile3$ps_bufaddr; /* Buffer address */ unsigned short int *ile3$ps_retlen_addr; /* Address of word for returned length */ } ile3; #endif /* #ifdef __NEW_STARLET */ #define ILE3$K_LENGTH 12 /* Length of ILE3 */ #define ILE3$C_LENGTH 12 /* Length of ILE3 */ /*+ */ /* Define the 64-Bit Item List Entry B structure. This is the 64-bit */ /* counterpart of the 32-bit item list 3 structure. */ /*- */ #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _ileb_64 { #pragma __nomember_alignment unsigned short int ileb_64$w_mbo; /* Must be One field */ unsigned short int ileb_64$w_code; /* Item code value */ int ileb_64$l_mbmo; /* Must be Minus One field */ unsigned __int64 ileb_64$q_length; /* Length of buffer in bytes */ #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 *ileb_64$pq_bufaddr; /* Buffer address */ #else unsigned __int64 ileb_64$pq_bufaddr; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ unsigned __int64 *ileb_64$pq_retlen_addr; /* Address of quadword for returned length */ #else unsigned __int64 ileb_64$pq_retlen_addr; #endif } ILEB_64; #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _ileb_64 { #pragma __nomember_alignment unsigned short int ileb_64$w_mbo; /* Must be One field */ unsigned short int ileb_64$w_code; /* Item code value */ int ileb_64$l_mbmo; /* Must be Minus One field */ unsigned int ileb_64$q_length [2]; /* Length of buffer in bytes */ unsigned __int64 ileb_64$pq_bufaddr; /* Buffer address */ unsigned __int64 ileb_64$pq_retlen_addr; /* Address of quadword for returned length */ } ileb_64; #endif /* #ifdef __NEW_STARLET */ #define ILEB_64$K_LENGTH 32 /* Length of ILEB */ #define ILEB_64$C_LENGTH 32 /* Length of ILEB */ /*+ */ /* Define the 32-bit Item List Entry 2 structure */ /*- */ #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 _ile2 { #pragma __nomember_alignment unsigned short int ile2$w_length; /* Length of buffer in bytes */ unsigned short int ile2$w_code; /* Item code value */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif void *ile2$ps_bufaddr; /* Buffer address */ } ILE2; #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 typedef struct _ile2 { #pragma __nomember_alignment unsigned short int ile2$w_length; /* Length of buffer in bytes */ unsigned short int ile2$w_code; /* Item code value */ void *ile2$ps_bufaddr; /* Buffer address */ } ile2; #endif /* #ifdef __NEW_STARLET */ #define ILE2$K_LENGTH 8 /* Length of ILE2 */ #define ILE2$C_LENGTH 8 /* Length of ILE2 */ /*+ */ /* Define the 64-Bit Item List Entry 2 structure. This is the 64-bit */ /* counterpart of the 32-bit item list 2 structure. */ /*- */ #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _ilea_64 { #pragma __nomember_alignment unsigned short int ilea_64$w_mbo; /* Must be One field */ unsigned short int ilea_64$w_code; /* Item code value */ int ilea_64$l_mbmo; /* Must be Minus One field */ unsigned __int64 ilea_64$q_length; /* Length of buffer in bytes */ #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 *ilea_64$pq_bufaddr; /* Buffer address */ #else unsigned __int64 ilea_64$pq_bufaddr; #endif } ILEA_64; #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _ilea_64 { #pragma __nomember_alignment unsigned short int ilea_64$w_mbo; /* Must be One field */ unsigned short int ilea_64$w_code; /* Item code value */ int ilea_64$l_mbmo; /* Must be Minus One field */ unsigned int ilea_64$q_length [2]; /* Length of buffer in bytes */ unsigned __int64 ilea_64$pq_bufaddr; /* Buffer address */ } ilea_64; #endif /* #ifdef __NEW_STARLET */ #define ILEA_64$K_LENGTH 24 /* Length of ILEA */ #define ILEA_64$C_LENGTH 24 /* Length of ILEA */ #ifdef __INITIAL_POINTER_SIZE /* Not defined for older compilers */ #pragma __required_pointer_size __save /* Save current pointer size */ #pragma __required_pointer_size __long /* Pointers are 64-bit */ typedef struct _ile2 * ILE2_PQ; /* long pointer to item list 2 */ typedef struct _ile3 * ILE3_PQ; /* long pointer to item list 3 */ typedef struct _ilea_64 * ILEA_64_PQ; /* long pointer to 64-bit item list A */ typedef struct _ileb_64 * ILEB_64_PQ; /* long pointer to 64-bit item list B */ #pragma __required_pointer_size __restore /* Return to previous pointer size */ #else typedef unsigned __int64 ILE2_PQ; /* long pointer to item list 2 */ typedef unsigned __int64 ILE3_PQ; /* long pointer to item list 3 */ typedef unsigned __int64 ILEA_64_PQ; /* long pointer to 64-bit item list A */ typedef unsigned __int64 ILEB_64_PQ; /* long pointer to 64-bit item list B */ #endif /* __INITIAL_POINTER_SIZE */ /* $is_itmlst64 This macro tests the specified item list to determine if it is a 64-bit item list. A 64-bit item list has a one in the first word and a -1 in the second longword. ARGUMENTS: itemlist: Specifies the item list to be examined. USAGE: flag = $is_itmlst64 (item_list); */ #define $is_itmlst64(item_list) \ ( (((ILEA_64_PQ)item_list)->ilea_64$w_mbo == 1) && (((ILEA_64_PQ)item_list)->ilea_64$l_mbmo == -1) ) #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 /* __ILEDEF_LOADED */