/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:26:24 by OpenVMS SDL EV3-3 */ /* Source: 03-JAN-1996 11:03:25 $1$DGA7274:[LIB_H.SRC]HRBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $HRBDEF ***/ #ifndef __HRBDEF_LOADED #define __HRBDEF_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 /*+ */ /* HRB (Host Request Block) Definitions */ /* */ /* These definitions describe the format of a data structure */ /* that is used in the MSCP server to represent the context */ /* of a request from one of the served hosts. */ /*- */ #define HRB$M_STATE_INVALID 0x8000 #define HRB$M_ABORT 0x1 #define HRB$M_ABORTWS 0x2 #define HRB$M_DEQUEUED 0x4 #define HRB$M_ENDMSG 0x8 #define HRB$M_MAP 0x10 #define HRB$M_UNBLOCK 0x20 #define HRB$M_VCFAILED 0x40 #define HRB$M_OLDBUF 0x80 #define HRB$M_WBC_IMMED 0x100 #define HRB$M_FIRST 0x200 #define HRB$M_FLUSH 0x400 #define HRB$M_CMD_TMO 0x800 #define HRB$K_LENGTH 140 /* request state definitions */ #define HRB$K_ST_MSG_WAIT 1 /* Atn msg buffer/credit wait */ #define HRB$K_ST_SEQ_WAIT 2 /* Waiting for sequential cmd */ #define HRB$K_ST_BUF_WAIT 3 /* Waiting for server buffer */ #define HRB$K_ST_SNDAT_WAIT 4 /* Sending or receiving data */ #define HRB$K_ST_DRV_WAIT 5 /* Driver queue */ #define HRB$K_ST_MAP_WAIT 6 /* Mapping a data buffer */ #define HRB$K_ST_UNMAP_WAIT 7 /* Returning mapping resources */ #define HRB$K_ST_SNDMS_WAIT 8 /* Sending message */ #define HRB$K_ST_MEM_WAIT 9 /* Local buffer wait */ #define HRB$K_ST_FLUSHED 10 /* Flushed from cache */ #define HRB$K_ST_CACHED 11 /* In local host cache */ #define HRB$S_HRBDEF 140 /* Old size name - synonym */ #ifdef __cplusplus /* Define structure prototypes */ struct _mscp; struct _cdrp; struct _hqb; struct _uqb; struct _pdt; #endif /* #ifdef __cplusplus */ typedef struct _hrb { void *hrb$l_flink; /* Used to link this request */ void *hrb$l_blink; /* into the HQB data styructure */ unsigned short int hrb$w_size; /* Data structure size in bytes */ unsigned char hrb$b_type; /* This is an MSCP type struct */ unsigned char hrb$b_subtype; /* with a HRB subtype (3) */ int (*hrb$l_respc)(); /* PC to resume on restart */ int (*hrb$l_savd_rtn)(); /* Saved address of caller */ __union { unsigned short int hrb$w_state; /* State of the request */ __struct { unsigned hrb$v_filler : 15; /* Filled by constant below */ unsigned hrb$v_state_invalid : 1; /* State is current but previous */ } hrb$r_fill_1_; } hrb$r_fill_0_; /* state was (bits 0-15) */ __union { unsigned short int hrb$w_flags; /* Status flags */ __struct { unsigned hrb$v_abort : 1; /* Abort */ unsigned hrb$v_abortws : 1; /* Abort with status */ unsigned hrb$v_dequeued : 1; /* Removed from resource queues */ unsigned hrb$v_endmsg : 1; /* End message needs to be sent */ unsigned hrb$v_map : 1; /* Map resources allocated */ unsigned hrb$v_unblock : 1; /* Unblock needs to be called */ unsigned hrb$v_vcfailed : 1; /* The VC for this host failed */ unsigned hrb$v_oldbuf : 1; /* The buffer allocated for this */ /* rqst is out of the old buffer */ unsigned hrb$v_wbc_immed : 1; /* Write-back caching command */ unsigned hrb$v_first : 1; /* First in burst sequence for tapes */ unsigned hrb$v_flush : 1; /* This is a flush type command */ unsigned hrb$v_cmd_tmo : 1; /* This command has "timed out" */ unsigned hrb$v_fill_4_ : 4; } hrb$r_fill_3_; } hrb$r_fill_2_; struct _mscp *hrb$l_msgbuf; /* Addr of MSCP request packet */ struct _cdrp *hrb$l_irp_cdrp; /* CDRP for I/O requests */ unsigned char hrb$b_lbuff [12]; /* Local buffer descriptor */ void *hrb$l_bd_addr; /* Buffer Descriptor Address */ unsigned int hrb$l_buflen; /* Length of buffer allocated */ void *hrb$l_bufadr; /* Buffer starting address */ unsigned int hrb$l_lbn; /* LBN place holder for xfr */ unsigned int hrb$l_obcnt; /* Original request byte count */ unsigned int hrb$l_abcnt; /* Number of bytes already sent */ unsigned int hrb$l_svapte; /* Page table entry for lcl bufr */ unsigned int hrb$l_bcnt; /* Temp storage for current xfr */ unsigned short int hrb$w_boff; /* Offset within page of sob */ unsigned short int hrb$w_reserved; /* */ void *hrb$l_wait_fl; /* Pointers to link HRB into */ void *hrb$l_wait_bl; /* wait queues in UQB */ struct _hqb *hrb$l_hqb; /* Host Queue Block address */ struct _uqb *hrb$l_uqb; /* Unit Queue Block address */ struct _pdt *hrb$l_pdt; /* Port Desc Table for requestor */ unsigned int hrb$l_cmd_sts; /* Measure of work to be done */ unsigned int hrb$l_object_skip; /* Objects requested for skipfile */ unsigned int hrb$l_current_skip; /* Placemarker during REPOS */ unsigned int hrb$l_io_time; /* Time for I/O to go from */ /* server to tape and back */ void *hrb$l_cache_fl; /* Cache queue */ void *hrb$l_cache_bl; /* */ void *hrb$l_memw_fl; /* Waiting on more memory */ void *hrb$l_memw_bl; /* */ unsigned int hrb$l_record; /* Record position on tape */ unsigned int hrb$l_cmd_time; /* Record timestamp */ } HRB; #if !defined(__VAXC) #define hrb$w_state hrb$r_fill_0_.hrb$w_state #define hrb$v_state_invalid hrb$r_fill_0_.hrb$r_fill_1_.hrb$v_state_invalid #define hrb$w_flags hrb$r_fill_2_.hrb$w_flags #define hrb$v_abort hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_abort #define hrb$v_abortws hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_abortws #define hrb$v_dequeued hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_dequeued #define hrb$v_endmsg hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_endmsg #define hrb$v_map hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_map #define hrb$v_unblock hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_unblock #define hrb$v_vcfailed hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_vcfailed #define hrb$v_oldbuf hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_oldbuf #define hrb$v_wbc_immed hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_wbc_immed #define hrb$v_first hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_first #define hrb$v_flush hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_flush #define hrb$v_cmd_tmo hrb$r_fill_2_.hrb$r_fill_3_.hrb$v_cmd_tmo #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 /* __HRBDEF_LOADED */