/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:05 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]STARDEFFL.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $IOSADEF ***/ #ifndef __IOSADEF_LOADED #define __IOSADEF_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 I/O Status Area */ /*- */ #define IOSA$K_LENGTH 32 /* Length of IOSA */ #define IOSA$C_LENGTH 32 /* Length of IOSA */ #define IOSA$S_IOSADEF 32 /* Size of IOSA */ #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 _iosa { #pragma __nomember_alignment __union { __struct { unsigned short int iosa$w_iosb_status; /* Final I/O status */ __union { __struct { /* 16-bit byte count variant */ unsigned short int iosa$w_iosb_bcnt; /* 16-bit byte count */ __union { unsigned int iosa$l_iosb_dev_depend; /* 32-bit device dependent info */ unsigned int iosa$l_iosb_pid; /* 32-bit pid */ } iosa$r_l; } iosa$r_bcnt_16; __struct { /* 32-bit byte count variant */ unsigned int iosa$l_iosb_bcnt; /* 32-bit byte count (unaligned) */ unsigned short int iosa$w_iosb_dev_depend_high; /* 16-bit device dependent info */ } iosa$r_bcnt_32; } iosa$r_devdepend; } iosa$r_iosb; __struct { unsigned int iosa$l_status; /* Status */ unsigned int iosa$l_resd; /* Reserved (driver) */ } iosa$r_statusq; } iosa$r_iosb_overlay; __union { __int64 iosa$q_count_q; /* Force size */ __int64 iosa$ih_count; /* Number of bytes */ } iosa$r_bytecount; __union { __int64 iosa$q_context_q; /* Force size */ #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 *iosa$ph_context_p; /* User context area */ #else unsigned __int64 iosa$ph_context_p; #endif __int64 iosa$ih_context; /* User context area */ #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 *iosa$ph_updsec_nowrt_va; /* First VA not written by $UPDSEC_64 */ #else unsigned __int64 iosa$ph_updsec_nowrt_va; #endif } iosa$r_ctx; __union { /* Just in case we need */ unsigned int iosa$l_resl [2]; /* in the future some */ __int64 iosa$q_resq; /* additional space */ __int64 iosa$q_context_id; /* User context ID */ } iosa$r_reserved; } IOSA; #if !defined(__VAXC) #define iosa$r_iosb iosa$r_iosb_overlay.iosa$r_iosb #define iosa$w_iosb_status iosa$r_iosb.iosa$w_iosb_status #define iosa$w_iosb_bcnt iosa$r_iosb.iosa$r_devdepend.iosa$r_bcnt_16.iosa$w_iosb_bcnt #define iosa$r_l iosa$r_iosb.iosa$r_devdepend.iosa$r_bcnt_16.iosa$r_l #define iosa$l_iosb_dev_depend iosa$r_l.iosa$l_iosb_dev_depend #define iosa$l_iosb_pid iosa$r_l.iosa$l_iosb_pid #define iosa$l_iosb_bcnt iosa$r_iosb.iosa$r_devdepend.iosa$r_bcnt_32.iosa$l_iosb_bcnt #define iosa$w_iosb_dev_depend_high iosa$r_iosb.iosa$r_devdepend.iosa$r_bcnt_32.iosa$w_iosb_dev_depend_high #define iosa$r_statusq iosa$r_iosb_overlay.iosa$r_statusq #define iosa$l_status iosa$r_statusq.iosa$l_status #define iosa$l_resd iosa$r_statusq.iosa$l_resd #define iosa$q_count_q iosa$r_bytecount.iosa$q_count_q #define iosa$ih_count iosa$r_bytecount.iosa$ih_count #define iosa$q_context_q iosa$r_ctx.iosa$q_context_q #define iosa$ph_context_p iosa$r_ctx.iosa$ph_context_p #define iosa$ih_context iosa$r_ctx.iosa$ih_context #define iosa$ph_updsec_nowrt_va iosa$r_ctx.iosa$ph_updsec_nowrt_va #define iosa$l_resl iosa$r_reserved.iosa$l_resl #define iosa$q_resq iosa$r_reserved.iosa$q_resq #define iosa$q_context_id iosa$r_reserved.iosa$q_context_id #endif /* #if !defined(__VAXC) */ #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 _iosa { #pragma __nomember_alignment __union { __struct { unsigned short int iosa$w_iosb_status; /* Final I/O status */ __union { __struct { /* 16-bit byte count variant */ unsigned short int iosa$w_iosb_bcnt; /* 16-bit byte count */ __union { unsigned int iosa$l_iosb_dev_depend; /* 32-bit device dependent info */ unsigned int iosa$l_iosb_pid; /* 32-bit pid */ } iosa$r_l; } iosa$r_bcnt_16; __struct { /* 32-bit byte count variant */ unsigned int iosa$l_iosb_bcnt; /* 32-bit byte count (unaligned) */ unsigned short int iosa$w_iosb_dev_depend_high; /* 16-bit device dependent info */ } iosa$r_bcnt_32; } iosa$r_devdepend; } iosa$r_iosb; __struct { unsigned int iosa$l_status; /* Status */ unsigned int iosa$l_resd; /* Reserved (driver) */ } iosa$r_statusq; } iosa$r_iosb_overlay; __union { int iosa$q_count_q [2]; /* Force size */ __int64 iosa$ih_count; /* Number of bytes */ } iosa$r_bytecount; __union { int iosa$q_context_q [2]; /* Force size */ unsigned __int64 iosa$ph_context_p; /* User context area */ __int64 iosa$ih_context; /* User context area */ unsigned __int64 iosa$ph_updsec_nowrt_va; /* First VA not written by $UPDSEC_64 */ } iosa$r_ctx; __union { /* Just in case we need */ unsigned int iosa$l_resl [2]; /* in the future some */ __int64 iosa$q_resq; /* additional space */ __int64 iosa$q_context_id; /* User context ID */ } iosa$r_reserved; } iosa; #if !defined(__VAXC) #define iosa$w_iosb_status iosa$r_iosb_overlay.iosa$r_iosb.iosa$w_iosb_status #define iosa$w_iosb_bcnt iosa$r_iosb_overlay.iosa$r_iosb.iosa$r_devdepend.iosa$r_bcnt_16.iosa$w_iosb_bcnt #define iosa$l_iosb_dev_depend iosa$r_iosb_overlay.iosa$r_iosb.iosa$r_devdepend.iosa$r_bcnt_16.iosa$r_l.iosa$l_iosb_dev_depend #define iosa$l_iosb_pid iosa$r_iosb_overlay.iosa$r_iosb.iosa$r_devdepend.iosa$r_bcnt_16.iosa$r_l.iosa$l_iosb_pid #define iosa$l_iosb_bcnt iosa$r_iosb_overlay.iosa$r_iosb.iosa$r_devdepend.iosa$r_bcnt_32.iosa$l_iosb_bcnt #define iosa$w_iosb_dev_depend_high iosa$r_iosb_overlay.iosa$r_iosb.iosa$r_devdepend.iosa$r_bcnt_32.iosa$w_iosb_dev_depend_high #define iosa$l_status iosa$r_iosb_overlay.iosa$r_statusq.iosa$l_status #define iosa$l_resd iosa$r_iosb_overlay.iosa$r_statusq.iosa$l_resd #define iosa$q_count_q iosa$r_bytecount.iosa$q_count_q #define iosa$ih_count iosa$r_bytecount.iosa$ih_count #define iosa$q_context_q iosa$r_ctx.iosa$q_context_q #define iosa$ph_context_p iosa$r_ctx.iosa$ph_context_p #define iosa$ih_context iosa$r_ctx.iosa$ih_context #define iosa$ph_updsec_nowrt_va iosa$r_ctx.iosa$ph_updsec_nowrt_va #define iosa$l_resl iosa$r_reserved.iosa$l_resl #define iosa$q_resq iosa$r_reserved.iosa$q_resq #define iosa$q_context_id iosa$r_reserved.iosa$q_context_id #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef __int64 FANDLE; #else /* __OLD_STARLET */ typedef __int64 fandle; #endif /* #ifdef __NEW_STARLET */ #pragma __required_pointer_size __save /* Save current pointer size */ #pragma __required_pointer_size __long /* Pointers are 64-bit */ typedef struct _iosa * IOSA_PQ; /* Pointer to an IOSA */ typedef struct _iosa ** IOSA_PPQ; /* Pointer to a pointer to an IOSA */ #ifdef __NEW_STARLET typedef FANDLE * FANDLE_PQ; /* Pointer to FANDLE */ typedef FANDLE ** FANDLE_PPQ; /* Pointer to pointer to FANDLE */ #else typedef fandle * FANDLE_PQ; /* Pointer to fandle */ typedef fandle ** FANDLE_PPQ; /* Pointer to pointer to fandle */ #endif #pragma __required_pointer_size __restore /* Return to previous pointer size */ /*+ */ /* $IO_SETUP flag bits */ /*- */ #define FIO$M_EXPEDITE 0x1 #define FIO$M_AST_NOFLOAT 0x2 #define FIO$M_CTX 0x4 #ifdef __NEW_STARLET typedef union _setup_flags { int fio$l_flags_longword; __struct { unsigned fio$v_expedite : 1; /* Make this a high-priority I/O */ unsigned fio$v_ast_nofloat : 1; /* The AST routine does not use f.p. regs */ unsigned fio$v_ctx : 1; /* Completion notification done via EFN$C_CTX */ unsigned fio$v_fill_61_ : 5; } fio$r_flag_bits; } SETUP_FLAGS; #if !defined(__VAXC) #define fio$v_expedite fio$r_flag_bits.fio$v_expedite #define fio$v_ast_nofloat fio$r_flag_bits.fio$v_ast_nofloat #define fio$v_ctx fio$r_flag_bits.fio$v_ctx #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ union setup_flags { int fio$l_flags_longword; __struct { unsigned fio$v_expedite : 1; /* Make this a high-priority I/O */ unsigned fio$v_ast_nofloat : 1; /* The AST routine does not use f.p. regs */ unsigned fio$v_ctx : 1; /* Completion notification done via EFN$C_CTX */ unsigned fio$v_fill_61_ : 5; } fio$r_flag_bits; } ; #if !defined(__VAXC) #define fio$v_expedite fio$r_flag_bits.fio$v_expedite #define fio$v_ast_nofloat fio$r_flag_bits.fio$v_ast_nofloat #define fio$v_ctx fio$r_flag_bits.fio$v_ctx #endif /* #if !defined(__VAXC) */ #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 /* __IOSADEF_LOADED */