gct.h 1003 B

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