/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:50 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:22 $1$DGA7274:[STARLET_H.SRC]STARDEFFL.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $GLOCKDEF ***/ #ifndef __GLOCKDEF_LOADED #define __GLOCKDEF_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 GLOCK$C_NOWAIT 1 /* $acquire_lock will not auto-wait */ #define GLOCK$C_NOSPIN 2 /* $acquire_lock will not spin */ #define GLOCK$C_NOBREAK 4 /* $acquire_lock will not break lock ownership */ #define GLOCK$C_AUTO_WAIT 8 /* kernel mode code waints an automatic wait */ #define GLOCK$C_NUM_NODES 64 /* max number of gnodes supported */ #define GLCKTBL$C_PROCESS 0 /* lock region is mapped in P2 space */ #define GLCKTBL$C_SYSTEM 1 /* lock region is mapped in S2 space */ #define GLCKTBL$C_PRIVATE 2 /* lock region is pre-allocated */ #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 _glock_hist { #pragma __nomember_alignment int glock_hist$l_pc; unsigned __int64 glock_hist$q_lock; } GLOCK_HIST; #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 _glock_hist { #pragma __nomember_alignment int glock_hist$l_pc; unsigned int glock_hist$q_lock [2]; } glock_hist; #endif /* #ifdef __NEW_STARLET */ #define GLOCK_HIST$C_ENTRIES 10 #define GLOCK$M_OWNED 0x1 #define GLOCK$M_BROKEN 0x2 #define GLOCK$M_WAITERS 0x4 #define GLOCK$M_PROCESS 0x8 #define GLOCK$M_RESERVED_4_7 0xF0 #define GLOCK$M_OWNER_COUNT 0xFF00 #define GLOCK$M_NODE 0xFF0000 #define GLOCK$M_NODE_SEQ 0xFFFF000000 #define GLOCK$M_OWNER 0xFFFFFF0000000000 #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 _glock { #pragma __nomember_alignment unsigned int glock$l_flink; /* Forward link (lock handle) */ unsigned int glock$l_spare1; /* not used */ unsigned short int glock$w_size; /* size of structure */ unsigned char glock$b_type; /* Structure type */ unsigned char glock$b_subtype; /* subtype */ unsigned char glock$b_ipl; /* IPL to raise to on acquire */ unsigned char glock$b_prev_ipl; /* IPL to lower to on release */ unsigned char glock$b_rank; /* Rank of lock */ unsigned char glock$b_spare2; /* not used */ __union { unsigned __int64 glock$q_lock; /* the lock */ __struct { __union { unsigned glock$b_flags : 8; /* lock flags */ __struct { unsigned glock$v_owned : 1; /* lock is owned */ unsigned glock$v_broken : 1; /* lock ownership is broken */ unsigned glock$v_waiters : 1; /* there are waiters */ unsigned glock$v_process : 1; /* lock is owned in process context */ unsigned glock$v_reserved_4_7 : 4; /* the unused bits */ } glock$r_fill_9_; } glock$r_fill_8_; unsigned glock$b_owner_count : 8; /* nested owner count */ unsigned glock$b_node : 8; /* node where lock is owned */ unsigned glock$w_node_seq : 16; /* node sequence number */ unsigned glock$v_owner : 24; /* owner EPID or CPU # */ } glock$r_fill_7_; } glock$r_fill_6_; unsigned __int64 glock$q_thread_id; /* thread id of lock owner */ unsigned __int64 glock$q_waiters; /* bitmask of waiters */ unsigned int glock$l_timeout; /* wait timeout */ char glock$t_name [16]; /* lock name */ unsigned int glock$l_spare4; /* not used */ unsigned int glock$l_spare5; /* not used */ unsigned int glock$l_history_idx; /* next history longword to be used */ GLOCK_HIST glock$r_history [10]; /* acquire - release history */ } GLOCK; #if !defined(__VAXC) #define glock$q_lock glock$r_fill_6_.glock$q_lock #define glock$b_flags glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$b_flags #define glock$v_owned glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_owned #define glock$v_broken glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_broken #define glock$v_waiters glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_waiters #define glock$v_process glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_process #define glock$v_reserved_4_7 glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_reserved_4_7 #define glock$b_owner_count glock$r_fill_6_.glock$r_fill_7_.glock$b_owner_count #define glock$b_node glock$r_fill_6_.glock$r_fill_7_.glock$b_node #define glock$w_node_seq glock$r_fill_6_.glock$r_fill_7_.glock$w_node_seq #define glock$v_owner glock$r_fill_6_.glock$r_fill_7_.glock$v_owner #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 _glock { #pragma __nomember_alignment unsigned int glock$l_flink; /* Forward link (lock handle) */ unsigned int glock$l_spare1; /* not used */ unsigned short int glock$w_size; /* size of structure */ unsigned char glock$b_type; /* Structure type */ unsigned char glock$b_subtype; /* subtype */ unsigned char glock$b_ipl; /* IPL to raise to on acquire */ unsigned char glock$b_prev_ipl; /* IPL to lower to on release */ unsigned char glock$b_rank; /* Rank of lock */ unsigned char glock$b_spare2; /* not used */ __union { unsigned int glock$q_lock [2]; /* the lock */ __struct { __union { unsigned glock$b_flags : 8; /* lock flags */ __struct { unsigned glock$v_owned : 1; /* lock is owned */ unsigned glock$v_broken : 1; /* lock ownership is broken */ unsigned glock$v_waiters : 1; /* there are waiters */ unsigned glock$v_process : 1; /* lock is owned in process context */ unsigned glock$v_reserved_4_7 : 4; /* the unused bits */ } glock$r_fill_9_; } glock$r_fill_8_; unsigned glock$b_owner_count : 8; /* nested owner count */ unsigned glock$b_node : 8; /* node where lock is owned */ unsigned glock$w_node_seq : 16; /* node sequence number */ unsigned glock$v_owner : 24; /* owner EPID or CPU # */ } glock$r_fill_7_; } glock$r_fill_6_; unsigned int glock$q_thread_id [2]; /* thread id of lock owner */ unsigned int glock$q_waiters [2]; /* bitmask of waiters */ unsigned int glock$l_timeout; /* wait timeout */ char glock$t_name [16]; /* lock name */ unsigned int glock$l_spare4; /* not used */ unsigned int glock$l_spare5; /* not used */ unsigned int glock$l_history_idx; /* next history longword to be used */ glock_hist glock$r_history [10]; /* acquire - release history */ } glock; #if !defined(__VAXC) #define glock$q_lock glock$r_fill_6_.glock$q_lock #define glock$b_flags glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$b_flags #define glock$v_owned glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_owned #define glock$v_broken glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_broken #define glock$v_waiters glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_waiters #define glock$v_process glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_process #define glock$v_reserved_4_7 glock$r_fill_6_.glock$r_fill_7_.glock$r_fill_8_.glock$r_fill_9_.glock$v_reserved_4_7 #define glock$b_owner_count glock$r_fill_6_.glock$r_fill_7_.glock$b_owner_count #define glock$b_node glock$r_fill_6_.glock$r_fill_7_.glock$b_node #define glock$w_node_seq glock$r_fill_6_.glock$r_fill_7_.glock$w_node_seq #define glock$v_owner glock$r_fill_6_.glock$r_fill_7_.glock$v_owner #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define GLOCK$C_LENGTH 64 /* Length */ #define GLOCK$K_LENGTH 64 /* Length */ #define GLOCK$C_MAX_LENGTH 192 /* max length */ #define GLOCK$K_MAX_LENGTH 192 /* max length */ #define GLOCK_LOCK$M_OWNED 0x1 #define GLOCK_LOCK$M_BROKEN 0x2 #define GLOCK_LOCK$M_WAITERS 0x4 #define GLOCK_LOCK$M_PROCESS 0x8 #define GLOCK_LOCK$M_RESERVED_4_7 0xF0 #define GLOCK_LOCK$M_OWNER_COUNT 0xFF00 #define GLOCK_LOCK$M_NODE 0xFF0000 #define GLOCK_LOCK$M_NODE_SEQ 0xFFFF000000 #define GLOCK_LOCK$M_OWNER 0xFFFFFF0000000000 #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 _glock_lock { #pragma __nomember_alignment __union { unsigned __int64 glock_lock$q_lock; /* the lock */ __struct { __union { unsigned glock_lock$b_flags : 8; /* lock flags */ __struct { unsigned glock_lock$v_owned : 1; /* lock is owned */ unsigned glock_lock$v_broken : 1; /* lock ownership is broken */ unsigned glock_lock$v_waiters : 1; /* there are waiters */ unsigned glock_lock$v_process : 1; /* lock is owned in process context */ unsigned glock_lock$v_reserved_4_7 : 4; /* the unused bits */ } glock_lock$r_fill_13_; } glock_lock$r_fill_12_; unsigned glock_lock$b_owner_count : 8; /* nested owner count */ unsigned glock_lock$b_node : 8; /* node where lock is owned */ unsigned glock_lock$w_node_seq : 16; /* node sequence number */ unsigned glock_lock$v_owner : 24; /* owner EPID or CPU # */ } glock_lock$r_fill_11_; } glock_lock$r_fill_10_; } GLOCK_LOCK; #if !defined(__VAXC) #define glock_lock$q_lock glock_lock$r_fill_10_.glock_lock$q_lock #define glock_lock$b_flags glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$b_flags #define glock_lock$v_owned glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_lock$v_own\ ed #define glock_lock$v_broken glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_lock$v_br\ oken #define glock_lock$v_waiters glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_lock$v_w\ aiters #define glock_lock$v_process glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_lock$v_p\ rocess #define glock_lock$v_reserved_4_7 glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_loc\ k$v_reserved_4_7 #define glock_lock$b_owner_count glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$b_owner_count #define glock_lock$b_node glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$b_node #define glock_lock$w_node_seq glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$w_node_seq #define glock_lock$v_owner glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$v_owner #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 _glock_lock { #pragma __nomember_alignment __union { unsigned int glock_lock$q_lock [2]; /* the lock */ __struct { __union { unsigned glock_lock$b_flags : 8; /* lock flags */ __struct { unsigned glock_lock$v_owned : 1; /* lock is owned */ unsigned glock_lock$v_broken : 1; /* lock ownership is broken */ unsigned glock_lock$v_waiters : 1; /* there are waiters */ unsigned glock_lock$v_process : 1; /* lock is owned in process context */ unsigned glock_lock$v_reserved_4_7 : 4; /* the unused bits */ } glock_lock$r_fill_13_; } glock_lock$r_fill_12_; unsigned glock_lock$b_owner_count : 8; /* nested owner count */ unsigned glock_lock$b_node : 8; /* node where lock is owned */ unsigned glock_lock$w_node_seq : 16; /* node sequence number */ unsigned glock_lock$v_owner : 24; /* owner EPID or CPU # */ } glock_lock$r_fill_11_; } glock_lock$r_fill_10_; } glock_lock; #if !defined(__VAXC) #define glock_lock$q_lock glock_lock$r_fill_10_.glock_lock$q_lock #define glock_lock$b_flags glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$b_flags #define glock_lock$v_owned glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_lock$v_own\ ed #define glock_lock$v_broken glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_lock$v_br\ oken #define glock_lock$v_waiters glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_lock$v_w\ aiters #define glock_lock$v_process glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_lock$v_p\ rocess #define glock_lock$v_reserved_4_7 glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$r_fill_12_.glock_lock$r_fill_13_.glock_loc\ k$v_reserved_4_7 #define glock_lock$b_owner_count glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$b_owner_count #define glock_lock$b_node glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$b_node #define glock_lock$w_node_seq glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$w_node_seq #define glock_lock$v_owner glock_lock$r_fill_10_.glock_lock$r_fill_11_.glock_lock$v_owner #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define GLCKTBL$M_VALID 0x1 #define GLCKTBL$M_PRIVATE 0x2 #define GLCKTBL$M_SPACE 0x4 #define GLCKTBL$M_RESERVED_3_7 0xF8 #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 _glcktbl { #pragma __nomember_alignment unsigned int glcktbl$l_flink; /* Forward link (region offset) */ unsigned short int glcktbl$w_lock_size; /* size of locks for the table */ __union { unsigned char glcktbl$b_flags; /* lock table flags */ __struct { unsigned glcktbl$v_valid : 1; /* lock table is valid */ unsigned glcktbl$v_private : 1; /* user allocated lock memory */ unsigned glcktbl$v_space : 1; /* clear for process, set for system */ unsigned glcktbl$v_reserved_3_7 : 5; /* the unused bits */ } glcktbl$r_fill_15_; } glcktbl$r_fill_14_; unsigned char glcktbl$b_accmode; /* access mode of global section */ unsigned __int64 glcktbl$q_reg_id; /* ID of shared memory region */ unsigned __int64 glcktbl$q_reg_phys_size; /* physical size of shared memory region */ unsigned __int64 glcktbl$q_reg_virt_size; /* virtual size of shared memory region */ unsigned __int64 glcktbl$q_num_locks; /* number of locks in the region */ unsigned int glcktbl$l_free_list; /* free glock list */ unsigned int glcktbl$l_used_list; /* used glock list */ unsigned __int64 glcktbl$q_nodes; /* bitmask of connected nodes */ unsigned __int64 glcktbl$q_glock_handle; /* handle of embedded glock */ char glcktbl$b_glock [64]; /* embedded GLOCK */ unsigned short int glcktbl$w_ref_counts [64]; /* per-node ref counters */ } GLCKTBL; #if !defined(__VAXC) #define glcktbl$b_flags glcktbl$r_fill_14_.glcktbl$b_flags #define glcktbl$v_valid glcktbl$r_fill_14_.glcktbl$r_fill_15_.glcktbl$v_valid #define glcktbl$v_private glcktbl$r_fill_14_.glcktbl$r_fill_15_.glcktbl$v_private #define glcktbl$v_space glcktbl$r_fill_14_.glcktbl$r_fill_15_.glcktbl$v_space #define glcktbl$v_reserved_3_7 glcktbl$r_fill_14_.glcktbl$r_fill_15_.glcktbl$v_reserved_3_7 #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 _glcktbl { #pragma __nomember_alignment unsigned int glcktbl$l_flink; /* Forward link (region offset) */ unsigned short int glcktbl$w_lock_size; /* size of locks for the table */ __union { unsigned char glcktbl$b_flags; /* lock table flags */ __struct { unsigned glcktbl$v_valid : 1; /* lock table is valid */ unsigned glcktbl$v_private : 1; /* user allocated lock memory */ unsigned glcktbl$v_space : 1; /* clear for process, set for system */ unsigned glcktbl$v_reserved_3_7 : 5; /* the unused bits */ } glcktbl$r_fill_15_; } glcktbl$r_fill_14_; unsigned char glcktbl$b_accmode; /* access mode of global section */ unsigned int glcktbl$q_reg_id [2]; /* ID of shared memory region */ unsigned int glcktbl$q_reg_phys_size [2]; /* physical size of shared memory region */ unsigned int glcktbl$q_reg_virt_size [2]; /* virtual size of shared memory region */ unsigned int glcktbl$q_num_locks [2]; /* number of locks in the region */ unsigned int glcktbl$l_free_list; /* free glock list */ unsigned int glcktbl$l_used_list; /* used glock list */ unsigned int glcktbl$q_nodes [2]; /* bitmask of connected nodes */ unsigned int glcktbl$q_glock_handle [2]; /* handle of embedded glock */ char glcktbl$b_glock [64]; /* embedded GLOCK */ unsigned short int glcktbl$w_ref_counts [64]; /* per-node ref counters */ } glcktbl; #if !defined(__VAXC) #define glcktbl$b_flags glcktbl$r_fill_14_.glcktbl$b_flags #define glcktbl$v_valid glcktbl$r_fill_14_.glcktbl$r_fill_15_.glcktbl$v_valid #define glcktbl$v_private glcktbl$r_fill_14_.glcktbl$r_fill_15_.glcktbl$v_private #define glcktbl$v_space glcktbl$r_fill_14_.glcktbl$r_fill_15_.glcktbl$v_space #define glcktbl$v_reserved_3_7 glcktbl$r_fill_14_.glcktbl$r_fill_15_.glcktbl$v_reserved_3_7 #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define GLCKTBL$C_LENGTH 256 /* Length */ #define GLCKTBL$K_LENGTH 256 /* Length */ #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 _glock_nodeb { #pragma __nomember_alignment unsigned __int64 glock_nodeb$q_lock_handle; /* lockhandle for ipint */ char glock_nodeb$b_spares [24]; /* pad to 32 bytes */ } GLOCK_NODEB; #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 _glock_nodeb { #pragma __nomember_alignment unsigned int glock_nodeb$q_lock_handle [2]; /* lockhandle for ipint */ char glock_nodeb$b_spares [24]; /* pad to 32 bytes */ } glock_nodeb; #endif /* #ifdef __NEW_STARLET */ #define GLOCK_NODEB$C_LENGTH 32 /* length */ #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 _gmdb_glock { #pragma __nomember_alignment unsigned __int64 gmdb_glock$q_nodes; /* connected nodes */ unsigned __int64 gmdb_glock$q_max_nodes; /* max nodes supported */ unsigned __int64 gmdb_glock$q_flags; /* flags */ unsigned __int64 gmdb_glock$q_handle; /* lock handle */ char gmdb_glock$b_lock [64]; /* GLOCK for the locking portion of the GMDB */ char gmdb_glock$b_lcktbl [256]; /* embedded GLCKTBL for locks in the GMDB */ unsigned __int64 gmdb_glock$q_num_tables [2]; /* number of locktables in the regions */ unsigned int gmdb_glock$l_free_list [2]; /* lists of free lock tables */ unsigned int gmdb_glock$l_used_list [2]; /* lists of used lock tables */ unsigned __int64 gmdb_glock$q_reg_handle [2]; /* lock handles for locktable list locks */ char gmdb_glock$b_prc_lock [64]; /* GLOCK for process locktable lists */ char gmdb_glock$b_sys_lock [64]; /* GLOCK for system locktable lists */ GLOCK_NODEB gmdb_glock$r_nodeb [64]; /* per node cells */ } GMDB_GLOCK; #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 _gmdb_glock { #pragma __nomember_alignment unsigned int gmdb_glock$q_nodes [2]; /* connected nodes */ unsigned int gmdb_glock$q_max_nodes [2]; /* max nodes supported */ unsigned int gmdb_glock$q_flags [2]; /* flags */ unsigned int gmdb_glock$q_handle [2]; /* lock handle */ char gmdb_glock$b_lock [64]; /* GLOCK for the locking portion of the GMDB */ char gmdb_glock$b_lcktbl [256]; /* embedded GLCKTBL for locks in the GMDB */ unsigned int gmdb_glock$q_num_tables [2] [2]; /* number of locktables in the regions */ unsigned int gmdb_glock$l_free_list [2]; /* lists of free lock tables */ unsigned int gmdb_glock$l_used_list [2]; /* lists of used lock tables */ unsigned int gmdb_glock$q_reg_handle [2] [2]; /* lock handles for locktable list locks */ char gmdb_glock$b_prc_lock [64]; /* GLOCK for process locktable lists */ char gmdb_glock$b_sys_lock [64]; /* GLOCK for system locktable lists */ glock_nodeb gmdb_glock$r_nodeb [64]; /* per node cells */ } gmdb_glock; #endif /* #ifdef __NEW_STARLET */ #define GMDB_GLOCK$C_LENGTH 2576 /* Length */ #ifdef __INITIAL_POINTER_SIZE #pragma __required_pointer_size __save /* Save current pointer size */ #pragma __required_pointer_size __long /* Pointers are 64-bit */ typedef struct _glock * GLOCK_PQ; /* Long pointer to a GLOCK structure. */ typedef struct _gmdb_glock * GMDB_GLOCK_PQ; /* Long pointer to the GMDB GLOCK segment. */ typedef struct _glcktbl * GLCKTBL_PQ; /* Long pointer to a GLock lock table. */ #pragma __required_pointer_size __restore /* Return to previous pointer size */ #else typedef unsigned __int64 GLOCK_PQ; #endif /* __INITIAL_POINTER_SIZE */ #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 /* __GLOCKDEF_LOADED */