1 #ifndef LINUX_POWERPC_PERF_HV_24X7_CATALOG_H_ 2 #define LINUX_POWERPC_PERF_HV_24X7_CATALOG_H_ 3 4 #include <linux/types.h> 5 6 /* From document "24x7 Event and Group Catalog Formats Proposal" v0.15 */ 7 8 struct hv_24x7_catalog_page_0 { 9 #define HV_24X7_CATALOG_MAGIC 0x32347837 /* "24x7" in ASCII */ 10 __be32 magic; 11 __be32 length; /* In 4096 byte pages */ 12 __be64 version; /* XXX: arbitrary? what's the meaning/useage/purpose? */ 13 __u8 build_time_stamp[16]; /* "YYYYMMDDHHMMSS\0\0" */ 14 __u8 reserved2[32]; 15 __be16 schema_data_offs; /* in 4096 byte pages */ 16 __be16 schema_data_len; /* in 4096 byte pages */ 17 __be16 schema_entry_count; 18 __u8 reserved3[2]; 19 __be16 event_data_offs; 20 __be16 event_data_len; 21 __be16 event_entry_count; 22 __u8 reserved4[2]; 23 __be16 group_data_offs; /* in 4096 byte pages */ 24 __be16 group_data_len; /* in 4096 byte pages */ 25 __be16 group_entry_count; 26 __u8 reserved5[2]; 27 __be16 formula_data_offs; /* in 4096 byte pages */ 28 __be16 formula_data_len; /* in 4096 byte pages */ 29 __be16 formula_entry_count; 30 __u8 reserved6[2]; 31 } __packed; 32 33 struct hv_24x7_event_data { 34 __be16 length; /* in bytes, must be a multiple of 16 */ 35 __u8 reserved1[2]; 36 __u8 domain; /* Chip = 1, Core = 2 */ 37 __u8 reserved2[1]; 38 __be16 event_group_record_offs; /* in bytes, must be 8 byte aligned */ 39 __be16 event_group_record_len; /* in bytes */ 40 41 /* in bytes, offset from event_group_record */ 42 __be16 event_counter_offs; 43 44 /* verified_state, unverified_state, caveat_state, broken_state, ... */ 45 __be32 flags; 46 47 __be16 primary_group_ix; 48 __be16 group_count; 49 __be16 event_name_len; 50 __u8 remainder[]; 51 /* __u8 event_name[event_name_len - 2]; */ 52 /* __be16 event_description_len; */ 53 /* __u8 event_desc[event_description_len - 2]; */ 54 /* __be16 detailed_desc_len; */ 55 /* __u8 detailed_desc[detailed_desc_len - 2]; */ 56 } __packed; 57 58 #endif 59