0001
0002 #ifndef __ALPHA_GCT_H
0003 #define __ALPHA_GCT_H
0004
0005 typedef u64 gct_id;
0006 typedef u64 gct6_handle;
0007
0008 typedef struct __gct6_node {
0009 u8 type;
0010 u8 subtype;
0011 u16 size;
0012 u32 hd_extension;
0013 gct6_handle owner;
0014 gct6_handle active_user;
0015 gct_id id;
0016 u64 flags;
0017 u16 rev;
0018 u16 change_counter;
0019 u16 max_child;
0020 u16 reserved1;
0021 gct6_handle saved_owner;
0022 gct6_handle affinity;
0023 gct6_handle parent;
0024 gct6_handle next;
0025 gct6_handle prev;
0026 gct6_handle child;
0027 u64 fw_flags;
0028 u64 os_usage;
0029 u64 fru_id;
0030 u32 checksum;
0031 u32 magic;
0032 } gct6_node;
0033
0034 typedef struct {
0035 u8 type;
0036 u8 subtype;
0037 void (*callout)(gct6_node *);
0038 } gct6_search_struct;
0039
0040 #define GCT_NODE_MAGIC 0x59584c47
0041
0042
0043
0044
0045 #define GCT_TYPE_HOSE 0x0E
0046
0047
0048
0049
0050 #define GCT_SUBTYPE_IO_PORT_MODULE 0x2C
0051
0052 #define GCT_NODE_PTR(off) ((gct6_node *)((char *)hwrpb + \
0053 hwrpb->frut_offset + \
0054 (gct6_handle)(off))) \
0055
0056 int gct6_find_nodes(gct6_node *, gct6_search_struct *);
0057
0058 #endif
0059