/**/ /***************************************************************************/ /** **/ /** © 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:08 by OpenVMS SDL EV3-3 */ /* Source: 02-MAR-1999 15:16:47 $1$DGA7274:[LIB_H.SRC]GCTDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE GCTDEF ***/ #ifndef __GCTDEF_LOADED #define __GCTDEF_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 #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 _gct_names { #pragma __nomember_alignment __int64 gct$iq_bits; /* Value of name */ char *gct$ps_name; /* Pointer to name string */ char gct$b_fill_0_ [4]; } GCT_NAMES; /* * Always include ints.h */ #include /* * Some handy macros for turning a handle into an address, * and an address into a handle */ #define _GCT_MAKE_ADDRESS(_gct_o) ((GCT_NODE *)((char *) GCT_POINTER_TO_ROOT + _gct_o)); #define _GCT_MAKE_HANDLE(_gct_a) ((char *) _gct_a - (char *) GCT_POINTER_TO_ROOT); #define GCT$K_GALAXY_ID_LENGTH 16 /* */ /* typedef the ID and HANDLE */ /* */ typedef unsigned __int64 GCT_ID; typedef int GCT_HANDLE; /* */ /* Success codes */ /* */ #define GCT$K_SUCCESS 1 #define GCT$K_NOSTATUS 0 /* */ /* Error codes. All negative, all even (low bit clear) */ /* This allows BLISS tests for errors on the low bit to */ /* work correctly... even though they are not VMS error */ /* codes. */ /* */ #define GCT$K_BADPARAM -2 /* Bad parameter in call */ #define GCT$K_ILLEGAL -4 /* Operation is illegal */ #define GCT$K_NOTFOUND -6 /* Lookup failed */ #define GCT$K_BADALIGN -8 /* Bad PA alignment */ #define GCT$K_BADALLOC -10 /* Invalid size increment */ #define GCT$K_OVERLAP -12 /* Fragment overlaps with existing */ #define GCT$K_NOTINITIALIZED -14 /* Tree not initialized */ #define GCT$K_BADHANDLE -16 /* Illegal HANDLE */ #define GCT$K_NOTDELETED -18 /* Node was not deleted */ #define GCT$K_MAXEXCEEDED -20 /* Too many memory fragments */ #define GCT$K_NOTALLOWED -22 /* Operation is not allowed */ #define GCT$K_BADOWNER -24 /* Node does not have the right owner */ #define GCT$K_ALREADYOWNED -26 /* Node already has an owner */ #define GCT$K_NOTPARTITION -28 /* The node is not a partition */ #define GCT$K_NOTCOMMUNITY -30 /* The node is not a community */ #define GCT$K_ILLEGALTREE -32 /* Corrupt tree state */ #define GCT$K_NOTHARDWARE -34 /* The node is not a hardware component */ #define GCT$K_NOMEMORY -36 /* Failed to allocate the node */ #define GCT$K_BADPA -38 /* PA is not in the memory system */ #define GCT$K_BADSIZE -40 /* Size of the fragment is not valid */ #define GCT$K_TREELOCKED -42 /* Attempt to lock a locked tree */ #define GCT$K_BADUPDATELEVEL -44 /* Illegal update level input */ #define GCT$K_NOTMEMORYDESC -46 /* Not a memory descriptor node */ #define GCT$K_NOTLOCKED -48 /* Tried to unlock an unlocked tree */ #define GCT$K_UNAVAILABLE -50 /* Node is not available */ #define GCT$K_STILLACTIVE -52 /* The HW component is still active */ #define GCT$K_CHILDSTILLACTIVE -54 /* A component part of the HW is still active */ #define GCT$K_CHILDALREADYOWNED -56 /* A child is owned. This is an internal error! */ #define GCT$K_NOTSHARED -58 /* The device can't be assigned because an ancestor is not shared */ /* */ /* Node TYPE codes */ /* */ #define GCT$K_NODE_ROOT 1 /* Root node */ #define GCT$K_NODE_HW_ROOT 2 /* Hardware Root */ #define GCT$K_NODE_SW_ROOT 3 /* Software Root */ #define GCT$K_NODE_TEMPLATE_ROOT 4 /* Template Root */ #define GCT$K_NODE_COMMUNITY 5 /* Community */ #define GCT$K_NODE_PARTITION 6 /* Partition */ #define GCT$K_NODE_SBB 7 /* System Building Block */ #define GCT$K_NODE_PSEUDO 8 /* Pseudo device */ #define GCT$K_NODE_CPU 9 /* CPU */ #define GCT$K_NODE_MEMORY_SUB 10 /* Memory Subsystem */ #define GCT$K_NODE_MEMORY_DESC 11 /* Memory Description */ #define GCT$K_NODE_MEMORY_CTRL 12 /* Memory Controller */ #define GCT$K_NODE_IOP 13 /* IO Processor */ #define GCT$K_NODE_HOSE 14 /* IO Hose */ #define GCT$K_NODE_BUS 15 /* Option Bus */ #define GCT$K_NODE_IO_CTRL 16 /* IO Controller */ #define GCT$K_NODE_SLOT 17 /* Option slot */ #define GCT$K_NODE_CPU_MODULE 18 /* CPU module board */ #define GCT$K_NODE_POWER_ENVIR 19 /* Power Environmental */ #define GCT$K_NODE_FRU_ROOT 20 /* FRU Root */ #define GCT$K_NODE_FRU_DESC 21 /* FRU Descripter */ #define GCT$K_NODE_SMB 22 /* System Mother Board */ #define GCT$K_NODE_CAB 23 /* Cabinet */ #define GCT$K_NODE_SYS_CHASSIS 24 /* System Chassis */ #define GCT$K_NODE_EXP_CHASSIS 25 /* Expander Chassis */ #define GCT$K_NODE_SYS_INTER_SWITCH 26 /* System Interconnect Switch */ #define GCT$K_NODE_LAST 27 /* Always Last */ /* */ /* Routine index values for console callbacks */ /* */ #define GCT$K_READ_LOCK 1 /* Take out a read lock */ #define GCT$K_READ_UNLOCK 2 /* Release the read lock */ #define GCT$K_SET_ACTIVE 3 /* Set a node active (current_owner) */ #define GCT$K_SET_INACTIVE 4 /* Set a node inactive (current_owner) */ #define GCT$K_ASSIGN_FRAGMENT 5 /* Assign a memory fragment */ #define GCT$K_DEASSIGN_FRAGMENT 6 /* Deassign a memory fragment */ #define GCT$K_CREATE_COMMUNITY 7 /* Create a community node */ #define GCT$K_DELETE_COMMUNITY 8 /* Delete a community */ #define GCT$K_CREATE_PARTITION 9 /* Create a partition node */ #define GCT$K_DELETE_PARTITION 10 /* Delete a partition */ #define GCT$K_ASSIGN_HW 11 /* Assign HW to a community or partition */ #define GCT$K_DEASSIGN_HW 12 /* Deassign HW */ #define GCT$K_FIND_PARTITION 13 /* Find Partition */ #define GCT$K_FIND_NODE 14 /* Search for a component */ #define GCT$K_GET_TEXT 15 /* Get a text string */ #define GCT$K_UPDATE_GMDB 16 /* Update GMDB area in community */ #define GCT$K_VALIDATE_PARTITION 17 /* Validate a partition */ #define GCT$K_INITIALIZE_PARTITION 18 /* Initialize a partition */ #define GCT$K_UPDATE_GALAXY_ID 19 /* Update the Galaxy ID */ #define GCT$K_GET_MAX_PARTITION 20 /* Get the max partition count */ #define GCT$K_UPDATE_INSTANCE_NAME 21 /* Read/Write Instance Name */ #define GCT$K_SAVE_CONFIG 22 /* Save Configuration */ #define GCT$K_GET_SENSOR_INFO 23 /* Get sensor information */ /* */ /* Node subtype codes */ /* */ #define GCT$K_SNODE_UNKNOWN 0 /* Unknown subtype */ /* CPU codes */ #define GCT$K_SNODE_CPU_NOPRIMARY 1 /* A CPU not capable of being a primary */ /* Bus codes */ #define GCT$K_SNODE_PCI 2 /* Peripheral Component Interconnect */ #define GCT$K_SNODE_EISA 3 /* Extended ISA bus */ #define GCT$K_SNODE_ISA 4 /* Industry Standard Architecture bus */ #define GCT$K_SNODE_XMI 5 /* XMI bus */ #define GCT$K_SNODE_FBUS 6 /* FutureBus */ #define GCT$K_SNODE_XBUS 7 /* Built in device bus */ #define GCT$K_SNODE_USB 8 /* Univeral Serial Bus */ /* IO controller codes */ #define GCT$K_SNODE_SERIAL_PORT 9 /* Serial port */ #define GCT$K_SNODE_FLOPPY 10 /* Standard Floppy */ #define GCT$K_SNODE_PARALLEL_PORT 11 /* Parallel port */ #define GCT$K_SNODE_SCSI 12 /* SCSI Controller */ #define GCT$K_SNODE_IDE 13 /* IDE Controller */ #define GCT$K_SNODE_NI 14 /* Ethernet Controller */ #define GCT$K_SNODE_FDDI 15 /* FDDI */ #define GCT$K_SNODE_TOKEN_RING 16 /* Token Ring */ #define GCT$K_SNODE_NI_SCSI 17 /* Combo card */ #define GCT$K_SNODE_GRAPHICS 18 /* Graphics Controller */ #define GCT$K_SNODE_ATM 19 /* ATM Controller */ #define GCT$K_SNODE_MEM_CHAN 20 /* Memory Channel */ #define GCT$K_SNODE_CI 21 /* CI adapter */ #define GCT$K_SNODE_1394 22 /* */ #define GCT$K_SNODE_AGP 23 /* AGP (Graphics Port) */ #define GCT$K_SNODE_SUPER_HIPPI 24 /* Super Hippi */ #define GCT$K_SNODE_FIBRECHANNEL 25 /* Fibrechannel */ #define GCT$K_SNODE_CAB 26 /* Cabinet */ #define GCT$K_SNODE_CHASSIS 27 /* System Chassis */ #define GCT$K_SNODE_EXP_CHASSIS 28 /* Expand System Chassis */ #define GCT$K_SNODE_POWER_SUPPLY 29 /* Power Envir - Power Supply */ #define GCT$K_SNODE_COOLING 30 /* Power Envir - Cooling */ #define GCT$K_SNODE_LAST 31 /* Highest */ /* */ /* Lookup flags */ /* */ #define GCT$K_FIND_ANY 0 #define GCT$K_FIND_BY_OWNER 1 #define GCT$K_FIND_BY_TYPE 2 #define GCT$K_FIND_BY_SUBTYPE 4 #define GCT$K_FIND_BY_ID 8 #define GCT$K_FIND_UNAVAILABLE 16 /* */ /* Lock types */ /* */ #define GCT$K_LOCK_FOR_READ 1 /* Just want to read the tree */ #define GCT$K_LOCK_FOR_UPDATE 2 /* Want to update the tree */ #define GCT$K_UNLOCK_READ 3 /* Unlock a read */ #define GCT$K_UNLOCK_UPDATE 4 /* Unlock an update */ #define GCT$K_UNLOCK_NO_UPDATE 5 /* Unlock an update lock with no update */ /* */ /* Magic */ /* */ #define GCT$K_NODE_VALID 1498958919 /* */ /* OS types */ /* */ #define GCT$K_OS_VMS 1 /* OS is VMS on Partition */ #define GCT$K_OS_OSF 2 /* OS is OSF on Partition */ #define GCT$K_OS_NT 3 /* OS is NT on Partition */ #define GCT$K_OS_LAST 4 /* Always last */ /* */ /* Version 5.1 */ /* */ #define GCT$K_REVISION_MAJOR 5 #define GCT$K_REVISION_MINOR 1 #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 _gct_buffer_header { #pragma __nomember_alignment unsigned __int64 gct$iq_buffer_cksum; /* Placeholder for checksum */ unsigned int gct$il_buffer_size; /* Size of structure */ __union { unsigned int gct$il_rev_full; /* Structure revision */ __struct { unsigned short int gct$iw_rev_major; unsigned short int gct$iw_rev_minor; } gct$r_sub; } gct$r_revision; char gct$t_galaxy_enable; /* System supports Galaxy */ unsigned char gct$b_buffer_reserved [47]; /* Pad to 64 bytes */ } GCT_BUFFER_HEADER; #if !defined(__VAXC) #define gct$il_rev_full gct$r_revision.gct$il_rev_full #define gct$iw_rev_major gct$r_revision.gct$r_sub.gct$iw_rev_major #define gct$iw_rev_minor gct$r_revision.gct$r_sub.gct$iw_rev_minor #endif /* #if !defined(__VAXC) */ /* */ /* Values for text lookups */ /* */ #define GCT$K_NAME_IS_PRETTY 256 /* Return plain text */ #define GCT$K_NAME_IS_FLAG 512 /* Input is flags */ #define GCT$K_FLAG_NAMES 512 /* Decode gct$q_node_flags */ #define GCT$K_MEM_FLAG_NAMES 513 /* Decode mem_flags */ #define GCT$K_SUBTYPE_NAMES 2 /* Decode Subtypes */ #define GCT$K_TYPE_NAMES 3 /* Decode Types */ #define GCT$K_OS_NAMES 4 /* Decode OS name */ #define GCT$K_ERROR_TEXT 5 /* Decode Error value */ #define GCT$K_RTN_NAMES 6 /* Callback routine names */ #define GCT$K_LOCK_TYPES 7 /* Lock types for calls */ /* */ /* An array of bindings are used to tell the code that populates a tree */ /* what the config and affinity bindings are for any node type. */ /* */ #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 _gct_bindings { #pragma __nomember_alignment unsigned char gct$b_bind_type; /* Node type */ unsigned char gct$b_bind_parent; /* Type of parent */ unsigned char gct$b_bind_config; /* Config binding */ unsigned char gct$b_bind_affinity; /* Affinity binding */ } GCT_BINDINGS; /* */ /* Define the node structure */ /* */ #define GCT$M_NODE_HARDWARE 0x1 #define GCT$M_NODE_HOTSWAP 0x2 #define GCT$M_NODE_UNAVAILABLE 0x4 #define GCT$M_NODE_HW_TEMPLATE 0x8 #define GCT$M_NODE_INITIALIZED 0x10 #define GCT$M_NODE_CPU_PRIMARY 0x20 #define GCT$M_NODE_IN_CONSOLE 0x40 #define GCT$M_NODE_RSRVD_7_31 0xFFFFFF80 #define GCT$M_NODE_RSRVD_32_63 0xFFFFFFFF00000000 #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 _gct_node { #pragma __nomember_alignment unsigned char gct$b_type; /* Node type */ unsigned char gct$b_subtype; /* Type-specific subtype */ unsigned short int gct$w_size; /* Size of node */ unsigned int gct$il_hd_extension; /* Header Extension offset */ __union { unsigned __int64 gct$iq_owner_both; /* Both owner and active owner */ __struct { GCT_HANDLE gct$il_owner; /* Software owner of node */ GCT_HANDLE gct$il_current_owner; /* Active user of the node */ } gct$r_owner_each; } gct$r_owner_union; __union { GCT_ID gct$iq_gct_id64; /*Reference to the entire 64-bit structure */ __struct { unsigned gct$v_node_id_sbb_rvd0_31 : 32; unsigned gct$v_node_id_sbb_rvd32_47 : 16; unsigned gct$v_node_id_sbb_sbb : 8; unsigned gct$v_node_id_sbb_rvd56_63 : 8; } gct$_gct_node_id_ssb; __struct { unsigned gct$v_node_id_smb_rvd0_31 : 32; unsigned gct$v_node_id_smb_rvd32_38 : 8; unsigned gct$v_node_id_smb_smb : 8; unsigned gct$v_node_id_smb_sbb : 8; unsigned gct$v_node_id_smb_rvd56_63 : 8; } gct$_gct_node_id_smb; __struct { unsigned gct$v_node_id_cpu_cpu : 16; unsigned gct$v_node_id_cpu_rvd16_23 : 8; unsigned gct$v_node_id_cpu_revcnt : 8; unsigned gct$v_node_id_cpu_rvd32_39 : 8; unsigned gct$v_node_id_cpu_smb : 8; unsigned gct$v_node_id_cpu_sbb : 8; unsigned gct$v_node_id_cpu_rvd56_63 : 8; } gct$_gct_node_id_cpu; __struct { unsigned gct$v_node_id_mem_sub_memsub : 8; unsigned gct$v_node_id_mem_sub_rvd8_39 : 32; unsigned gct$v_node_id_mem_sub_smb : 8; unsigned gct$v_node_id_mem_sub_sbb : 8; unsigned gct$v_node_id_mem_sub_rvd56_63 : 8; } gct$_gct_node_id_mem_sub; __struct { unsigned gct$v_node_id_mem_desc_memdesc : 16; unsigned gct$v_node_id_mem_desc_memsub : 8; unsigned gct$v_node_id_mem_desc_rvd24_39 : 16; unsigned gct$v_node_id_mem_desc_smb : 8; unsigned gct$v_node_id_mem_desc_sbb : 8; unsigned gct$v_node_id_mem_desc_rvd56_63 : 8; } gct$_gct_node_id_mem_desc; __struct { unsigned gct$v_node_id_mem_ctrl_memctrl : 16; unsigned gct$v_node_id_mem_ctrl_memsub : 8; unsigned gct$v_node_id_mem_ctrl_rvd24_39 : 16; unsigned gct$v_node_id_mem_ctrl_smb : 8; unsigned gct$v_node_id_mem_ctrl_sbb : 8; unsigned gct$v_node_id_mem_ctrl_rvd56_63 : 8; } gct$_gct_node_id_mem_ctrl; __struct { unsigned gct$v_node_id_iop_iop : 8; unsigned gct$v_node_id_iop_rvd8_39 : 32; unsigned gct$v_node_id_iop_smb : 8; unsigned gct$v_node_id_iop_sbb : 8; unsigned gct$v_node_id_iop_rvd56_63 : 8; } gct$_gct_node_id_iop; __struct { unsigned gct$v_node_id_hose_hose : 8; unsigned gct$v_node_id_hose_iop : 8; unsigned gct$v_node_id_hose_rvd24_47 : 24; unsigned gct$v_node_id_hose_smb : 8; unsigned gct$v_node_id_hose_sbb : 8; unsigned gct$v_node_id_hose_rvd56_63 : 8; } gct$_gct_node_id_hose; __struct { unsigned gct$v_node_id_bus_bus : 8; unsigned gct$v_node_id_bus_hose : 8; unsigned gct$v_node_id_bus_iop : 8; unsigned gct$v_node_id_bus_rvd24_39 : 16; unsigned gct$v_node_id_bus_smb : 8; unsigned gct$v_node_id_bus_sbb : 8; unsigned gct$v_node_id_bus_rvd56_63 : 8; } gct$_gct_node_id_bus; __struct { unsigned gct$v_node_id_slot_slot : 8; unsigned gct$v_node_id_slot_bus : 8; unsigned gct$v_node_id_slot_hose : 8; unsigned gct$v_node_id_slot_iop : 8; unsigned gct$v_node_id_slot_rvd24_31 : 8; unsigned gct$v_node_id_slot_smb : 8; unsigned gct$v_node_id_slot_sbb : 8; unsigned gct$v_node_id_slot_rvd56_63 : 8; } gct$_gct_node_id_slot; __struct { unsigned gct$v_node_id_io_ctrl_ctrlr : 8; unsigned gct$v_node_id_io_ctrl_bus : 8; unsigned gct$v_node_id_io_ctrl_hose : 8; unsigned gct$v_node_id_io_ctrl_iop : 8; unsigned gct$v_node_id_io_ctrl_rvd24_31 : 8; unsigned gct$v_node_id_io_ctrl_smb : 8; unsigned gct$v_node_id_io_ctrl_sbb : 8; unsigned gct$v_node_id_io_ctrl_rvd56_63 : 8; } gct$_gct_node_id_io_ctrl; __struct { unsigned gct$v_node_id_power_env_pe_num : 16; unsigned gct$v_node_id_power_rvd16_31 : 16; unsigned gct$v_node_id_power_env_smb : 8; unsigned gct$v_node_id_power_env_sbb : 8; unsigned gct$v_node_id_power_env_chassis : 8; unsigned gct$v_node_id_power_env_cab : 8; } gct$_gct_node_id_power_env; __struct { unsigned gct$v_node_id_fru_desc_site_loc : 8; unsigned gct$v_node_id_fru_desc_cab_id : 8; unsigned gct$v_node_id_fru_desc_position : 8; unsigned gct$v_node_id_fru_desc_chassis : 8; unsigned gct$v_node_id_fru_desc_assembly : 8; unsigned gct$v_node_id_fru_desc_subassem : 8; unsigned gct$v_node_id_fru_desc_slot : 16; } gct$_gct_node_id_fru_desc; __struct { unsigned gct$v_node_id_switch_id : 16; unsigned gct$v_node_id_switch_16_31 : 16; unsigned gct$v_node_id_switch_32_63 : 32; } gct$_gct_node_id_sys_inter_sw; __struct { unsigned gct$v_node_id_part_id : 16; unsigned gct$v_node_id_part_16_31 : 16; unsigned gct$v_node_id_part_32_63 : 32; } gct$_gct_node_id_partition; __struct { unsigned gct$v_node_id_comm_id : 16; unsigned gct$v_node_id_comm_16_31 : 16; unsigned gct$v_node_id_comm_32_63 : 32; } gct$_gct_node_id_community; __struct { unsigned gct$v_node_id_root : 8; unsigned gct$v_node_id_root_08_15 : 8; unsigned gct$v_node_id_root_16_31 : 16; unsigned gct$v_node_id_root_32_63 : 32; } gct$_gct_node_id_root; __struct { unsigned gct$v_node_id_hw_root : 8; unsigned gct$v_node_id_hw_root_08_15 : 8; unsigned gct$v_node_id_hw_root_16_31 : 16; unsigned gct$v_node_id_hw_root_32_63 : 32; } gct$_gct_node_id_hw_root; __struct { unsigned gct$v_node_id_sw_root : 8; unsigned gct$v_node_id_sw_root_08_15 : 8; unsigned gct$v_node_id_sw_root_16_31 : 16; unsigned gct$v_node_id_sw_root_32_63 : 32; } gct$_gct_node_id_sw_root; __struct { unsigned gct$v_node_id_fru_root : 8; unsigned gct$v_node_id_fru_root_08_15 : 8; unsigned gct$v_node_id_fru_root_16_31 : 16; unsigned gct$v_node_id_fru_root_32_63 : 32; } gct$_gct_node_id_fru_root; __struct { unsigned gct$v_node_id_pseudo_num : 16; unsigned gct$v_node_id_pseudo_16_31 : 16; unsigned gct$v_node_id_pseudo_32_47 : 16; unsigned gct$v_node_id_pseudo_chassis : 8; unsigned gct$v_node_id_pseudo_cab : 8; } gct$_gct_node_id_pseudo; } gct$r_gct_id_union; __union { unsigned __int64 gct$iq_node_flags; /* flags */ __struct { unsigned gct$v_node_hardware : 1; /* Node represents hardware */ unsigned gct$v_node_hotswap : 1; /* Hardware can be hotswapped */ unsigned gct$v_node_unavailable : 1; /* Hardware is not avail (power down) */ unsigned gct$v_node_hw_template : 1; /* Node is a template device */ unsigned gct$v_node_initialized : 1; /* Partition is initialized */ unsigned gct$v_node_cpu_primary : 1; /* CPU is a primary */ unsigned gct$v_node_in_console : 1; /* CPU is in console mode */ unsigned gct$v_node_rsrvd_7_31 : 25; /* Unused bits in first longword */ unsigned gct$v_node_rsrvd_32_63 : 32; /* Unused bits in second longword */ } gct$r_flag_bits; } gct$r_flag_union; GCT_HANDLE gct$il_config; /* Config binging */ GCT_HANDLE gct$il_affinity; /* Affinity (performance) binding */ GCT_HANDLE gct$il_parent; /* Parent node */ GCT_HANDLE gct$il_next_sib; /* Next sibling node */ GCT_HANDLE gct$il_prev_sib; /* Previous sibling node */ GCT_HANDLE gct$il_child; /* Child node */ GCT_HANDLE gct$il_reserved; /* Reserved for SRM use */ unsigned int gct$il_magic; /* Valid bits 'GLXY' */ } GCT_NODE; #if !defined(__VAXC) #define gct$iq_owner_both gct$r_owner_union.gct$iq_owner_both #define gct$r_owner_each gct$r_owner_union.gct$r_owner_each #define gct$il_owner gct$r_owner_each.gct$il_owner #define gct$il_current_owner gct$r_owner_each.gct$il_current_owner #define gct$iq_gct_id64 gct$r_gct_id_union.gct$iq_gct_id64 #define gct$_gct_node_id_ssb gct$r_gct_id_union.gct$_gct_node_id_ssb #define gct$v_node_id_sbb_rvd0_31 gct$_gct_node_id_ssb.gct$v_node_id_sbb_rvd0_31 #define gct$v_node_id_sbb_rvd32_47 gct$_gct_node_id_ssb.gct$v_node_id_sbb_rvd32_47 #define gct$v_node_id_sbb_sbb gct$_gct_node_id_ssb.gct$v_node_id_sbb_sbb #define gct$v_node_id_sbb_rvd56_63 gct$_gct_node_id_ssb.gct$v_node_id_sbb_rvd56_63 #define gct$_gct_node_id_smb gct$r_gct_id_union.gct$_gct_node_id_smb #define gct$v_node_id_smb_rvd0_31 gct$_gct_node_id_smb.gct$v_node_id_smb_rvd0_31 #define gct$v_node_id_smb_rvd32_38 gct$_gct_node_id_smb.gct$v_node_id_smb_rvd32_38 #define gct$v_node_id_smb_smb gct$_gct_node_id_smb.gct$v_node_id_smb_smb #define gct$v_node_id_smb_sbb gct$_gct_node_id_smb.gct$v_node_id_smb_sbb #define gct$v_node_id_smb_rvd56_63 gct$_gct_node_id_smb.gct$v_node_id_smb_rvd56_63 #define gct$_gct_node_id_cpu gct$r_gct_id_union.gct$_gct_node_id_cpu #define gct$v_node_id_cpu_cpu gct$_gct_node_id_cpu.gct$v_node_id_cpu_cpu #define gct$v_node_id_cpu_rvd16_23 gct$_gct_node_id_cpu.gct$v_node_id_cpu_rvd16_23 #define gct$v_node_id_cpu_revcnt gct$_gct_node_id_cpu.gct$v_node_id_cpu_revcnt #define gct$v_node_id_cpu_rvd32_39 gct$_gct_node_id_cpu.gct$v_node_id_cpu_rvd32_39 #define gct$v_node_id_cpu_smb gct$_gct_node_id_cpu.gct$v_node_id_cpu_smb #define gct$v_node_id_cpu_sbb gct$_gct_node_id_cpu.gct$v_node_id_cpu_sbb #define gct$v_node_id_cpu_rvd56_63 gct$_gct_node_id_cpu.gct$v_node_id_cpu_rvd56_63 #define gct$_gct_node_id_mem_sub gct$r_gct_id_union.gct$_gct_node_id_mem_sub #define gct$v_node_id_mem_sub_memsub gct$_gct_node_id_mem_sub.gct$v_node_id_mem_sub_memsub #define gct$v_node_id_mem_sub_rvd8_39 gct$_gct_node_id_mem_sub.gct$v_node_id_mem_sub_rvd8_39 #define gct$v_node_id_mem_sub_smb gct$_gct_node_id_mem_sub.gct$v_node_id_mem_sub_smb #define gct$v_node_id_mem_sub_sbb gct$_gct_node_id_mem_sub.gct$v_node_id_mem_sub_sbb #define gct$v_node_id_mem_sub_rvd56_63 gct$_gct_node_id_mem_sub.gct$v_node_id_mem_sub_rvd56_63 #define gct$_gct_node_id_mem_desc gct$r_gct_id_union.gct$_gct_node_id_mem_desc #define gct$v_node_id_mem_desc_memdesc gct$_gct_node_id_mem_desc.gct$v_node_id_mem_desc_memdesc #define gct$v_node_id_mem_desc_memsub gct$_gct_node_id_mem_desc.gct$v_node_id_mem_desc_memsub #define gct$v_node_id_mem_desc_rvd24_39 gct$_gct_node_id_mem_desc.gct$v_node_id_mem_desc_rvd24_39 #define gct$v_node_id_mem_desc_smb gct$_gct_node_id_mem_desc.gct$v_node_id_mem_desc_smb #define gct$v_node_id_mem_desc_sbb gct$_gct_node_id_mem_desc.gct$v_node_id_mem_desc_sbb #define gct$v_node_id_mem_desc_rvd56_63 gct$_gct_node_id_mem_desc.gct$v_node_id_mem_desc_rvd56_63 #define gct$_gct_node_id_mem_ctrl gct$r_gct_id_union.gct$_gct_node_id_mem_ctrl #define gct$v_node_id_mem_ctrl_memctrl gct$_gct_node_id_mem_ctrl.gct$v_node_id_mem_ctrl_memctrl #define gct$v_node_id_mem_ctrl_memsub gct$_gct_node_id_mem_ctrl.gct$v_node_id_mem_ctrl_memsub #define gct$v_node_id_mem_ctrl_rvd24_39 gct$_gct_node_id_mem_ctrl.gct$v_node_id_mem_ctrl_rvd24_39 #define gct$v_node_id_mem_ctrl_smb gct$_gct_node_id_mem_ctrl.gct$v_node_id_mem_ctrl_smb #define gct$v_node_id_mem_ctrl_sbb gct$_gct_node_id_mem_ctrl.gct$v_node_id_mem_ctrl_sbb #define gct$v_node_id_mem_ctrl_rvd56_63 gct$_gct_node_id_mem_ctrl.gct$v_node_id_mem_ctrl_rvd56_63 #define gct$_gct_node_id_iop gct$r_gct_id_union.gct$_gct_node_id_iop #define gct$v_node_id_iop_iop gct$_gct_node_id_iop.gct$v_node_id_iop_iop #define gct$v_node_id_iop_rvd8_39 gct$_gct_node_id_iop.gct$v_node_id_iop_rvd8_39 #define gct$v_node_id_iop_smb gct$_gct_node_id_iop.gct$v_node_id_iop_smb #define gct$v_node_id_iop_sbb gct$_gct_node_id_iop.gct$v_node_id_iop_sbb #define gct$v_node_id_iop_rvd56_63 gct$_gct_node_id_iop.gct$v_node_id_iop_rvd56_63 #define gct$_gct_node_id_hose gct$r_gct_id_union.gct$_gct_node_id_hose #define gct$v_node_id_hose_hose gct$_gct_node_id_hose.gct$v_node_id_hose_hose #define gct$v_node_id_hose_iop gct$_gct_node_id_hose.gct$v_node_id_hose_iop #define gct$v_node_id_hose_rvd24_47 gct$_gct_node_id_hose.gct$v_node_id_hose_rvd24_47 #define gct$v_node_id_hose_smb gct$_gct_node_id_hose.gct$v_node_id_hose_smb #define gct$v_node_id_hose_sbb gct$_gct_node_id_hose.gct$v_node_id_hose_sbb #define gct$v_node_id_hose_rvd56_63 gct$_gct_node_id_hose.gct$v_node_id_hose_rvd56_63 #define gct$_gct_node_id_bus gct$r_gct_id_union.gct$_gct_node_id_bus #define gct$v_node_id_bus_bus gct$_gct_node_id_bus.gct$v_node_id_bus_bus #define gct$v_node_id_bus_hose gct$_gct_node_id_bus.gct$v_node_id_bus_hose #define gct$v_node_id_bus_iop gct$_gct_node_id_bus.gct$v_node_id_bus_iop #define gct$v_node_id_bus_rvd24_39 gct$_gct_node_id_bus.gct$v_node_id_bus_rvd24_39 #define gct$v_node_id_bus_smb gct$_gct_node_id_bus.gct$v_node_id_bus_smb #define gct$v_node_id_bus_sbb gct$_gct_node_id_bus.gct$v_node_id_bus_sbb #define gct$v_node_id_bus_rvd56_63 gct$_gct_node_id_bus.gct$v_node_id_bus_rvd56_63 #define gct$_gct_node_id_slot gct$r_gct_id_union.gct$_gct_node_id_slot #define gct$v_node_id_slot_slot gct$_gct_node_id_slot.gct$v_node_id_slot_slot #define gct$v_node_id_slot_bus gct$_gct_node_id_slot.gct$v_node_id_slot_bus #define gct$v_node_id_slot_hose gct$_gct_node_id_slot.gct$v_node_id_slot_hose #define gct$v_node_id_slot_iop gct$_gct_node_id_slot.gct$v_node_id_slot_iop #define gct$v_node_id_slot_rvd24_31 gct$_gct_node_id_slot.gct$v_node_id_slot_rvd24_31 #define gct$v_node_id_slot_smb gct$_gct_node_id_slot.gct$v_node_id_slot_smb #define gct$v_node_id_slot_sbb gct$_gct_node_id_slot.gct$v_node_id_slot_sbb #define gct$v_node_id_slot_rvd56_63 gct$_gct_node_id_slot.gct$v_node_id_slot_rvd56_63 #define gct$_gct_node_id_io_ctrl gct$r_gct_id_union.gct$_gct_node_id_io_ctrl #define gct$v_node_id_io_ctrl_ctrlr gct$_gct_node_id_io_ctrl.gct$v_node_id_io_ctrl_ctrlr #define gct$v_node_id_io_ctrl_bus gct$_gct_node_id_io_ctrl.gct$v_node_id_io_ctrl_bus #define gct$v_node_id_io_ctrl_hose gct$_gct_node_id_io_ctrl.gct$v_node_id_io_ctrl_hose #define gct$v_node_id_io_ctrl_iop gct$_gct_node_id_io_ctrl.gct$v_node_id_io_ctrl_iop #define gct$v_node_id_io_ctrl_rvd24_31 gct$_gct_node_id_io_ctrl.gct$v_node_id_io_ctrl_rvd24_31 #define gct$v_node_id_io_ctrl_smb gct$_gct_node_id_io_ctrl.gct$v_node_id_io_ctrl_smb #define gct$v_node_id_io_ctrl_sbb gct$_gct_node_id_io_ctrl.gct$v_node_id_io_ctrl_sbb #define gct$v_node_id_io_ctrl_rvd56_63 gct$_gct_node_id_io_ctrl.gct$v_node_id_io_ctrl_rvd56_63 #define gct$_gct_node_id_power_env gct$r_gct_id_union.gct$_gct_node_id_power_env #define gct$v_node_id_power_env_pe_num gct$_gct_node_id_power_env.gct$v_node_id_power_env_pe_num #define gct$v_node_id_power_rvd16_31 gct$_gct_node_id_power_env.gct$v_node_id_power_rvd16_31 #define gct$v_node_id_power_env_smb gct$_gct_node_id_power_env.gct$v_node_id_power_env_smb #define gct$v_node_id_power_env_sbb gct$_gct_node_id_power_env.gct$v_node_id_power_env_sbb #define gct$v_node_id_power_env_chassis gct$_gct_node_id_power_env.gct$v_node_id_power_env_chassis #define gct$v_node_id_power_env_cab gct$_gct_node_id_power_env.gct$v_node_id_power_env_cab #define gct$_gct_node_id_fru_desc gct$r_gct_id_union.gct$_gct_node_id_fru_desc #define gct$v_node_id_fru_desc_site_loc gct$_gct_node_id_fru_desc.gct$v_node_id_fru_desc_site_loc #define gct$v_node_id_fru_desc_cab_id gct$_gct_node_id_fru_desc.gct$v_node_id_fru_desc_cab_id #define gct$v_node_id_fru_desc_position gct$_gct_node_id_fru_desc.gct$v_node_id_fru_desc_position #define gct$v_node_id_fru_desc_chassis gct$_gct_node_id_fru_desc.gct$v_node_id_fru_desc_chassis #define gct$v_node_id_fru_desc_assembly gct$_gct_node_id_fru_desc.gct$v_node_id_fru_desc_assembly #define gct$v_node_id_fru_desc_subassem gct$_gct_node_id_fru_desc.gct$v_node_id_fru_desc_subassem #define gct$v_node_id_fru_desc_slot gct$_gct_node_id_fru_desc.gct$v_node_id_fru_desc_slot #define gct$_gct_node_id_sys_inter_sw gct$r_gct_id_union.gct$_gct_node_id_sys_inter_sw #define gct$v_node_id_switch_id gct$_gct_node_id_sys_inter_sw.gct$v_node_id_switch_id #define gct$_gct_node_id_partition gct$r_gct_id_union.gct$_gct_node_id_partition #define gct$v_node_id_part_id gct$_gct_node_id_partition.gct$v_node_id_part_id #define gct$_gct_node_id_community gct$r_gct_id_union.gct$_gct_node_id_community #define gct$v_node_id_comm_id gct$_gct_node_id_community.gct$v_node_id_comm_id #define gct$_gct_node_id_root gct$r_gct_id_union.gct$_gct_node_id_root #define gct$v_node_id_root gct$_gct_node_id_root.gct$v_node_id_root #define gct$_gct_node_id_hw_root gct$r_gct_id_union.gct$_gct_node_id_hw_root #define gct$v_node_id_hw_root gct$_gct_node_id_hw_root.gct$v_node_id_hw_root #define gct$_gct_node_id_sw_root gct$r_gct_id_union.gct$_gct_node_id_sw_root #define gct$v_node_id_sw_root gct$_gct_node_id_sw_root.gct$v_node_id_sw_root #define gct$_gct_node_id_fru_root gct$r_gct_id_union.gct$_gct_node_id_fru_root #define gct$v_node_id_fru_root gct$_gct_node_id_fru_root.gct$v_node_id_fru_root #define gct$_gct_node_id_pseudo gct$r_gct_id_union.gct$_gct_node_id_pseudo #define gct$v_node_id_pseudo_num gct$_gct_node_id_pseudo.gct$v_node_id_pseudo_num #define gct$v_node_id_pseudo_chassis gct$_gct_node_id_pseudo.gct$v_node_id_pseudo_chassis #define gct$v_node_id_pseudo_cab gct$_gct_node_id_pseudo.gct$v_node_id_pseudo_cab #define gct$iq_node_flags gct$r_flag_union.gct$iq_node_flags #define gct$v_node_hardware gct$r_flag_union.gct$r_flag_bits.gct$v_node_hardware #define gct$v_node_hotswap gct$r_flag_union.gct$r_flag_bits.gct$v_node_hotswap #define gct$v_node_unavailable gct$r_flag_union.gct$r_flag_bits.gct$v_node_unavailable #define gct$v_node_hw_template gct$r_flag_union.gct$r_flag_bits.gct$v_node_hw_template #define gct$v_node_initialized gct$r_flag_union.gct$r_flag_bits.gct$v_node_initialized #define gct$v_node_cpu_primary gct$r_flag_union.gct$r_flag_bits.gct$v_node_cpu_primary #define gct$v_node_in_console gct$r_flag_union.gct$r_flag_bits.gct$v_node_in_console #define gct$v_node_rsrvd_7_31 gct$r_flag_union.gct$r_flag_bits.gct$v_node_rsrvd_7_31 #define gct$v_node_rsrvd_32_63 gct$r_flag_union.gct$r_flag_bits.gct$v_node_rsrvd_32_63 #endif /* #if !defined(__VAXC) */ #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 _gct_root_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_root; unsigned __int64 gct$iq_lock; /* Software lock */ unsigned __int64 gct$iq_transient_level; /* Update counter (in prog) */ unsigned __int64 gct$iq_current_level; /* Update counter (actual) */ unsigned __int64 gct$iq_console_req; /* Memory required for console */ unsigned __int64 gct$iq_min_alloc; /* Minimum memory allocation */ unsigned __int64 gct$iq_min_align; /* Memory allocation alignment */ unsigned __int64 gct$iq_base_alloc; /* Base memory min allocation */ unsigned __int64 gct$iq_base_align; /* Base memory alloc alignment */ unsigned __int64 gct$iq_max_phys_address; /* Largest Physical Address */ unsigned __int64 gct$iq_mem_size; /* Total current memory size */ unsigned __int64 gct$iq_platform_type; /* Type code of platform */ int gct$il_platform_name; /* Offset to name string */ GCT_HANDLE gct$il_primary_instance; /* Handle of GALAXY Primary Partiion */ GCT_HANDLE gct$il_first_free; /* First free byte of tree pool */ GCT_HANDLE gct$il_high_limit; /* High address limit for nodes */ GCT_HANDLE gct$il_lookaside; /* Lookaside list for node deletion */ int gct$il_available; /* Amount of bytes in pool */ unsigned int gct$il_max_partition; /* Max partitions */ int gct$il_partitions; /* Offset to partition ID map */ int gct$il_communities; /* Offset to community ID map */ unsigned int gct$il_max_platform_partition; /* Max part platform supports */ unsigned int gct$il_max_fragments; /* Max memory frags per desc */ unsigned int gct$il_max_desc; /* Max memory descriptors */ char gct$b_galaxy_id [16]; /* Galaxy ID */ char gct$b_galaxy_id_pad [4]; /* Pad ID with a longword of bytes (ensures a null terminator) */ int gct$il_bindings; /* Offset to array of bindings */ } GCT_ROOT_NODE; #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 _gct_sw_root_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_sw_root; } GCT_SW_ROOT_NODE; #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 _gct_hw_root_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_hw_root; } GCT_HW_ROOT_NODE; #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 _gct_template_root_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_template_root; } GCT_TEMPLATE_ROOT_NODE; #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 _gct_sbb_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_sbb; } GCT_SBB_NODE; #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 _gct_iop_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_iop; unsigned __int64 gct$iq_min_io_pa; /* Lowest possible PA in I/O subsystem */ unsigned __int64 gct$iq_max_io_pa; /* Highest possible PA in I/O subsys */ } GCT_IOP_NODE; #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 _gct_hose_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_hose; } GCT_HOSE_NODE; #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 _gct_bus_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_bus; } GCT_BUS_NODE; #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 _gct_slot_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_slot; } GCT_SLOT_NODE; #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 _gct_io_ctrl_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_io_ctrl; } GCT_IO_CTRL_NODE; #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 _gct_cpu_module_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_cpu_module; } GCT_CPU_MODULE_NODE; #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 _gct_cpu_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_cpu; } GCT_CPU_NODE; #define GCT$K_INSTANCE_NAME_LENGTH 128 #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 _gct_partition_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_partition; unsigned __int64 gct$iq_hwrpb; /* HWRPB PA */ unsigned __int64 gct$iq_incarnation; /* Partition incarnation */ unsigned __int64 gct$iq_priority; /* Partition priority */ unsigned int gct$il_os_type; /* OS type */ int gct$il_part_reserved_1; /* Pad longword available for use */ char gct$b_instance_name [128]; /* Instance Name */ } GCT_PARTITION_NODE; #define GCT$K_COMM_BLOCK_SIZE 8 #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 _gct_community_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_community; unsigned __int64 gct$iq_gmdb [8]; /* Communication block */ } GCT_COMMUNITY_NODE; #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 _gct_memory_sub_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_memory_sub; unsigned __int64 gct$iq_min_pa; /* Lowest possible PA in subsystem */ unsigned __int64 gct$iq_max_pa; /* Highest possible PA in subsys */ } GCT_MEMORY_SUB_NODE; #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 _gct_memory_ctrl_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_memory_ctrl; } GCT_MEMORY_CTRL_NODE; #define GCT$M_MEM_CONSOLE 0x1 #define GCT$M_MEM_PRIVATE 0x2 #define GCT$M_MEM_SHARED 0x4 #define GCT$M_MEM_BASE 0x8 #define GCT$M_MEM_VALID 0x10 #define GCT$M_MEM_RSRVD_5_31 0xFFFFFFE0 #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 _gct_mem_desc { #pragma __nomember_alignment unsigned __int64 gct$iq_pa; /* Base PA of memory fragment */ unsigned __int64 gct$iq_size; /* Size of memory fragment */ GCT_HANDLE gct$il_mem_owner; GCT_HANDLE gct$il_mem_current_owner; __union { unsigned int gct$il_mem_flags; /* flags */ __struct { unsigned gct$v_mem_console : 1; /* Console memory */ unsigned gct$v_mem_private : 1; /* Private (non-shared) memory */ unsigned gct$v_mem_shared : 1; /* Shared memory */ unsigned gct$v_mem_base : 1; /* Base Segment memory */ unsigned gct$v_mem_valid : 1; /* Fragment is valid */ unsigned gct$v_mem_rsrvd_5_31 : 27; /* Unused bits in longword */ } gct$r_flag_bits; } gct$r_flag_union; unsigned int gct$il_mem_reserved_1; /* Pad to a quad. Available for use. */ } GCT_MEM_DESC; #if !defined(__VAXC) #define gct$il_mem_flags gct$r_flag_union.gct$il_mem_flags #define gct$v_mem_console gct$r_flag_union.gct$r_flag_bits.gct$v_mem_console #define gct$v_mem_private gct$r_flag_union.gct$r_flag_bits.gct$v_mem_private #define gct$v_mem_shared gct$r_flag_union.gct$r_flag_bits.gct$v_mem_shared #define gct$v_mem_base gct$r_flag_union.gct$r_flag_bits.gct$v_mem_base #define gct$v_mem_valid gct$r_flag_union.gct$r_flag_bits.gct$v_mem_valid #define gct$v_mem_rsrvd_5_31 gct$r_flag_union.gct$r_flag_bits.gct$v_mem_rsrvd_5_31 #endif /* #if !defined(__VAXC) */ #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 _gct_mem_info { #pragma __nomember_alignment unsigned __int64 gct$iq_base_pa; /* Base PA of desc */ unsigned __int64 gct$iq_base_size; /* Size of memory desc */ unsigned int gct$il_desc_count; /* Number of fragments */ unsigned int gct$il_info_reserved; /* Pad to a quad */ } GCT_MEM_INFO; #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 _gct_mem_desc_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_mem_desc; GCT_MEM_INFO gct$r_mem_info; /* Mem desc header */ int gct$il_mem_frag; /* Offset to descriptors */ int gct$il_mem_desc_reserved; /* Pad to a quad */ unsigned __int64 gct$iq_bitmap_pa; /* PA of memory bitmap or zero */ } GCT_MEM_DESC_NODE; #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 _gct_pseudo_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_pseudo; } GCT_PSEUDO_NODE; #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 _gct_power_env_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_power_env; } GCT_POWER_ENV_NODE; #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 _fru_info { #pragma __nomember_alignment unsigned int gct$il_fru_info_diag_flag; unsigned int gct$il_fru_info_diag_info; unsigned char gct$b_fru_info_tlv; /* start of TLVs for manufacturer, model, part_number, serial_number and */ /* firmware_revision. */ char gct$b_fill_1_ [7]; } FRU_INFO; #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 _gct_fru_root_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_fru_root; FRU_INFO gct$r_fru_root_info; } GCT_FRU_ROOT_NODE; #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 _gct_fru_desc_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_fru_desc; FRU_INFO gct$r_fru_desc_info; } GCT_FRU_DESC_NODE; #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 _gct_smb_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_smb; } GCT_SMB_NODE; #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 _gct_cab_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_cab; } GCT_CAB_NODE; #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 _gct_chassis_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_chassis; } GCT_CHASSIS_NODE; #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 _gct_switch_node { #pragma __nomember_alignment GCT_NODE gct$r_hd_switch; } GCT_SWITCH_NODE; /* * Define the GCT_FILE type as char. Used by GCU/GCON I/O routines. */ #define GCT_FILE char /* * Define some typedefs */ #ifdef __INITIAL_POINTER_SIZE #pragma __required_pointer_size __save /* Save current pointer size */ #pragma __required_pointer_size __long /* Pointers are 64-bit */ typedef struct _gct_buffer_header *GCT_BUFFER_HEADER_PQ; /* Long pointer to a GCT buffer header */ typedef struct _gct_node *GCT_NODE_PQ; /* Long pointer to a GCT node */ typedef struct _gct_root_node *GCT_ROOT_NODE_PQ; /* Long pointer to a root node */ typedef struct _gct_sw_root_node *GCT_SW_ROOT_NODE_PQ; /* Long pointer to a SW root node */ typedef struct _gct_hw_root_node *GCT_HW_ROOT_NODE_PQ; /* Long pointer to a HW root node */ typedef struct _gct_template_root_node *GCT_TEMPLATE_ROOT_NODE_PQ; /* Long pointer to a TEPLATE root node */ typedef struct _gct_sbb_node *GCT_SBB_NODE_PQ; /* Long pointer to a SBB node */ typedef struct _gct_iop_node *GCT_IOP_NODE_PQ; /* Long pointer to a IOP node */ typedef struct _gct_io_ctrl_node *GCT_IO_CTRL_NODE_PQ; /* Long pointer to a IO_CTRL node */ typedef struct _gct_slot_node *GCT_SLOT_NODE_PQ; /* Long pointer to a SLOT node */ typedef struct _gct_bus_node *GCT_BUS_NODE_PQ; /* Long pointer to a BUS node */ typedef struct _gct_hose_node *GCT_HOSE_NODE_PQ; /* Long pointer to a HOSE node */ typedef struct _gct_cpu_node *GCT_CPU_NODE_PQ; /* Long pointer to a CPU node */ typedef struct _gct_cpu_module_node *GCT_CPU_MODULE_NODE_PQ; /* Long pointer to a CPU_MODULE node */ typedef struct _gct_partition_node *GCT_PARTITION_NODE_PQ; /* Long pointer to a partition node */ typedef struct _gct_community_node *GCT_COMMUNITY_NODE_PQ; /* Long pointer to a community node */ typedef struct _gct_memory_sub_node *GCT_MEMORY_SUB_NODE_PQ; /* Long pointer to a mememory subsystem node */ typedef struct _gct_memory_ctrl_node *GCT_MEMORY_CTRL_NODE_PQ; /* Long pointer to a mememory ctrl node */ typedef struct _gct_mem_desc *GCT_MEM_DESC_PQ; /* Long pointer to a mem descriptor */ typedef struct _gct_mem_info *GCT_MEM_INFO_PQ; /* Long pointer to a mem info structure */ typedef struct _gct_mem_desc_node *GCT_MEM_DESC_NODE_PQ; /* Long pointer to a memory descriptor node */ typedef struct _gct_names *GCT_NAMES_PQ; /* Long pointer to a names structure */ typedef struct _gct_power_envir_node *GCT_POWER_ENVIR_NODE_PQ; /* Long pointer to a power envir node */ typedef struct _gct_fru_root_node *GCT_FRU_ROOT_NODE_PQ; /* Long pointer to a FRU root node */ typedef struct _gct_fru_desc_node *GCT_FRU_DESC_NODE_PQ; /* Long pointer to a FRU descripter */ typedef struct _gct_smb_node *GCT_SMB_NODE_PQ; /* Long pointer to a system mother bd. */ typedef struct _gct_cab_node *GCT_CAB_NODE_PQ; /* Long pointer to a Cabinet */ typedef struct _gct_chassis_node *GCT_CHASSIS_NODE_PQ; /* Long pointer to a system chassis */ typedef struct _gct_exp_chassis_node *GCT_EXP_CHASSIS_NODE_PQ; /* Long pointer to a Expand chassis */ typedef union _gct_id_union *GCT_ID_UNION_PQ; /* Long pointer to a GCT ID */ #pragma __required_pointer_size __restore /* Return to previous pointer size */ #else typedef unsigned __int64 GCT_BUFFER_HEADER_PQ; typedef unsigned __int64 GCT_NODE_PQ; typedef unsigned __int64 GCT_ROOT_NODE_PQ; typedef unsigned __int64 GCT_SW_ROOT_NODE_PQ; typedef unsigned __int64 GCT_HW_ROOT_NODE_PQ; typedef unsigned __int64 GCT_TEMPLATE_ROOT_NODE_PQ; typedef unsigned __int64 GCT_CPU_NODE_PQ; typedef unsigned __int64 GCT_CPU_MODULE_NODE_PQ; typedef unsigned __int64 GCT_SBB_NODE_PQ; typedef unsigned __int64 GCT_IOP_NODE_PQ; typedef unsigned __int64 GCT_IO_CTRL_NODE_PQ; typedef unsigned __int64 GCT_SLOT_NODE_PQ; typedef unsigned __int64 GCT_BUS_NODE_PQ; typedef unsigned __int64 GCT_HOSE_NODE_PQ; typedef unsigned __int64 GCT_PARTITION_NODE_PQ; typedef unsigned __int64 GCT_COMMUNITY_NODE_PQ; typedef unsigned __int64 GCT_MEMORY_SUB_NODE_PQ; typedef unsigned __int64 GCT_MEMORY_CRTL_NODE_PQ; typedef unsigned __int64 GCT_MEM_DESC_PQ; typedef unsigned __int64 GCT_MEM_INFO_PQ; typedef unsigned __int64 GCT_MEM_DESC_NODE_PQ; typedef unsigned __int64 GCT_NAMES_PQ; typedef unsigned __int64 GCT_POWER_ENVIR_NODE_PQ; typedef unsigned __int64 GCT_FRU_ROOT_NODE_PQ; typedef unsigned __int64 GCT_FRU_DESC_NODE_PQ; typedef unsigned __int64 GCT_SMB_NODE_PQ; typedef unsigned __int64 GCT_CAB_NODE_PQ; typedef unsigned __int64 GCT_CHASSIS_NODE_PQ; typedef unsigned __int64 GCT_EXP_CHASSIS_NODE_PQ; typedef unsigned __int64 GCT_ID_UNION_PQ; #endif /* __INITIAL_POINTER_SIZE */ /* */ /* TLV strings... To access them -- you need to use the tag to understand */ /* the data type, the length to get the number of bytes. This structure */ /* contains: */ /* */ #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 _gct_tlv { #pragma __nomember_alignment unsigned short int gct$iw_tlv_tag; /* The Type of data */ unsigned short int gct$iw_tlv_length; /* Its length */ unsigned char gct$b_tlv_value; /* The first byte(s) in the value */ char gct$b_fill_2_ [3]; } GCT_TLV; #define GCT$K_TLV_TAG_ISOLATIN1 1 #define GCT$K_TLV_TAG_QUOTED 2 #define GCT$K_TLV_TAG_BINARY 3 #define GCT$K_TLV_TAG_UNICODE 4 /* */ /* define the diag_failure structure */ /* */ #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 _gct_diag_failure { #pragma __nomember_alignment unsigned char gct$b_failure_type_rev; /* type nibble (0:3) and revision (4:7) */ unsigned char gct$b_failure_test; /* Test */ unsigned char gct$b_failure_subtest; /* Subtest code */ unsigned char gct$b_failure_error; /* Error code */ } GCT_DIAG_FAILURE; #define GCT$K_DIAG_ST_NA 1 /* */ #define GCT$K_DIAG_ST_PASSED 1 /* */ #define GCT$K_DIAG_ST_RSRVD_03_31 -4 /* */ /* */ /* System Resource Configuration Subpacket header format */ /* */ #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 _gct_subpack { #pragma __nomember_alignment unsigned short int gct$iw_subpack_length; /* Length */ unsigned short int gct$iw_subpack_class; /* Class */ unsigned short int gct$iw_subpack_type; /* Type */ unsigned short int gct$iw_subpack_rev; /* Revision */ unsigned int gct$il_subpack_diag_flags; unsigned int gct$il_subpack_diag_failure; } GCT_SUBPACK; /* */ /* Subpacket TYPE codes for CLASS 1 ( System Resource Conf Subpackets ) */ /* */ #define GCT$K_SUBPACK_UNUSED_1 1 /* Used to be SYSTEM_PLATFORM */ #define GCT$K_SUBPACK_PROCESSOR 2 /* Processor */ #define GCT$K_SUBPACK_MEMORY 3 /* Memory */ #define GCT$K_SUBPACK_SYS_BUS_BRIDGE 4 /* */ #define GCT$K_SUBPACK_PCI_DEVICE 5 /* */ #define GCT$K_SUBPACK_UNUSED_6 6 /* */ #define GCT$K_SUBPACK_CACHE 7 /* */ #define GCT$K_SUBPACK_POWER 8 /* */ #define GCT$K_SUBPACK_COOLING 9 /* */ #define GCT$K_SUBPACK_SYS_INIT_LOG 10 /* */ #define GCT$K_SUBPACK_UNUSED_11 11 /* */ #define GCT$K_SUBPACK_UNUSED_12 12 /* */ #define GCT$K_SUBPACK_VME 13 /* */ #define GCT$K_SUBPACK_SBB 14 /* */ #define GCT$K_SUBPACK_IOP 15 /* */ #define GCT$K_SUBPACK_HOSE 16 /* */ #define GCT$K_SUBPACK_BUS 17 /* */ #define GCT$K_SUBPACK_ISA_DEVICE 18 /* */ #define GCT$K_SUBPACK_USB_DEVICE 19 /* */ #define GCT$K_SUBPACK_CONSOLE 20 /* */ #define GCT$K_SUBPACK_POWER_ENVIR 21 /* */ #define GCT$K_SUBPACK_UNUSED_22 22 /* */ #define GCT$K_SUBPACK_UNUSED_23 23 /* */ #define GCT$K_SUBPACK_UNUSED_24 24 /* */ #define GCT$K_SUBPACK_UNUSED_25 25 /* */ #define GCT$K_SUBPACK_UNUSED_26 26 /* */ #define GCT$K_SUBPACK_UNUSED_27 27 /* */ #define GCT$K_SUBPACK_UNUSED_28 28 /* */ #define GCT$K_SUBPACK_UNUSED_29 29 /* */ #define GCT$K_SUBPACK_PCI_VPD 30 /* */ #define GCT$K_SUBPACK_SMB 31 /* */ #define GCT$K_SUBPACK_FIBRECHANNEL 32 /* */ #define GCT$K_SUBPACK_AGP 33 /* */ #define GCT$K_SUBPACK_IDE 34 /* */ #define GCT$K_SUBPACK_SCSI 35 /* */ #define GCT$K_SUBPACK_1394 36 /* */ #define GCT$K_SUBPACK_SUPER_HIPPI 37 /* */ #define GCT$K_SUBPACK_MEMORY_DIR 38 /* */ #define GCT$K_SUBPACK_NUMA_PORT 39 /* */ #define GCT$K_SUBPACK_NUMA_SWITCH 40 /* */ #define GCT$K_SUBPACK_RMC 41 /* */ #define GCT$K_SUBPACK_SENSOR 42 /* */ #define GCT$K_SUBPACK_LAST 43 /* */ /* */ /* CPU Resource subpacket ( Class 1 Type 2 ) */ /* */ #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 _subpkt_cpu_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_cpu_sub; unsigned int gct$il_cpu_id; unsigned int gct$il_cpu_family; unsigned __int64 gct$iq_cpu_state; unsigned __int64 gct$iq_cpu_ovms_palcode_rev; unsigned __int64 gct$iq_cpu_dunix_palcode_rev; unsigned __int64 gct$iq_cpu_wnt_palcode_rev; unsigned __int64 gct$iq_cpu_alpha_type; unsigned __int64 gct$iq_cpu_variation; GCT_TLV gct$r_cpu_manufacturer; GCT_TLV gct$r_cpu_serial_number; GCT_TLV gct$r_cpu_revision_level; } SUBPKT_CPU_FRU5; /* */ /* MEMORY Resouce subpacket ( Class 1 Type 3) */ /* */ #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 _subpkt_mem_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_mem_sub; unsigned __int64 gct$iq_mem_id; unsigned int gct$il_mem_reserved; unsigned int gct$il_mem_register_count; } SUBPKT_MEM_FRU5; /* */ /* BUSBRIDGE Resouce subpacket ( Class 1 Type 4) */ /* */ #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 _subpkt_bridge_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_bridge_sub; unsigned short int gct$iw_bridge_level; unsigned short int gct$iw_bridge_type; unsigned int gct$il_bridge_register_count; unsigned __int64 gct$iq_bridge_physical_addr; } SUBPKT_BRIDGE_FRU5; #define GCT$K_BRIDGE_LVL_PRIMARY 1 #define GCT$K_BRIDGE_LVL_SECONDARY 2 #define GCT$K_BRIDGE_LVL_TERTIARY 3 #define GCT$K_BRIDGE_TYPE_HOSE 1 #define GCT$K_BRIDGE_TYPE_PCI 2 #define GCT$K_BRIDGE_TYPE_XMI 3 #define GCT$K_BRIDGE_TYPE_FBUS 4 #define GCT$K_BRIDGE_TYPE_VME 5 #define GCT$K_BRIDGE_TYPE_ISA 6 #define GCT$K_BRIDGE_TYPE_LAST 7 /* */ /* PCI Resouce subpacket ( Class 1 Type 5) */ /* */ #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 _subpkt_pci_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_pci_sub; unsigned __int64 gct$iq_pci_config_addr; unsigned __int64 gct$iq_pci_config_head0; unsigned __int64 gct$iq_pci_config_head1; unsigned __int64 gct$iq_pci_config_head2; unsigned __int64 gct$iq_pci_config_head3; unsigned __int64 gct$iq_pci_config_head4; unsigned __int64 gct$iq_pci_config_head5; unsigned __int64 gct$iq_pci_config_head6; unsigned __int64 gct$iq_pci_config_head7; } SUBPKT_PCI_FRU5; /* */ /* Cache Resouce subpacket ( Class 1 Type 7 ) */ /* */ #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 _subpkt_cache_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_cache_sub; unsigned short int gct$iw_cache_level; unsigned short int gct$iw_cache_speed; unsigned short int gct$iw_cache_size; unsigned short int gct$iw_cache_size_avail; unsigned short int gct$iw_cache_wp; unsigned short int gct$iw_cache_ec; unsigned short int gct$iw_cache_type; unsigned short int gct$iw_cache_state; } SUBPKT_CACHE_FRU5; /* */ /* CACHE types */ /* */ #define GCT$K_CACHE_OTHER 1 /* */ #define GCT$K_CACHE_UNKNOWN 2 /* */ #define GCT$K_CACHE_LVL_PRIMARY 3 /* 1st level */ #define GCT$K_CACHE_LVL_SECONDARY 4 /* 2nd level */ #define GCT$K_CACHE_LVL_TERTIARY 5 /* 3rd level */ #define GCT$K_CACHE_LAST 6 /* */ #define GCT$K_CACHE_WP_WRITEBACK 3 #define GCT$K_CACHE_WP_WRITETHROUGH 4 #define GCT$K_CACHE_WP_LATEWRITE 5 #define GCT$K_CACHE_EC_NONE 3 #define GCT$K_CACHE_EC_PARITY 4 #define GCT$K_CACHE_EC_SINGLEBITECC 5 #define GCT$K_CACHE_EC_MULTIBITECC 6 #define GCT$K_CACHE_TYPE_INSTRUCTION 3 #define GCT$K_CACHE_TYPE_DATA 4 #define GCT$K_CACHE_TYPE_UNIFIED 5 #define GCT$K_CACHE_STAT_ENABLED 3 #define GCT$K_CACHE_STAT_DISABLED 4 #define GCT$K_CACHE_STAT_NOTAPPLY 5 /* */ /* Power Resouce subpacket ( Class 1 Type 8 ) */ /* */ #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 _subpkt_power_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_power_sub; unsigned int gct$il_power_fru_count; unsigned int gct$il_power_fru; unsigned short int gct$iw_power_type; unsigned short int gct$iw_power_id; unsigned int gct$il_power_status; } SUBPKT_POWER_FRU5; #define GCT$K_POWER_PS_TYPE_DC 1 #define GCT$K_POWER_PS_TYPE_AC 2 #define GCT$K_POWER_PS_TYPE_GNDCUR 3 #define GCT$K_POWER_PS_TYPE_BBU 4 #define GCT$K_POWER_PS_TYPE_UPS 5 /* */ /* Cooling Resouce subpacket ( Class 1 Type 9 ) */ /* */ #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 _subpkt_cooling_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_cooling_sub; unsigned int gct$il_cooling_fru_count; unsigned int gct$il_cooling_fru; unsigned short int gct$iw_cooling_type; unsigned short int gct$iw_cooling_id; unsigned int gct$il_cooling_status; } SUBPKT_COOLING_FRU5; /* */ /* Bus Resouce subpacket ( Class 1 Type 17 ) */ /* */ #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 _subpkt_bus_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_bus_sub; unsigned __int64 gct$iq_bus_id; unsigned int gct$il_bus_reserved; unsigned int gct$il_bus_register_count; } SUBPKT_BUS_FRU5; /* */ /* CSL Resouce subpacket ( Class 1 Type 20 ) */ /* */ #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 _subpkt_csl_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_csl_sub; unsigned int gct$il_csl_reset_reason; unsigned int gct$il_csl_ev_count; GCT_TLV gct$r_csl_srm_part_number; GCT_TLV gct$r_csl_srm_rev; GCT_TLV gct$r_csl_alphabios_part_number; GCT_TLV gct$r_csl_alphabios_rev; } SUBPKT_CSL_FRU5; #define GCT$K_CSL_UNKNOWN_RESET 0 #define GCT$K_CSL_SOFT_RESET 2 #define GCT$K_CSL_HARD_RESET 4 #define GCT$K_CSL_OCP_RESET 8 #define GCT$K_CSL_REMOTE_RESET 16 /* */ /* PCI VPD Resouce subpacket ( Class 1 Type 30 ) */ /* */ #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 _subpkt_vpd_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_vpd_sub; unsigned __int64 gct$iq_vpd_load_id; unsigned __int64 gct$iq_vpd_rom_level; unsigned __int64 gct$iq_vpd_rom_rev; unsigned __int64 gct$iq_vpd_net_addr; unsigned __int64 gct$iq_vpd_dev_driv_level; unsigned __int64 gct$iq_vpd_diag_level; unsigned __int64 gct$iq_vpd_load_ucode_level; unsigned __int64 gct$iq_vpd_bin_func_num; } SUBPKT_VPD_FRU5; /* */ /* SMB Resouce subpacket ( Class 1 Type 31 ) */ /* */ #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 _subpkt_smb_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_smb_sub; unsigned __int64 gct$iq_smb_id; unsigned int gct$il_smb_reserved; unsigned int gct$il_smb_register_count; } SUBPKT_SMB_FRU5; /* */ /* RMC Resouce subpacket ( Class 1 Type 41 ) */ /* */ #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 _subpkt_rmc_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_rmc_sub; unsigned __int64 gct$iq_rmc_id; unsigned int gct$il_rmc_pic_hw_rev; unsigned int gct$il_rmc_pic_fw_rev; } SUBPKT_RMC_FRU5; /* */ /* SENSOR Resouce subpacket ( Class 1 Type 42 ) */ /* */ #define GCT$M_SENSOR_PROP_STATUS 0x1 #define GCT$M_SENSOR_PROP_VALUE 0x2 #define GCT$M_SENSOR_PROP_WRITEABLE 0x4 #define GCT$M_SENSOR_PROP_BITFIELD 0x8 #define GCT$M_SENSOR_PROP_FILL 0xFFFFFFF0 #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 _subpkt_sensor_fru5 { #pragma __nomember_alignment GCT_SUBPACK gct$r_sensor_sub; unsigned int gct$il_sensor_fru_count; unsigned int gct$il_sensor_fru_offset; __union { unsigned __int64 gct$iq_sensor_console_id; __struct { unsigned int gct$il_sensor_console_id; unsigned int gct$il_sensor_bitfield; } gct$r_sensor_console_id_fields; } gct$r_sensor_console_id_overlay; unsigned int gct$il_sensor_class; __union { unsigned int gct$il_sensor_prop; /* Sensor properties */ __struct { unsigned gct$v_sensor_prop_status : 1; unsigned gct$v_sensor_prop_value : 1; unsigned gct$v_sensor_prop_writeable : 1; unsigned gct$v_sensor_prop_bitfield : 1; unsigned gct$v_sensor_prop_fill : 28; } gct$r_sensor_prop_fields; } gct$r_sensor_prop_overlay; } SUBPKT_SENSOR_FRU5; #if !defined(__VAXC) #define gct$iq_sensor_console_id gct$r_sensor_console_id_overlay.gct$iq_sensor_console_id #define gct$il_sensor_console_id gct$r_sensor_console_id_overlay.gct$r_sensor_console_id_fields.gct$il_sensor_console_id #define gct$il_sensor_bitfield gct$r_sensor_console_id_overlay.gct$r_sensor_console_id_fields.gct$il_sensor_bitfield #define gct$il_sensor_prop gct$r_sensor_prop_overlay.gct$il_sensor_prop #define gct$v_sensor_prop_status gct$r_sensor_prop_overlay.gct$r_sensor_prop_fields.gct$v_sensor_prop_status #define gct$v_sensor_prop_value gct$r_sensor_prop_overlay.gct$r_sensor_prop_fields.gct$v_sensor_prop_value #define gct$v_sensor_prop_writeable gct$r_sensor_prop_overlay.gct$r_sensor_prop_fields.gct$v_sensor_prop_writeable #define gct$v_sensor_prop_bitfield gct$r_sensor_prop_overlay.gct$r_sensor_prop_fields.gct$v_sensor_prop_bitfield #endif /* #if !defined(__VAXC) */ #define GCT$K_SENSOR_CLASS_FAN 1 #define GCT$K_SENSOR_CLASS_TEMPERATURE 2 #define GCT$K_SENSOR_CLASS_AC 3 #define GCT$K_SENSOR_CLASS_DC 4 #define GCT$K_SENSOR_CLASS_BATTERY 5 /* */ /* Define the header extension structure. Offset to by hd_extension */ /* in the common header. If zero, no extended header information is */ /* present for the node. */ /* */ #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 _gct_hd_ext { #pragma __nomember_alignment unsigned int gct$il_hd_ext_fru_count; GCT_HANDLE gct$il_hd_ext_fru; unsigned int gct$il_hd_ext_subpkt_count; unsigned int gct$il_hd_ext_subpkt_offset; } GCT_HD_EXT; #define GCT$K_NODE_HARDWARE 1 #define GCT$K_NODE_HOTSWAP 2 #define GCT$K_NODE_UNAVAILABLE 4 #define GCT$K_NODE_HW_TEMPLATE 8 #define GCT$K_NODE_INITIALIZED 16 #define GCT$K_NODE_CPU_PRIMARY 32 #define GCT$K_NODE_IN_CONSOLE 64 #define GCT$K_NODE_RSRVD_7_31 -128 #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 /* __GCTDEF_LOADED */