59 lines
		
	
	
	
		
			1,003 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
	
		
			1,003 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #ifndef __ALPHA_GCT_H
 | ||
|  | #define __ALPHA_GCT_H
 | ||
|  | 
 | ||
|  | typedef u64 gct_id; | ||
|  | typedef u64 gct6_handle; | ||
|  | 
 | ||
|  | typedef struct __gct6_node { | ||
|  | 	u8 type;	 | ||
|  | 	u8 subtype; | ||
|  | 	u16 size; | ||
|  | 	u32 hd_extension; | ||
|  | 	gct6_handle owner; | ||
|  | 	gct6_handle active_user; | ||
|  | 	gct_id id; | ||
|  | 	u64 flags; | ||
|  | 	u16 rev; | ||
|  | 	u16 change_counter; | ||
|  | 	u16 max_child; | ||
|  | 	u16 reserved1; | ||
|  | 	gct6_handle saved_owner; | ||
|  | 	gct6_handle affinity; | ||
|  | 	gct6_handle parent; | ||
|  | 	gct6_handle next; | ||
|  | 	gct6_handle prev; | ||
|  | 	gct6_handle child; | ||
|  | 	u64 fw_flags; | ||
|  | 	u64 os_usage; | ||
|  | 	u64 fru_id; | ||
|  | 	u32 checksum; | ||
|  | 	u32 magic;	/* 'GLXY' */ | ||
|  | } gct6_node; | ||
|  | 
 | ||
|  | typedef struct { | ||
|  | 	u8 type;	 | ||
|  | 	u8 subtype; | ||
|  | 	void (*callout)(gct6_node *); | ||
|  | } gct6_search_struct; | ||
|  | 
 | ||
|  | #define GCT_NODE_MAGIC	  0x59584c47	/* 'GLXY' */
 | ||
|  | 
 | ||
|  | /* 
 | ||
|  |  * node types  | ||
|  |  */ | ||
|  | #define GCT_TYPE_HOSE			0x0E
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * node subtypes | ||
|  |  */ | ||
|  | #define GCT_SUBTYPE_IO_PORT_MODULE	0x2C
 | ||
|  | 
 | ||
|  | #define GCT_NODE_PTR(off) ((gct6_node *)((char *)hwrpb + 		\
 | ||
|  | 					 hwrpb->frut_offset + 		\ | ||
|  | 					 (gct6_handle)(off)))		\ | ||
|  | 
 | ||
|  | int gct6_find_nodes(gct6_node *, gct6_search_struct *); | ||
|  | 
 | ||
|  | #endif /* __ALPHA_GCT_H */
 | ||
|  | 
 |