#include <stdio.h>
#include <inttypes.h>
#include "librtasevent_v4.h"
#include "librtasevent_v6.h"
Go to the source code of this file.
Data Structures | |
| struct | rtas_event_scn |
| Contains the data for a RETAS event section. More... | |
| struct | rtas_event |
| Anchor structure for parsed RTAS events. More... | |
| struct | rtas_date |
| definition of date format in rtas events More... | |
| struct | rtas_time |
| definition of timestamp in rtas events More... | |
| struct | rtas_event_hdr |
| Fixed header at the beginning of all RTAS events. More... | |
| struct | rtas_event_exthdr |
| RTAS optional extended error log header (12 bytes). More... | |
Defines | |
| #define | RTAS_EVENT_HDR 1 |
| #define | RTAS_EVENT_EXT_HDR 2 |
| #define | RTAS_EPOW_SCN 3 |
| #define | RTAS_IO_SCN 4 |
| #define | RTAS_CPU_SCN 5 |
| #define | RTAS_IBM_DIAG_SCN 6 |
| #define | RTAS_MEM_SCN 7 |
| #define | RTAS_POST_SCN 8 |
| #define | RTAS_IBM_SP_SCN 9 |
| #define | RTAS_VEND_SPECIFIC_SCN 10 |
| #define | RTAS_MAIN_A_SCN 11 |
| #define | RTAS_MAIN_B_SCN 12 |
| #define | RTAS_DUMP_SCN 13 |
| #define | RTAS_LRI_SCN 14 |
| #define | RTAS_MTMS_SCN 15 |
| #define | RTAS_PSRC_SCN 16 |
| #define | RTAS_SSRC_SCN 17 |
| #define | RTAS_SRC_SUBSCN 18 |
| #define | RTAS_FRU_SCN 19 |
| #define | RTAS_FRU_SUBSCN 20 |
| #define | RTAS_MAX_SCN_ID 20 |
| #define | RTAS_HDR_SEV_NO_ERROR 0 |
| #define | RTAS_HDR_SEV_EVENT 1 |
| #define | RTAS_HDR_SEV_WARNING 2 |
| #define | RTAS_HDR_SEV_ERROR_SYNC 3 |
| #define | RTAS_HDR_SEV_ERROR 4 |
| #define | RTAS_HDR_SEV_FATAL 5 |
| #define | RTAS_HDR_SEV_ALREADY_REPORTED 6 |
| #define | RTAS_HDR_DISP_FULLY_RECOVERED 0 |
| #define | RTAS_HDR_DISP_LIMITED_RECOVERY 1 |
| #define | RTAS_HDR_DISP_NOT_RECOVERED 2 |
| #define | RTAS_HDR_INIT_UNKNOWN 0 |
| #define | RTAS_HDR_INIT_CPU 1 |
| #define | RTAS_HDR_INIT_PCI 2 |
| #define | RTAS_HDR_INIT_ISA 3 |
| #define | RTAS_HDR_INIT_MEMORY 4 |
| #define | RTAS_HDR_INIT_HOT_PLUG 5 |
| #define | RTAS_HDR_TARGET_UNKNOWN 0 |
| #define | RTAS_HDR_TARGET_CPU 1 |
| #define | RTAS_HDR_TARGET_PCI 2 |
| #define | RTAS_HDR_TARGET_ISA 3 |
| #define | RTAS_HDR_TARGET_MEMORY 4 |
| #define | RTAS_HDR_TARGET_HOT_PLUG 5 |
| #define | RTAS_HDR_TYPE_RETRY 1 |
| #define | RTAS_HDR_TYPE_TCE_ERR 2 |
| #define | RTAS_HDR_TYPE_INTERN_DEV_FAIL 3 |
| #define | RTAS_HDR_TYPE_TIMEOUT 4 |
| #define | RTAS_HDR_TYPE_DATA_PARITY 5 |
| #define | RTAS_HDR_TYPE_ADDR_PARITY 6 |
| #define | RTAS_HDR_TYPE_CACHE_PARITY 7 |
| #define | RTAS_HDR_TYPE_ADDR_INVALID 8 |
| #define | RTAS_HDR_TYPE_ECC_UNCORRECTED 9 |
| #define | RTAS_HDR_TYPE_ECC_CORRECTED 10 |
| #define | RTAS_HDR_TYPE_EPOW 64 |
| #define | RTAS_HDR_TYPE_PLATFORM_ERROR 224 |
| #define | RTAS_HDR_TYPE_IBM_IO_EVENT 225 |
| #define | RTAS_HDR_TYPE_PLATFORM_INFO 226 |
| #define | RTAS_HDR_TYPE_RESOURCE_DEALLOC 227 |
| #define | RTAS_HDR_TYPE_DUMP_NOTIFICATION 228 |
| #define | RTAS_EXTHDR_FMT_CPU 1 |
| #define | RTAS_EXTHDR_FMT_MEMORY 2 |
| #define | RTAS_EXTHDR_FMT_IO 3 |
| #define | RTAS_EXTHDR_FMT_POST 4 |
| #define | RTAS_EXTHDR_FMT_EPOW 5 |
| #define | RTAS_EXTHDR_FMT_IBM_DIAG 12 |
| #define | RTAS_EXTHDR_FMT_IBM_SP 13 |
| #define | RTAS_EXTHDR_FMT_VEND_SPECIFIC_1 14 |
| #define | RTAS_EXTHDR_FMT_VEND_SPECIFIC_2 15 |
Functions | |
| struct rtas_event * | parse_rtas_event (char *, int) |
| parse an rtas event creating a populated rtas_event structure | |
| int | cleanup_rtas_event (struct rtas_event *) |
| free the structures related to a parsed rtas event | |
| struct rtas_event_scn * | rtas_get_event_hdr_scn (struct rtas_event *) |
| Retrieve the Main RTAS event header. | |
| struct rtas_event_scn * | rtas_get_event_exthdr_scn (struct rtas_event *) |
| Retrieve the RTAS Event extended header. | |
| struct rtas_event_scn * | rtas_get_epow_scn (struct rtas_event *) |
| Retrieve the Environmental and Power Warning (EPOW) section. | |
| struct rtas_event_scn * | rtas_get_io_scn (struct rtas_event *) |
| Retrieve the I/O section of the RTAS Event. | |
| struct rtas_event_scn * | rtas_get_cpu_scn (struct rtas_event *) |
| Retrieve the CPU section of the RTAS Event. | |
| struct rtas_event_scn * | rtas_get_ibmdiag_scn (struct rtas_event *) |
| Retrieve the IBM Diagnostic Log section of the RTAS Event. | |
| struct rtas_event_scn * | rtas_get_mem_scn (struct rtas_event *) |
| Retrieve the Memory Detected failure section of the RTAS Event. | |
| struct rtas_event_scn * | rtas_get_post_scn (struct rtas_event *) |
| Retrieve the Power-On Self Test (POST) section of the RTAS Event. | |
| struct rtas_event_scn * | rtas_get_ibm_sp_scn (struct rtas_event *) |
| Retrieve the IBM Service Processor Log section of the RTAS Event. | |
| struct rtas_event_scn * | rtas_get_vend_specific_scn (struct rtas_event *) |
| retrive a vendor specific section of the RTAS event | |
| struct rtas_event_scn * | rtas_get_main_a_scn (struct rtas_event *) |
| retrieve the Main A section of an RTAS Event | |
| struct rtas_event_scn * | rtas_get_main_b_scn (struct rtas_event *) |
| retrieve the main b section for an RTAS event. | |
| struct rtas_event_scn * | rtas_get_dump_scn (struct rtas_event *) |
| Retrieve the Dump Locator section of the RTAS Event. | |
| struct rtas_event_scn * | rtas_get_lri_scn (struct rtas_event *) |
| Retrieve the Logical Resource ID (LRI) section of the RTAS Event. | |
| struct rtas_event_scn * | rtas_get_mtms_scn (struct rtas_event *) |
| retrieve the Failing Enclosure (MTMS) section of an RTAS Event | |
| struct rtas_event_scn * | rtas_get_src_scn (struct rtas_event *) |
| retrieve the RTAS src section for a RTAS event | |
| int | rtas_print_scn (FILE *, struct rtas_event_scn *, int) |
| print the contents of the specified rtas event section | |
| int | rtas_print_event (FILE *, struct rtas_event *, int) |
| print the contents of an entire rtas event | |
| int | rtas_print_raw_event (FILE *, struct rtas_event *) |
| Dump the entire rtas event in raw format. | |
| int | rtas_set_print_width (int) |
| set the output character width for librtasevent | |
librtasevent usage: The librtasevent library is meant to place the structure definitions, parsing and printing of RTAS events into a common place. The use of librtasevent is easiest through the following interfaces:
parse_rtas_event() - This takes a buffer containing an RTAS event in binary form and returns a pointer to an rtas_event struct. This struct has a list of rtas_event_scn objects hanging off of it for each section of the rtas event.
This presents the user with a broken down representation of the RTAS event that can then be easily searched for any relevant information or passed to either rtas_print_event() to print the entire RTAS event or the rtas_print_event_scn() to print a particular section of the RTAS event.
When finished a call to rtas_cleanup_event() will free all of the data structuires associated with the RTAS event.
Copyright (C) 2005 IBM Corporation Common Public License Version 1.0 (see COPYRIGHT)
| #define RTAS_CPU_SCN 5 |
| #define RTAS_DUMP_SCN 13 |
| #define RTAS_EPOW_SCN 3 |
| #define RTAS_EVENT_EXT_HDR 2 |
| #define RTAS_EVENT_HDR 1 |
| #define RTAS_EXTHDR_FMT_CPU 1 |
| #define RTAS_EXTHDR_FMT_EPOW 5 |
| #define RTAS_EXTHDR_FMT_IBM_DIAG 12 |
| #define RTAS_EXTHDR_FMT_IBM_SP 13 |
| #define RTAS_EXTHDR_FMT_IO 3 |
| #define RTAS_EXTHDR_FMT_MEMORY 2 |
| #define RTAS_EXTHDR_FMT_POST 4 |
| #define RTAS_EXTHDR_FMT_VEND_SPECIFIC_1 14 |
| #define RTAS_EXTHDR_FMT_VEND_SPECIFIC_2 15 |
| #define RTAS_FRU_SCN 19 |
| #define RTAS_FRU_SUBSCN 20 |
| #define RTAS_HDR_DISP_FULLY_RECOVERED 0 |
| #define RTAS_HDR_DISP_LIMITED_RECOVERY 1 |
| #define RTAS_HDR_DISP_NOT_RECOVERED 2 |
| #define RTAS_HDR_INIT_CPU 1 |
| #define RTAS_HDR_INIT_HOT_PLUG 5 |
| #define RTAS_HDR_INIT_ISA 3 |
| #define RTAS_HDR_INIT_MEMORY 4 |
| #define RTAS_HDR_INIT_PCI 2 |
| #define RTAS_HDR_INIT_UNKNOWN 0 |
| #define RTAS_HDR_SEV_ALREADY_REPORTED 6 |
| #define RTAS_HDR_SEV_ERROR 4 |
| #define RTAS_HDR_SEV_ERROR_SYNC 3 |
| #define RTAS_HDR_SEV_EVENT 1 |
| #define RTAS_HDR_SEV_FATAL 5 |
| #define RTAS_HDR_SEV_NO_ERROR 0 |
| #define RTAS_HDR_SEV_WARNING 2 |
| #define RTAS_HDR_TARGET_CPU 1 |
| #define RTAS_HDR_TARGET_HOT_PLUG 5 |
| #define RTAS_HDR_TARGET_ISA 3 |
| #define RTAS_HDR_TARGET_MEMORY 4 |
| #define RTAS_HDR_TARGET_PCI 2 |
| #define RTAS_HDR_TARGET_UNKNOWN 0 |
| #define RTAS_HDR_TYPE_ADDR_INVALID 8 |
| #define RTAS_HDR_TYPE_ADDR_PARITY 6 |
| #define RTAS_HDR_TYPE_CACHE_PARITY 7 |
| #define RTAS_HDR_TYPE_DATA_PARITY 5 |
| #define RTAS_HDR_TYPE_DUMP_NOTIFICATION 228 |
| #define RTAS_HDR_TYPE_ECC_CORRECTED 10 |
| #define RTAS_HDR_TYPE_ECC_UNCORRECTED 9 |
| #define RTAS_HDR_TYPE_EPOW 64 |
| #define RTAS_HDR_TYPE_IBM_IO_EVENT 225 |
| #define RTAS_HDR_TYPE_INTERN_DEV_FAIL 3 |
| #define RTAS_HDR_TYPE_PLATFORM_ERROR 224 |
| #define RTAS_HDR_TYPE_PLATFORM_INFO 226 |
| #define RTAS_HDR_TYPE_RESOURCE_DEALLOC 227 |
| #define RTAS_HDR_TYPE_RETRY 1 |
| #define RTAS_HDR_TYPE_TCE_ERR 2 |
| #define RTAS_HDR_TYPE_TIMEOUT 4 |
| #define RTAS_IBM_DIAG_SCN 6 |
| #define RTAS_IBM_SP_SCN 9 |
| #define RTAS_IO_SCN 4 |
| #define RTAS_LRI_SCN 14 |
| #define RTAS_MAIN_A_SCN 11 |
| #define RTAS_MAIN_B_SCN 12 |
| #define RTAS_MAX_SCN_ID 20 |
| #define RTAS_MEM_SCN 7 |
| #define RTAS_MTMS_SCN 15 |
| #define RTAS_POST_SCN 8 |
| #define RTAS_PSRC_SCN 16 |
| #define RTAS_SRC_SUBSCN 18 |
| #define RTAS_SSRC_SCN 17 |
| #define RTAS_VEND_SPECIFIC_SCN 10 |
| int cleanup_rtas_event | ( | struct rtas_event * | re | ) |
| struct rtas_event* parse_rtas_event | ( | char * | buf, | |
| int | buflen | |||
| ) | [read] |
parse_rtas_event
| buf | buffer containing the binary RTAS event | |
| buflen | length of the buffer 'buf' |
| struct rtas_event_scn* rtas_get_cpu_scn | ( | struct rtas_event * | re | ) | [read] |
| struct rtas_event_scn* rtas_get_dump_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_dump_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_epow_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_epow_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_event_exthdr_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_event_exthdr_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_event_hdr_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_event_hdr_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_ibm_sp_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_ibm_sp_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_ibmdiag_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_ibmdiag_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_io_scn | ( | struct rtas_event * | re | ) | [read] |
| struct rtas_event_scn* rtas_get_lri_scn | ( | struct rtas_event * | re | ) | [read] |
| struct rtas_event_scn* rtas_get_main_a_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_main_a_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_main_b_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_main_b_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_mem_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_mem_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_mtms_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_mtms_scn
| re | rtas_event pointer |
| struct rtas_event_scn* rtas_get_post_scn | ( | struct rtas_event * | re | ) | [read] |
| struct rtas_event_scn* rtas_get_src_scn | ( | struct rtas_event * | re | ) | [read] |
| struct rtas_event_scn* rtas_get_vend_specific_scn | ( | struct rtas_event * | re | ) | [read] |
rtas_get_vend_specific
| re | parsed rtas event |
| int rtas_print_event | ( | FILE * | stream, | |
| struct rtas_event * | re, | |||
| int | verbosity | |||
| ) |
rtas_print_event
| stream | output stream to print to | |
| re | rtas_event pointer to print out | |
| verbosity | verbose level of output |
| int rtas_print_raw_event | ( | FILE * | stream, | |
| struct rtas_event * | re | |||
| ) |
rtas_print_raw_event
| stream | ouput stream to write to | |
| re | rtas_event pointer |
| int rtas_print_scn | ( | FILE * | stream, | |
| struct rtas_event_scn * | res, | |||
| int | verbosity | |||
| ) |
rtas_print_scn
| stream | output stream to write to | |
| res | rtas_event_scn pointer to print | |
| verbosity | verbose level for output |
| int rtas_set_print_width | ( | int | width | ) |
rtas_set_print_width
| width | character width of output |
1.5.3