00001 00011 #ifndef _H_RE_V6_RTAS_EVENT 00012 #define _H_RE_V6_RTAS_EVENT 00013 00014 #include <inttypes.h> 00015 00024 struct rtas_v6_hdr { 00025 char id[2]; 00026 uint32_t length:16; 00027 uint32_t version:8; 00028 uint32_t subtype:8; 00029 uint32_t creator_comp_id:16; 00030 }; 00031 00032 /* defines for the rtas_event_scn id */ 00033 #define RTAS_DUMP_SCN_ID "DH" 00034 #define RTAS_EPOW_SCN_ID "EP" 00035 #define RTAS_HMC_SCN_ID "HM" 00036 #define RTAS_IO_SCN_ID "IE" 00037 #define RTAS_IP_SCN_ID "LP" 00038 #define RTAS_LRI_SCN_ID "LR" 00039 #define RTAS_MI_SCN_ID "MI" 00040 #define RTAS_MTMS_SCN_ID "MT" 00041 #define RTAS_PSRC_SCN_ID "PS" 00042 #define RTAS_SSRC_SCN_ID "SS" 00043 #define RTAS_SW_SCN_ID "SW" 00044 #define RTAS_UDD_SCN_ID "UD" 00045 00050 struct rtas_priv_hdr_scn { 00051 struct scn_header shdr; 00052 struct rtas_v6_hdr v6hdr; 00053 00054 struct rtas_date date; 00055 struct rtas_time time; 00056 00057 uint32_t /* reserved */:32; 00058 uint32_t /* reserved */:32; 00059 00060 char creator_id; 00061 #define RTAS_PH_CREAT_SERVICE_PROC 'E' 00062 #define RTAS_PH_CREAT_HYPERVISOR 'H' 00063 #define RTAS_PH_CREAT_POWER_CONTROL 'W' 00064 #define RTAS_PH_CREAT_PARTITION_FW 'L' 00065 00066 uint32_t /* reserved */ :16; 00067 uint32_t scn_count:8; 00068 uint32_t /* reserved */ :32; 00069 00070 uint32_t creator_subid_hi; 00071 uint32_t creator_subid_lo; 00072 00073 uint32_t plid; 00074 uint32_t log_entry_id; 00076 char creator_subid_name[9]; 00077 }; 00078 00083 struct rtas_usr_hdr_scn { 00084 struct scn_header shdr; 00085 struct rtas_v6_hdr v6hdr; 00086 00087 uint32_t subsystem_id:8; 00088 uint32_t event_data:8; 00089 uint32_t event_severity:8; 00090 uint32_t event_type:8; 00091 #define RTAS_UH_TYPE_NA 0x00 00092 #define RTAS_UH_TYPE_INFO_ONLY 0x01 00093 #define RTAS_UH_TYPE_DUMP_NOTIFICATION 0x08 00094 #define RTAS_UH_TYPE_PREVIOUSLY_REPORTED 0x10 00095 #define RTAS_UH_TYPE_DECONFIG_USER 0x20 00096 #define RTAS_UH_TYPE_DECONFIG_SYSTEM 0x21 00097 #define RTAS_UH_TYPE_DECONFIG_NOTICE 0x22 00098 #define RTAS_UH_TYPE_RETURN_TO_NORMAL 0x30 00099 #define RTAS_UH_TYPE_CONCURRENT_MAINT 0x40 00100 #define RTAS_UH_TYPE_CAPACITY UPGRADE 0x60 00101 #define RTAS_UH_TYPE_RESOURCE_SPARING 0x70 00102 #define RTAS_UH_TYPE_DYNAMIC_RECONFIG 0x80 00103 #define RTAS_UH_TYPE_NORMAL_SHUTDOWN 0xD0 00104 #define RTAS_UH_TYPE_ABNORMAL_SHUTDOWN 0xE0 00105 00106 uint32_t /* reserved */:32; 00107 uint32_t /* reserved */:16; 00108 00109 uint32_t action:16; 00110 #define RTAS_UH_ACTION_SERVICE 0x8000 00111 #define RTAS_UH_ACTION_HIDDEN 0x4000 00112 #define RTAS_UH_ACTION_REPORT_EXTERNALLY 0x2000 00113 #define RTAS_UH_ACTION_HMC_ONLY 0x1000 00114 #define RTAS_UH_ACTION_CALL_HOME 0x0800 00115 #define RTAS_UH_ACTION_ISO_INCOMPLETE 0x0400 00116 00117 uint32_t /* reserved */ :32; 00118 }; 00119 00120 #define RE_USR_HDR_SCN_SZ 24 00121 00122 struct rtas_mtms { 00123 char model[9]; 00124 char serial_no[13]; 00125 }; 00126 00131 struct rtas_dump_scn { 00132 struct scn_header shdr; 00133 struct rtas_v6_hdr v6hdr; 00134 /*These defines are for the v6hdr.subtype field in dump sections */ 00135 #define RTAS_DUMP_SUBTYPE_FSP 0x01 00136 #define RTAS_DUMP_SUBTYPE_PLATFORM 0x02 00137 #define RTAS_DUMP_SUBTYPE_SMA 0x03 00138 #define RTAS_DUMP_SUBTYPE_POWER 0x04 00139 #define RTAS_DUMP_SUBTYPE_LOG 0x05 00140 00141 uint32_t id:32; 00142 uint32_t location:1; 00144 uint32_t fname_type:1; 00146 uint32_t size_valid:1; 00148 uint32_t /* reserved */ :5; 00149 uint32_t /* reserved */ :16; 00150 uint32_t id_len:8; 00152 uint32_t size_hi:32; 00153 uint32_t size_lo:32; 00154 char os_id[40]; 00155 }; 00156 00157 #define RE_V6_DUMP_SCN_SZ 64 00158 00159 00164 struct rtas_lri_scn { 00165 struct scn_header shdr; 00166 struct rtas_v6_hdr v6hdr; 00167 00168 uint32_t resource:8; 00169 #define RTAS_LRI_RES_PROC 0x10 00170 #define RTAS_LRI_RES_SHARED_PROC 0x11 00171 #define RTAS_LRI_RES_MEM_PAGE 0x40 00172 #define RTAS_LRI_RES_MEM_LMB 0x41 00173 00174 uint32_t /* reserved */ :8; 00175 uint32_t capacity:16; 00177 union { 00178 uint32_t _lri_cpu_id:32; 00179 uint32_t _lri_drc_index:32; 00180 uint32_t _lri_mem_addr_lo; 00182 } _lri_u1; 00183 #define lri_cpu_id _lri_u1._lri_cpu_id 00184 #define lri_drc_index _lri_u1._lri_drc_index 00185 #define lri_mem_addr_lo _lri_u1._lri_mem_addr_lo 00186 00187 uint32_t lri_mem_addr_hi:32; 00189 }; 00190 00191 #define RE_LRI_SCN_SZ 20 00192 00197 struct rtas_fru_hdr { 00198 struct rtas_fru_hdr *next; 00199 char id[2]; 00200 uint32_t length:8; 00201 uint32_t flags:8; 00202 }; 00203 00204 #define RE_FRU_HDR_SZ 4 00205 #define RE_FRU_HDR_OFFSET(x) ((char *)(x) + sizeof(struct rtas_fru_hdr *)) 00206 00211 struct rtas_fru_id_scn { 00212 struct rtas_fru_hdr fruhdr; 00213 00214 #define RTAS_FRUID_COMP_MASK 0xF0 00215 #define RTAS_FRUID_COMP_HARDWARE 0x10 00216 #define RTAS_FRUID_COMP_CODE 0x20 00217 #define RTAS_FRUID_COMP_CONFIG_ERROR 0x30 00218 #define RTAS_FRUID_COMP_MAINT_REQUIRED 0x40 00219 #define RTAS_FRUID_COMP_EXTERNAL 0x90 00220 #define RTAS_FRUID_COMP_EXTERNAL_CODE 0xA0 00221 #define RTAS_FRUID_COMP_TOOL 0xB0 00222 #define RTAS_FRUID_COMP_SYMBOLIC 0xC0 00223 00224 #define RTAS_FRUID_HAS_PART_NO 0x08 00225 #define RTAS_FRUID_HAS_CCIN 0x04 00226 #define RTAS_FRUID_HAS_PROC_ID 0x02 00227 #define RTAS_FRUID_HAS_SERIAL_NO 0x01 00228 00229 #define fruid_has_part_no(x) ((x)->fruhdr.flags & RTAS_FRUID_HAS_PART_NO) 00230 #define fruid_has_ccin(x) ((x)->fruhdr.flags & RTAS_FRUID_HAS_CCIN) 00231 #define fruid_has_proc_id(x) ((x)->fruhdr.flags & RTAS_FRUID_HAS_PROC_ID) 00232 #define fruid_has_serial_no(x) ((x)->fruhdr.flags & RTAS_FRUID_HAS_SERIAL_NO) 00233 00234 char part_no[8]; 00235 char procedure_id[8]; 00236 char ccin[5]; 00237 char serial_no[13]; 00238 }; 00239 00244 struct rtas_fru_pe_scn { 00245 struct rtas_fru_hdr fruhdr; 00246 struct rtas_mtms pce_mtms; 00247 char pce_name[32]; 00248 }; 00249 00254 struct fru_mru { 00255 uint32_t /* reserved */:24; 00256 char priority; 00257 uint32_t id; 00258 }; 00259 00264 struct rtas_fru_mr_scn { 00265 struct rtas_fru_hdr fruhdr; 00266 00267 #define frumr_num_callouts(x) ((x)->fruhdr.flags & 0x0F) 00268 00269 uint32_t /* reserved */:32; 00270 struct fru_mru mrus[15]; 00271 }; 00272 00277 struct rtas_fru_scn { 00278 uint32_t length:8; 00279 uint32_t type:4; 00280 uint32_t fru_id_included:1; 00281 uint32_t fru_subscn_included:3; 00282 00283 char priority; 00284 #define RTAS_FRU_PRIORITY_HIGH 'H' 00285 #define RTAS_FRU_PRIORITY_MEDIUM 'M' 00286 #define RTAS_FRU_PRIORITY_MEDIUM_A 'A' 00287 #define RTAS_FRU_PRIORITY_MEDIUM_B 'B' 00288 #define RTAS_FRU_PRIORITY_MEDIUM_C 'C' 00289 #define RTAS_FRU_PRIORITY_LOW 'L' 00290 00291 uint32_t loc_code_length:8; 00292 char loc_code[80]; 00293 struct rtas_fru_scn *next; 00294 struct rtas_fru_hdr *subscns; 00295 }; 00296 00297 #define RE_FRU_SCN_SZ 4 00298 00303 struct rtas_src_scn { 00304 struct scn_header shdr; 00305 struct rtas_v6_hdr v6hdr; 00306 00307 uint32_t version:8; 00308 char src_platform_data[7]; 00309 #define src_subscns_included(src) ((src)->src_platform_data[0] & 0x01) 00310 00311 uint32_t ext_refcode2:32; 00312 uint32_t ext_refcode3:32; 00313 uint32_t ext_refcode4:32; 00314 uint32_t ext_refcode5:32; 00316 uint32_t ext_refcode6:32; 00317 uint32_t ext_refcode7:32; 00318 uint32_t ext_refcode8:32; 00319 uint32_t ext_refcode9:32; 00321 char primary_refcode[36]; 00323 uint32_t subscn_id:8; 00324 uint32_t subscn_platform_data:8; 00325 uint32_t subscn_length:16; 00327 struct rtas_fru_scn *fru_scns; 00328 }; 00329 00330 #define RE_SRC_SCN_SZ 80 00331 #define RE_SRC_SUBSCN_SZ 4 00332 00337 struct rtas_mt_scn { 00338 struct scn_header shdr; 00339 struct rtas_v6_hdr v6hdr; 00340 struct rtas_mtms mtms; 00341 }; 00342 00346 struct rtas_v6_generic { 00347 struct scn_header shdr; 00348 struct rtas_v6_hdr v6hdr; 00349 char *data; 00350 }; 00351 00352 #endif 00353
1.5.5