/**/ /***************************************************************************/ /** **/ /** © 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:27:05 by OpenVMS SDL EV3-3 */ /* Source: 22-FEB-2002 12:31:35 $1$DGA7274:[LIB_H.SRC]CPUCOMDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $CPUCOMDEF ***/ #ifndef __CPUCOMDEF_LOADED #define __CPUCOMDEF_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 STRLCK$M_LOCKED 0x1 #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 _structure_lock { __union { #pragma __nomember_alignment unsigned __int64 strlck$q_lock; __struct { __union { unsigned int strlck$l_state; /* State flags longword */ __struct { unsigned strlck$v_locked : 1; /* Last untested page is being tested */ unsigned strlck$v_reserved : 31; } strlck$r_state_bits; } strlck$r_fields_overlay; unsigned int strlck$l_owner; /* Partition ID of owning instance */ } strlck$r_fill_1_; } strlck$r_fill_0_; unsigned __int64 strlck$q_owner_incarnation; /* Instance life - from node block */ unsigned int strlck$l_spares_1 [12]; /* pad to next 64-byte boundary */ } STRUCTURE_LOCK; #if !defined(__VAXC) #define strlck$q_lock strlck$r_fill_0_.strlck$q_lock #define strlck$l_state strlck$r_fill_0_.strlck$r_fill_1_.strlck$r_fields_overlay.strlck$l_state #define strlck$v_locked strlck$r_fill_0_.strlck$r_fill_1_.strlck$r_fields_overlay.strlck$r_state_bits.strlck$v_locked #define strlck$l_owner strlck$r_fill_0_.strlck$r_fill_1_.strlck$l_owner #endif /* #if !defined(__VAXC) */ #define STRLCK$C_LENGTH 64 #define STRLCK$K_LENGTH 64 #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 _link_header { #pragma __nomember_alignment unsigned __int64 lnkhdr$q_flink_offset; /* Forward offset link */ unsigned __int64 lnkhdr$q_blink_offset; /* Backward offset link */ unsigned __int64 lnkhdr$q_size; /* Size of associated structure */ } LINK_HEADER; #define LNKHDR$C_LENGTH 24 #define LNKHDR$K_LENGTH 24 #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 _glxcomhdr { #pragma __nomember_alignment unsigned __int64 glxcomhdr$q_joiners; /* Count of members who have joined */ unsigned short int glxcomhdr$w_mbo; /* Must be 1 - implies quad size field */ unsigned char glxcomhdr$b_type; /* Dynamic structure type */ unsigned char glxcomhdr$b_subtype; /* Dynamic structure subtype */ char glxcomhdr$b_fill_2_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned __int64 glxcomhdr$q_size; /* Size of communication segment header */ __union { #pragma __nomember_alignment unsigned __int64 glxcomhdr$q_state; /* State flags quadword */ __struct { unsigned glxcomhdr$v_reserved_1 : 32; unsigned glxcomhdr$v_reserved_2 : 32; } glxcomhdr$r_state_bits; } glxcomhdr$r_state_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned __int64 glxcomhdr$q_gmd_array_offset; /* Offset to GMD array */ unsigned __int64 glxcomhdr$q_gcb_array_offset; /* Offset to GCB array */ unsigned __int64 glxcomhdr$q_active_set_offset; /* Offset to active set CBB */ #pragma __nomember_alignment unsigned int glxcomhdr$l_spares_1 [2]; /* pad to next 64-byte boundary */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif STRUCTURE_LOCK glxcomhdr$r_segment_lock; /* Lock structure on cache block boundary */ STRUCTURE_LOCK glxcomhdr$r_pool_lock; /* Lock structure on cache block boundary */ LINK_HEADER glxcomhdr$r_free_pool; /* Listhead for self-relative free blocks */ #pragma __nomember_alignment unsigned __int64 glxcomhdr$q_allocated_pool; /* Bytes of pool currently allocated */ unsigned __int64 glxcomhdr$q_max_pool; /* Total shmem pool space */ unsigned __int64 glxcomhdr$q_max_dynamic_pool; /* Maximum shmem to be managed */ } GLXCOMHDR; #if !defined(__VAXC) #define glxcomhdr$q_state glxcomhdr$r_state_overlay.glxcomhdr$q_state #endif /* #if !defined(__VAXC) */ #define GLXCOMHDR$C_LENGTH 240 #define GLXCOMHDR$K_LENGTH 240 /*+ */ /* */ /* Galaxy CPU block definition. This block is allocated */ /* and initialized when a CPU undergoes a state transition to a sharing */ /* node in a Galaxy configuration. */ /*- */ #define CPU_GCB$M_NOTIFY_PACKET 0x1 #define CPU_GCB$M_CPU_IN_TRANSITION 0x1 #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 _cpu_gcb { #pragma __nomember_alignment __union { unsigned __int64 cpu_gcb$q_event_bits; /* CPU notification bits */ __struct { unsigned cpu_gcb$v_notify_packet : 1; /* GMP listhead contains packet */ unsigned cpu_gcb$v_fill_7_ : 7; } cpu_gcb$r_fill_4_; } cpu_gcb$r_fill_3_; unsigned short int cpu_gcb$w_size; /* Structure size */ unsigned char cpu_gcb$b_type; /* Structure type */ unsigned char cpu_gcb$b_subtype; /* Structure subtype */ unsigned int cpu_gcb$l_owner_id; /* Owner node ID */ __union { unsigned int cpu_gcb$l_state; /* State bitmask */ __struct { unsigned cpu_gcb$v_cpu_in_transition : 1; /* Restricted access */ unsigned cpu_gcb$v_reserved : 31; } cpu_gcb$r_fill_6_; } cpu_gcb$r_fill_5_; unsigned int cpu_gcb$l_spares_1 [27]; /* pad to next 128-byte boundary */ LINK_HEADER cpu_gcb$r_gmp_listhead; /* Listhead for message packets */ } CPU_GCB; #if !defined(__VAXC) #define cpu_gcb$q_event_bits cpu_gcb$r_fill_3_.cpu_gcb$q_event_bits #define cpu_gcb$v_notify_packet cpu_gcb$r_fill_3_.cpu_gcb$r_fill_4_.cpu_gcb$v_notify_packet #define cpu_gcb$l_state cpu_gcb$r_fill_5_.cpu_gcb$l_state #define cpu_gcb$v_cpu_in_transition cpu_gcb$r_fill_5_.cpu_gcb$r_fill_6_.cpu_gcb$v_cpu_in_transition #endif /* #if !defined(__VAXC) */ #define CPU_GCB$C_LENGTH 152 #define CPU_GCB$K_LENGTH 152 /*+ */ /* */ /* Galaxy Member Data block definition. This block is allocated */ /* and initialized when a node joins a Galaxy community */ /*- */ #define CPU_GMD$M_ACTIVE 0x1 #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 _cpu_gmd { #pragma __nomember_alignment __union { unsigned int cpu_gmd$l_state; /* State flags quadword */ __struct { unsigned cpu_gmd$v_active : 1; /* Segment is in use */ unsigned cpu_gmd$v_reserved : 31; } cpu_gmd$r_state_bits; } cpu_gmd$r_state_overlay; unsigned int cpu_gmd$l_primary_cpuid; /* CPU ID for this node */ unsigned short int cpu_gmd$w_size; /* Structure size */ unsigned char cpu_gmd$b_type; /* Structure type */ unsigned char cpu_gmd$b_subtype; /* Structure subtype */ char cpu_gmd$b_fill_8_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned __int64 cpu_gmd$q_gpd_offset; /* Offset to GPD structure */ #pragma __nomember_alignment unsigned int cpu_gmd$l_spares_1 [26]; /* pad to next 128-byte boundary */ LINK_HEADER cpu_gmd$r_gmp_listhead; /* Listhead for message packets */ } CPU_GMD; #if !defined(__VAXC) #define cpu_gmd$l_state cpu_gmd$r_state_overlay.cpu_gmd$l_state #define cpu_gmd$v_active cpu_gmd$r_state_overlay.cpu_gmd$r_state_bits.cpu_gmd$v_active #endif /* #if !defined(__VAXC) */ #define CPU_GMD$C_LENGTH 152 #define CPU_GMD$K_LENGTH 152 /*+ */ /* */ /* Galaxy Message Packet block definition. */ /*- */ #define CPU_GMP$M_NO_LOCAL_COPY 0x1 #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 _cpu_gmp { #pragma __nomember_alignment LINK_HEADER cpu_gmp$r_gmp_queue; /* Listhead for message packets */ __union { unsigned int cpu_gmp$l_state; /* State bitmask */ __struct { unsigned cpu_gmp$v_no_local_copy : 1; /* Don't copy packet to nonpaged pool */ unsigned cpu_gmp$v_fill_1 : 31; } cpu_gmp$r_fill_10_; } cpu_gmp$r_fill_9_; unsigned int cpu_gmp$l_component_id; /* CPU ID for this node */ unsigned int cpu_gmp$l_source_id; /* Partition ID of source */ unsigned int cpu_gmp$l_target_id; /* Partition ID of target */ unsigned __int64 cpu_gmp$q_incarnation; /* Instance incarnation of target */ unsigned __int64 cpu_gmp$q_data_length; /* Size of data in this GMP */ unsigned __int64 cpu_gmp$q_data_offset; /* Size of data in this GMP */ unsigned __int64 cpu_gmp$a_data; /* Beginning of block data */ } CPU_GMP; #if !defined(__VAXC) #define cpu_gmp$l_state cpu_gmp$r_fill_9_.cpu_gmp$l_state #define cpu_gmp$v_no_local_copy cpu_gmp$r_fill_9_.cpu_gmp$r_fill_10_.cpu_gmp$v_no_local_copy #endif /* #if !defined(__VAXC) */ #define CPU_GMP$C_LENGTH 72 #define CPU_GMP$K_LENGTH 72 /*+ */ /* */ /* Galaxy Packet Dispatch block definition. */ /*- */ #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 _cpu_gpd { #pragma __nomember_alignment unsigned int cpu_gpd$l_max_slots; /* maximum dispatch slots in struct */ unsigned int cpu_gpd$l_size; /* structure size */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned __int64 cpu_gpd$a_routines; /* Array of quad routines */ } CPU_GPD; #define CPU_GPD$C_LENGTH 16 #define CPU_GPD$K_LENGTH 16 #if defined(__ALPHA) || defined(__ia64) # ifdef __INITIAL_POINTER_SIZE # pragma __required_pointer_size __save /* Save current pointer size */ # pragma __required_pointer_size 64 /* Pointers are 64-bits */ typedef struct _cpu_gcb * CPU_GCB_PQ; /* 64-bit pointer to struct */ typedef struct _cpu_gcb ** CPU_GCB_PPQ; /* 64-bit ptr to a ptr to struct */ typedef struct _cpu_gmd * CPU_GMD_PQ; /* 64-bit pointer to struct */ typedef struct _cpu_gmd ** CPU_GMD_PPQ; /* 64-bit ptr to a ptr to struct */ typedef struct _cpu_gmp * CPU_GMP_PQ; /* 64-bit pointer to struct */ typedef struct _cpu_gmp ** CPU_GMP_PPQ; /* 64-bit ptr to a ptr to struct */ typedef struct _cpu_gpd * CPU_GPD_PQ; /* 64-bit pointer to struct */ typedef struct _cpu_gpd ** CPU_GPD_PPQ; /* 64-bit ptr to a ptr to struct */ typedef struct _link_header * LINK_HEADER_PQ; /* 64-bit pointer to struct */ typedef struct _link_header ** LINK_HEADER_PPQ; /* 64-bit ptr to a ptr to struct */ typedef struct _structure_lock * STRUCTURE_LOCK_PQ; /* 64-bit pointer to struct */ typedef struct _structure_lock ** STRUCTURE_LOCK_PPQ; /* 64-bit ptr to a ptr to struct */ typedef struct _glxcomhdr * GLXCOMHDR_PQ; /* 64-bit pointer to struct */ typedef struct _glxcomhdr ** GLXCOMHDR_PPQ; /* 64-bit ptr to a ptr to struct */ # pragma __required_pointer_size __restore /* Return to previous ptr size */ # else typedef unsigned __int64 CPU_GCB_PQ; /* Size = 64-bit ptr */ typedef unsigned __int64 CPU_GCB_PPQ; /* Size = 64-bit ptr to a ptr */ typedef unsigned __int64 CPU_GMD_PQ; /* Size = 64-bit ptr */ typedef unsigned __int64 CPU_GMD_PPQ; /* Size = 64-bit ptr to a ptr */ typedef unsigned __int64 CPU_GMP_PQ; /* Size = 64-bit ptr */ typedef unsigned __int64 CPU_GMP_PPQ; /* Size = 64-bit ptr to a ptr */ typedef unsigned __int64 CPU_GPD_PQ; /* Size = 64-bit ptr */ typedef unsigned __int64 CPU_GPD_PPQ; /* Size = 64-bit ptr to a ptr */ typedef unsigned __int64 LINK_HEADER_PQ; /* 64-bit pointer to struct */ typedef unsigned __int64 LINK_HEADER_PPQ; /* 64-bit ptr to a ptr to struct */ typedef unsigned __int64 STRUCTURE_LOCK_PQ; /* 64-bit pointer to struct */ typedef unsigned __int64 STRUCTURE_LOCK_PPQ; /* 64-bit ptr to a ptr to struct */ typedef unsigned __int64 GLXCOMHDR_PQ; /* 64-bit pointer to struct */ typedef unsigned __int64 GLXCOMHDR_PPQ; /* 64-bit ptr to a ptr to struct */ # endif #endif #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 /* __CPUCOMDEF_LOADED */