/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:51 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:22 $1$DGA7274:[STARLET_H.SRC]STARDEFFL.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $LKIDEF ***/ #ifndef __LKIDEF_LOADED #define __LKIDEF_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 /*+ */ /* */ /* Get Lock Information Data Identifier Definitions */ /* */ /* **** NOTE **** */ /* The LKIDEF structure is defined multiple times to accomidate C! */ /* */ /* New items can not be added to the end of LKIDEF or LKIDEF_BR */ /* since this require all users to re-link. GETLKI can return */ /* multiples of these structures concatenated and thus any */ /* new items returned should really be placed in a new structure. */ /*- */ #define LKI$K_LENGTH 24 /*LENGTH OF LIST BLOCK WITHOUT BYTE RANGE INFO */ #define LKI$C_LENGTH 24 /*LENGTH OF LIST BLOCK WITHOUT BYTE RANGE INFO */ #ifdef __NEW_STARLET typedef struct _lkidef { __union { unsigned int lki$l_mstlkid; /*LOCK ID ON MASTER */ unsigned int lki$l_lockid; /*OLD SYMBOL */ } lki$r_u1; unsigned int lki$l_pid; /*PROCESS ID */ __union { unsigned int lki$l_mstcsid; /*CSID OF MASTER */ unsigned int lki$l_sysid; /*OLD SYMBOL */ } lki$r_u2; unsigned char lki$b_rqmode; /*REQUEST MODE */ unsigned char lki$b_grmode; /*GRANTED MODE */ char lki$b_queue; /*LOCK QUEUE */ char lki$$$_spare; /*SPARE BYTE */ __union { unsigned int lki$l_lkid; /*LOCK ID ON PROCESS NODE */ unsigned int lki$l_remlkid; /*OLD SYMBOL */ } lki$r_u3; __union { unsigned int lki$l_csid; /*CSID OF PROCESS NODE */ unsigned int lki$l_remsysid; /*OLD SYMBOL */ } lki$r_u4; } LKIDEF; #if !defined(__VAXC) #define lki$l_mstlkid lki$r_u1.lki$l_mstlkid #define lki$l_lockid lki$r_u1.lki$l_lockid #define lki$l_mstcsid lki$r_u2.lki$l_mstcsid #define lki$l_sysid lki$r_u2.lki$l_sysid #define lki$l_lkid lki$r_u3.lki$l_lkid #define lki$l_remlkid lki$r_u3.lki$l_remlkid #define lki$l_csid lki$r_u4.lki$l_csid #define lki$l_remsysid lki$r_u4.lki$l_remsysid #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct lkidef { __union { unsigned int lki$l_mstlkid; /*LOCK ID ON MASTER */ unsigned int lki$l_lockid; /*OLD SYMBOL */ } lki$r_u1; unsigned int lki$l_pid; /*PROCESS ID */ __union { unsigned int lki$l_mstcsid; /*CSID OF MASTER */ unsigned int lki$l_sysid; /*OLD SYMBOL */ } lki$r_u2; unsigned char lki$b_rqmode; /*REQUEST MODE */ unsigned char lki$b_grmode; /*GRANTED MODE */ char lki$b_queue; /*LOCK QUEUE */ char lki$$$_spare; /*SPARE BYTE */ __union { unsigned int lki$l_lkid; /*LOCK ID ON PROCESS NODE */ unsigned int lki$l_remlkid; /*OLD SYMBOL */ } lki$r_u3; __union { unsigned int lki$l_csid; /*CSID OF PROCESS NODE */ unsigned int lki$l_remsysid; /*OLD SYMBOL */ } lki$r_u4; } ; #if !defined(__VAXC) #define lki$l_mstlkid lki$r_u1.lki$l_mstlkid #define lki$l_lockid lki$r_u1.lki$l_lockid #define lki$l_mstcsid lki$r_u2.lki$l_mstcsid #define lki$l_sysid lki$r_u2.lki$l_sysid #define lki$l_lkid lki$r_u3.lki$l_lkid #define lki$l_remlkid lki$r_u3.lki$l_remlkid #define lki$l_csid lki$r_u4.lki$l_csid #define lki$l_remsysid lki$r_u4.lki$l_remsysid #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* Define the structure for returning Byte Range information. */ /* This is an extention of the LKIDEF structure. */ /* /* ITEM LIST BLOCKS */ #define LKI$K_BR_LENGTH 56 /*LENGTH OF LIST BLOCK WITH BYTE RANGE INFO */ #define LKI$C_BR_LENGTH 56 /*LENGTH OF LIST BLOCK WITH BYTE RANGE INFO */ #ifdef __NEW_STARLET typedef struct _lkidef_br { LKIDEF lki$r_lki_base; unsigned __int64 lki$q_rqstart; /* REQUEST RANGE START */ unsigned __int64 lki$q_rqlength; /* REQUEST RANGE LENGTH */ unsigned __int64 lki$q_grstart; /* GRANTED RANGE START */ unsigned __int64 lki$q_grlength; /* GRANTED RANGE LENGTH */ } LKIDEF_BR; #else /* __OLD_STARLET */ struct lkidef_br { struct lkidef lki$r_lki_base; unsigned int lki$q_rqstart [2]; /* REQUEST RANGE START */ unsigned int lki$q_rqlength [2]; /* REQUEST RANGE LENGTH */ unsigned int lki$q_grstart [2]; /* GRANTED RANGE START */ unsigned int lki$q_grlength [2]; /* GRANTED RANGE LENGTH */ } ; #endif /* #ifdef __NEW_STARLET */ /* DEFINE NAMSPACE FIELDS */ #define LKI$M_SYSNAM 0x80000000 #ifdef __NEW_STARLET typedef struct _namspace { __union { __struct { unsigned short int lki$w_group; /*GROUP OF OWNER UIC */ unsigned char lki$b_rmod; /*ACCESS MODE OF REQUEST */ unsigned char lki$b_status; /*STATUS OF RESOURCE */ } lki$r_namspace_fields; __struct { unsigned lki$$_fill : 31; /* SPARE */ unsigned lki$v_sysnam : 1; /* SYSTEM WIDE RSB */ } lki$r_status_bits; } lki$r_namspace_union; } NAMSPACE; #if !defined(__VAXC) #define lki$w_group lki$r_namspace_union.lki$r_namspace_fields.lki$w_group #define lki$b_rmod lki$r_namspace_union.lki$r_namspace_fields.lki$b_rmod #define lki$b_status lki$r_namspace_union.lki$r_namspace_fields.lki$b_status #define lki$r_status_bits lki$r_namspace_union.lki$r_status_bits #define lki$v_sysnam lki$r_status_bits.lki$v_sysnam #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct namspace { __union { __struct { unsigned short int lki$w_group; /*GROUP OF OWNER UIC */ unsigned char lki$b_rmod; /*ACCESS MODE OF REQUEST */ unsigned char lki$b_status; /*STATUS OF RESOURCE */ } lki$r_namspace_fields; __struct { unsigned lki$$_fill : 31; /* SPARE */ unsigned lki$v_sysnam : 1; /* SYSTEM WIDE RSB */ } lki$r_status_bits; } lki$r_namspace_union; } ; #if !defined(__VAXC) #define lki$w_group lki$r_namspace_union.lki$r_namspace_fields.lki$w_group #define lki$b_rmod lki$r_namspace_union.lki$r_namspace_fields.lki$b_rmod #define lki$b_status lki$r_namspace_union.lki$r_namspace_fields.lki$b_status #define lki$v_sysnam lki$r_namspace_union.lki$r_status_bits.lki$v_sysnam #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* DEFINE STATE FIELDS */ #ifdef __NEW_STARLET typedef struct _statef { unsigned char lki$b_state_rqmode; /*REQUEST MODE */ unsigned char lki$b_state_grmode; /*GRANTED MODE */ char lki$b_state_queue; /*LOCK STATE CODE */ } STATEF; #else /* __OLD_STARLET */ struct statef { unsigned char lki$b_state_rqmode; /*REQUEST MODE */ unsigned char lki$b_state_grmode; /*GRANTED MODE */ char lki$b_state_queue; /*LOCK STATE CODE */ } ; #endif /* #ifdef __NEW_STARLET */ #define LKIUSR$K_LENGTH 20 #define LKIUSR$C_LENGTH 20 #define LKIUSR$K_BLOCKER_START 20 /* OFFSET TO THE START OF THE RETURNED INFORMATION */ #ifdef __NEW_STARLET typedef struct _lkiusrdef { unsigned __int64 lkiusr$q_start; /* START OF THE REQUESTED RANGE */ unsigned __int64 lkiusr$q_length; /* LENGTH OF THE REQUESTED RANGE */ unsigned char lkiusr$b_rqmode; /* REQUESTED MODE */ unsigned char lkiusr$b_ignore_own; /* FLAG TO IGNORE LOCKS OWNED BY THE CALLING PROCESS */ short int lki$$_fill_1; /* reserved */ } LKIUSRDEF; #else /* __OLD_STARLET */ struct lkiusrdef { unsigned int lkiusr$q_start [2]; /* START OF THE REQUESTED RANGE */ unsigned int lkiusr$q_length [2]; /* LENGTH OF THE REQUESTED RANGE */ unsigned char lkiusr$b_rqmode; /* REQUESTED MODE */ unsigned char lkiusr$b_ignore_own; /* FLAG TO IGNORE LOCKS OWNED BY THE CALLING PROCESS */ short int lki$$_fill_1; /* reserved */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _rngdef { unsigned __int64 lki$_rng_q_rqstart; /* REQUEST RANGE START */ unsigned __int64 lki$_rng_q_rqlength; /* REQUEST RANGE LENGTH */ unsigned __int64 lki$_rng_q_grstart; /* GRANTED RANGE START */ unsigned __int64 lki$_rng_q_grlength; /* GRANTED RANGE LENGTH */ } RNGDEF; #else /* __OLD_STARLET */ struct rngdef { unsigned int lki$_rng_q_rqstart [2]; /* REQUEST RANGE START */ unsigned int lki$_rng_q_rqlength [2]; /* REQUEST RANGE LENGTH */ unsigned int lki$_rng_q_grstart [2]; /* GRANTED RANGE START */ unsigned int lki$_rng_q_grlength [2]; /* GRANTED RANGE LENGTH */ } ; #endif /* #ifdef __NEW_STARLET */ /*LOCK STATE CODE VALUES */ #define LKI$C_GRANTED 1 /* GRANTED */ #define LKI$C_CONVERT 0 /* CONVERSION */ #define LKI$C_WAITING -1 /* WAITING */ #define LKI$C_RETRY -2 /* RETRY REQUEST */ #define LKI$C_SCSWAIT -3 /* SCS WAIT */ #define LKI$C_RSPNOTQED -4 /* RESPONSE NOT QUEUED */ #define LKI$C_RSPQUEUED -5 /* RESPONSE QUEUED */ #define LKI$C_RSPGRANTD -6 /* RESPONSE GRANTED */ #define LKI$C_RSPDOLOCL -7 /* RESPONSE DO LOCALLY */ #define LKI$C_RSPRESEND -8 /* RESPONSE RESEND */ /* DEFINE TABLE NUMBERS */ /* STRUCTURE CODES MUST START AT 1 */ #define LKI$C_LKBTYPE 1 /* ITEM IN LKB */ #define LKI$C_RSBTYPE 2 /* ITEM IN RSB */ #define LKI$C_LISTEND 0 /* DEFINE ITMLST TERMINATOR */ /* ITEM IDENTIFIERS FOR LKB */ #define LKI$_PID 256 /* PROCESS ID */ #define LKI$_STATE 257 /* CURRENT LOCK STATE */ #define LKI$_PARENT 258 /* ID OF PARENT LOCK */ #define LKI$_LCKREFCNT 259 /* SUB-LOCK REFERENCE COUNT */ #define LKI$_LOCKID 260 /* LOCK ID */ #define LKI$_REMLKID 261 /* REMOTE LOCK ID */ #define LKI$_MSTLKID 262 /* LOCK ID ON RESOURCE MASTER */ #define LKI$_LKID 263 /* LOCK ID ON PROCESS NODE */ #define LKI$_CSID 264 /* CSID OF PROCESS NODE */ #define LKI$_BRL 265 /* IS THE LOCK A BYTE RANGE LOCK */ /** , TSKID /* TASK ID FOR MULTITASK */ #define LKI$_RANGE 266 /* Range of request */ #define LKI$_LASTLKB 267 /* MAX INDEX IN LKB TABLE */ /* ITEM IDENTIFIERS FOR RSB */ #define LKI$_NAMSPACE 512 /* RESOURCE NAME SPACE */ #define LKI$_RESNAM 513 /* RESOURCE NAME */ #define LKI$_RSBREFCNT 514 /* SUB-RESOURCE REFERENCE COUNT */ #define LKI$_VALBLK 515 /* VALUE BLOCK */ #define LKI$_SYSTEM 516 /* SYSTEM ID OF SYSTEM WITH RESOURCE */ #define LKI$_LCKCOUNT 517 /* COUNT OF LOCKS ON RESOURCE */ #define LKI$_BLOCKEDBY 518 /* LIST OF LOCKS BLOCKED BY CURRENT LOCK */ #define LKI$_BLOCKING 519 /* LIST OF LOCKS BLOCKING CURRENT LOCK */ #define LKI$_LOCKS 520 /* LIST OF ALL LOCKS ON RESOURCE */ #define LKI$_CVTCOUNT 521 /* COUNT OF LOCKS ON CONVERSION QUEUE */ #define LKI$_WAITCOUNT 522 /* COUNT OF LOCKS ON WAIT QUEUE */ #define LKI$_GRANTCOUNT 523 /* COUNT OF LOCKS ON GRANT QUEUE */ #define LKI$_MSTCSID 524 /* CSID OF RESOURCE MASTER */ #define LKI$_VALBLKST 525 /* VALUE BLOCK STATUS */ #define LKI$_BLOCKEDBY_BR 526 /* LIST OF LOCKS BLOCKED BY CURRENT LOCK WITH BYTE RANGES */ #define LKI$_BLOCKING_BR 527 /* LIST OF LOCKS BLOCKING THE CURRENT LOCK WITH BYTE RANGES */ #define LKI$_LOCKS_BR 528 /* LIST OF LOCKS ALL LOCKS ON A RESOURCE WITH BYTE RANGES */ #define LKI$_BLOCKER_BR 529 /* LOCK THAT WILL BLOCK THE REQUESTED RANGE AND MODE */ #define LKI$_XVALBLK 530 /* EXTENDED VALUE BLOCK */ #define LKI$_XVALNOTVALID 531 /* VALIDITY OF EXTENDED VALUE BLOCK */ #define LKI$_LASTRSB 532 /* MAX INDEX IN RSB (MUST BE LAST internal use only) */ #define LKISND$K_HDRLEN 16 /*LENGTH OF HEADER */ #define LKISND$C_HDRLEN 16 /*LENGTH OF HEADER */ #ifdef __NEW_STARLET typedef struct _lkisnddef { /* Format for local system buffer header when sending an information request */ /* to a remote system. */ unsigned short int lkisnd$w_retsize; /* size of return info */ unsigned short int lkisnd$w_status; /* status of operation */ unsigned short int lkisnd$w_flags; /* flags */ unsigned short int lkisnd$w_seqnum; /* rebuild seqnm */ unsigned short int lkisnd$w_size; /* size of structure */ unsigned char lkisnd$b_type; /* type of stucture */ unsigned char lkisnd$b_fill_2; /* */ unsigned char lkisnd$b_item_length; /* len of item info */ unsigned char lkisnd$b_fill_3; /* */ unsigned short int lkisnd$w_fill_4; /* */ } LKISNDDEF; #else /* __OLD_STARLET */ struct lkisnddef { /* Format for local system buffer header when sending an information request */ /* to a remote system. */ unsigned short int lkisnd$w_retsize; /* size of return info */ unsigned short int lkisnd$w_status; /* status of operation */ unsigned short int lkisnd$w_flags; /* flags */ unsigned short int lkisnd$w_seqnum; /* rebuild seqnm */ unsigned short int lkisnd$w_size; /* size of structure */ unsigned char lkisnd$b_type; /* type of stucture */ unsigned char lkisnd$b_fill_2; /* */ unsigned char lkisnd$b_item_length; /* len of item info */ unsigned char lkisnd$b_fill_3; /* */ unsigned short int lkisnd$w_fill_4; /* */ } ; #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 /* __LKIDEF_LOADED */