/***************************************************************************/ /** **/ /** HPE CONFIDENTIAL. This software is confidential proprietary software **/ /** licensed by Hewlett-Packard Enterprise Development, LP, and is not **/ /** authorized to be used, duplicated OR disclosed to anyone without the **/ /** prior written permission of HPE. **/ /** © 2023 Copyright Hewlett-Packard Enterprise Development, LP **/ /** **/ /** VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential **/ /** proprietary software licensed by VMS Software, Inc., and is not **/ /** authorized to be used, duplicated or disclosed to anyone without **/ /** the prior written permission of VMS Software, Inc. **/ /** © 2023 Copyright VMS Software, Inc. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 9-Nov-2023 12:06:53 by OpenVMS SDL V3.7 */ /* Source: 04-AUG-2020 15:29:12 $1$DGA8345:[LIB_H.SRC]DCBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $DCBDEF ***/ #ifndef __DCBDEF_LOADED #define __DCBDEF_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 /* + */ /* DCB - Data link layer chained buffer descriptor */ /* */ /* This descriptor may be used in one of two ways. The first way is to */ /* use this descriptor to describe a direct I/O transfer. The second */ /* is to use this descriptor to describe a chain of buffers to transmit */ /* or a chain of buffers which have been received. */ /* */ /* - */ #define DCB$M_TYPE_IO 0x1 #define DCB$K_HEADER 48 /* DCB size up to this point */ #define DCB$C_HEADER 48 /* DCB size up to this point */ #define DCB$S_DCBDEF 48 #ifdef __cplusplus /* Define structure prototypes */ struct _bufio; #endif /* #ifdef __cplusplus */ typedef struct _dcb { struct _dcb *dcb$l_flink; /* Forward link */ struct _dcb *dcb$l_blink; /* Backward link */ unsigned short int dcb$w_size; /* Size of block */ unsigned char dcb$b_type; /* Type of block */ unsigned char dcb$b_mode; /* Access mode of agent */ void *dcb$l_link; /* Link to next buffer in chain */ __union { /* Describe I/O */ unsigned short int dcb$w_sts; /* Old word width STS field */ __union { unsigned int dcb$l_sts; __struct { unsigned dcb$v_type_io : 1; /* If set DIRECT if clear buffered */ unsigned dcb$v_fill_2_ : 7; } dcb$r_fill_1_; } dcb$r_fill_0_; } dcb$r_sts_overlay; char dcb$b_fill_3_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { /* X-6, NOSVAPTE_V9.0 Dave Fairbanks */ #pragma __nomember_alignment #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 *dcb$pq_void; /* Untyped 64b pointer */ #else unsigned __int64 dcb$pq_void; #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 */ struct _bufio *dcb$pq_bufio_pkt; /* 64-bit pointer to buffered I/O packet */ #else unsigned __int64 dcb$pq_bufio_pkt; #endif #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 *dcb$ps_void; /* Untyped 32b pointer */ struct _bufio *dcb$ps_bufio_pkt; /* 32-bit pointer to buffered I/O packet */ } dcb$r_svapte_overlay; __union { unsigned short int dcb$w_boff; /* Offset to start of data. Data */ unsigned int dcb$l_boff; /* link headers must be back built */ } dcb$r_boff_overlay; /* from this offset. */ __union { /* For transmits size in bytes of this */ unsigned short int dcb$w_bcnt; /* segment of the data. For receives */ unsigned int dcb$l_bcnt; /* contains the size of the segment */ } dcb$r_bcnt_overlay; /* of data contained in this buffer. */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #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 */ void *dcb$pq_svapte_sva; /* NOSVAPTE_V9.0 Dave Fairbanks */ #else unsigned __int64 dcb$pq_svapte_sva; #endif } DCB; #if !defined(__VAXC) #define dcb$w_sts dcb$r_sts_overlay.dcb$w_sts #define dcb$l_sts dcb$r_sts_overlay.dcb$r_fill_0_.dcb$l_sts #define dcb$v_type_io dcb$r_sts_overlay.dcb$r_fill_0_.dcb$r_fill_1_.dcb$v_type_io #define dcb$pq_void dcb$r_svapte_overlay.dcb$pq_void #define dcb$pq_bufio_pkt dcb$r_svapte_overlay.dcb$pq_bufio_pkt #define dcb$ps_void dcb$r_svapte_overlay.dcb$ps_void #define dcb$ps_bufio_pkt dcb$r_svapte_overlay.dcb$ps_bufio_pkt #define dcb$w_boff dcb$r_boff_overlay.dcb$w_boff #define dcb$l_boff dcb$r_boff_overlay.dcb$l_boff #define dcb$w_bcnt dcb$r_bcnt_overlay.dcb$w_bcnt #define dcb$l_bcnt dcb$r_bcnt_overlay.dcb$l_bcnt #endif /* #if !defined(__VAXC) */ #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 /* __DCBDEF_LOADED */