| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef __ALPHA_GCT_H | 
|  | 2 | #define __ALPHA_GCT_H | 
|  | 3 |  | 
|  | 4 | typedef u64 gct_id; | 
|  | 5 | typedef u64 gct6_handle; | 
|  | 6 |  | 
|  | 7 | typedef struct __gct6_node { | 
|  | 8 | u8 type; | 
|  | 9 | u8 subtype; | 
|  | 10 | u16 size; | 
|  | 11 | u32 hd_extension; | 
|  | 12 | gct6_handle owner; | 
|  | 13 | gct6_handle active_user; | 
|  | 14 | gct_id id; | 
|  | 15 | u64 flags; | 
|  | 16 | u16 rev; | 
|  | 17 | u16 change_counter; | 
|  | 18 | u16 max_child; | 
|  | 19 | u16 reserved1; | 
|  | 20 | gct6_handle saved_owner; | 
|  | 21 | gct6_handle affinity; | 
|  | 22 | gct6_handle parent; | 
|  | 23 | gct6_handle next; | 
|  | 24 | gct6_handle prev; | 
|  | 25 | gct6_handle child; | 
|  | 26 | u64 fw_flags; | 
|  | 27 | u64 os_usage; | 
|  | 28 | u64 fru_id; | 
|  | 29 | u32 checksum; | 
|  | 30 | u32 magic;	/* 'GLXY' */ | 
|  | 31 | } gct6_node; | 
|  | 32 |  | 
|  | 33 | typedef struct { | 
|  | 34 | u8 type; | 
|  | 35 | u8 subtype; | 
|  | 36 | void (*callout)(gct6_node *); | 
|  | 37 | } gct6_search_struct; | 
|  | 38 |  | 
|  | 39 | #define GCT_NODE_MAGIC	  0x59584c47	/* 'GLXY' */ | 
|  | 40 |  | 
|  | 41 | /* | 
|  | 42 | * node types | 
|  | 43 | */ | 
|  | 44 | #define GCT_TYPE_HOSE			0x0E | 
|  | 45 |  | 
|  | 46 | /* | 
|  | 47 | * node subtypes | 
|  | 48 | */ | 
|  | 49 | #define GCT_SUBTYPE_IO_PORT_MODULE	0x2C | 
|  | 50 |  | 
|  | 51 | #define GCT_NODE_PTR(off) ((gct6_node *)((char *)hwrpb + 		\ | 
|  | 52 | hwrpb->frut_offset + 		\ | 
|  | 53 | (gct6_handle)(off)))		\ | 
|  | 54 |  | 
|  | 55 | int gct6_find_nodes(gct6_node *, gct6_search_struct *); | 
|  | 56 |  | 
|  | 57 | #endif /* __ALPHA_GCT_H */ | 
|  | 58 |  |