librtasevent_src/librtasevent.h File Reference

Structure and Interface definitions for librtasevent. More...

#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_eventparse_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_scnrtas_get_event_hdr_scn (struct rtas_event *)
 Retrieve the Main RTAS event header.
struct rtas_event_scnrtas_get_event_exthdr_scn (struct rtas_event *)
 Retrieve the RTAS Event extended header.
struct rtas_event_scnrtas_get_epow_scn (struct rtas_event *)
 Retrieve the Environmental and Power Warning (EPOW) section.
struct rtas_event_scnrtas_get_io_scn (struct rtas_event *)
 Retrieve the I/O section of the RTAS Event.
struct rtas_event_scnrtas_get_cpu_scn (struct rtas_event *)
 Retrieve the CPU section of the RTAS Event.
struct rtas_event_scnrtas_get_ibmdiag_scn (struct rtas_event *)
 Retrieve the IBM Diagnostic Log section of the RTAS Event.
struct rtas_event_scnrtas_get_mem_scn (struct rtas_event *)
 Retrieve the Memory Detected failure section of the RTAS Event.
struct rtas_event_scnrtas_get_post_scn (struct rtas_event *)
 Retrieve the Power-On Self Test (POST) section of the RTAS Event.
struct rtas_event_scnrtas_get_ibm_sp_scn (struct rtas_event *)
 Retrieve the IBM Service Processor Log section of the RTAS Event.
struct rtas_event_scnrtas_get_vend_specific_scn (struct rtas_event *)
 retrive a vendor specific section of the RTAS event
struct rtas_event_scnrtas_get_main_a_scn (struct rtas_event *)
 retrieve the Main A section of an RTAS Event
struct rtas_event_scnrtas_get_main_b_scn (struct rtas_event *)
 retrieve the main b section for an RTAS event.
struct rtas_event_scnrtas_get_dump_scn (struct rtas_event *)
 Retrieve the Dump Locator section of the RTAS Event.
struct rtas_event_scnrtas_get_lri_scn (struct rtas_event *)
 Retrieve the Logical Resource ID (LRI) section of the RTAS Event.
struct rtas_event_scnrtas_get_mtms_scn (struct rtas_event *)
 retrieve the Failing Enclosure (MTMS) section of an RTAS Event
struct rtas_event_scnrtas_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


Detailed Description

This provides the structure and interface definitions for librtasevent. Also see librtasevent_v4.h and librtasevent_v6.h for additional structure definitions particular those event versions.

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)

Author:
Nathan Fontenot <nfont@austin.ibm.com>

Define Documentation

#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


Function Documentation

int cleanup_rtas_event ( struct rtas_event re  ) 

cleanup_rtas_event

Parameters:
re rtas_event pointer
Returns:
0 on success, !0 on failure

struct rtas_event* parse_rtas_event ( char *  buf,
int  buflen 
) [read]

parse_rtas_event

Parameters:
buf buffer containing the binary RTAS event
buflen length of the buffer 'buf'
Returns:
pointer to rtas_event

struct rtas_event_scn* rtas_get_cpu_scn ( struct rtas_event re  )  [read]

rtas_get_cpu_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for cpu section

struct rtas_event_scn* rtas_get_dump_scn ( struct rtas_event re  )  [read]

rtas_get_dump_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer to dump locator section

struct rtas_event_scn* rtas_get_epow_scn ( struct rtas_event re  )  [read]

rtas_get_epow_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for the epow section

struct rtas_event_scn* rtas_get_event_exthdr_scn ( struct rtas_event re  )  [read]

rtas_get_event_exthdr_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for RTAS extended header section

struct rtas_event_scn* rtas_get_event_hdr_scn ( struct rtas_event re  )  [read]

rtas_get_event_hdr_scn

Parameters:
re rtas_event pointer
Returns:
pointer to rtas_event_scn for main rtas event header

struct rtas_event_scn* rtas_get_ibm_sp_scn ( struct rtas_event re  )  [read]

rtas_get_ibm_sp_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for IBM SP section

struct rtas_event_scn* rtas_get_ibmdiag_scn ( struct rtas_event re  )  [read]

rtas_get_ibmdiag_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for diagnostics log section

struct rtas_event_scn* rtas_get_io_scn ( struct rtas_event re  )  [read]

rtas_get_io_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for i/o section

struct rtas_event_scn* rtas_get_lri_scn ( struct rtas_event re  )  [read]

rtas_get_lri_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for lri section

struct rtas_event_scn* rtas_get_main_a_scn ( struct rtas_event re  )  [read]

rtas_get_main_a_scn

Parameters:
re rtas_event pointer
Returns:
pointer to rtas_event_scn on success, NULL on failure

struct rtas_event_scn* rtas_get_main_b_scn ( struct rtas_event re  )  [read]

rtas_get_main_b_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer to main b section, NULL on failure

struct rtas_event_scn* rtas_get_mem_scn ( struct rtas_event re  )  [read]

rtas_get_mem_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for memory section

struct rtas_event_scn* rtas_get_mtms_scn ( struct rtas_event re  )  [read]

rtas_get_mtms_scn

Parameters:
re rtas_event pointer
Returns:
pointer to rtas_event_scn on success, NULL on failure

struct rtas_event_scn* rtas_get_post_scn ( struct rtas_event re  )  [read]

rtas_get_post_ecn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for post section

struct rtas_event_scn* rtas_get_src_scn ( struct rtas_event re  )  [read]

rtas_get_src_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer for a SRC section

struct rtas_event_scn* rtas_get_vend_specific_scn ( struct rtas_event re  )  [read]

rtas_get_vend_specific

Parameters:
re parsed rtas event
Returns:
reference to a rtas_event_scn on success, NULL on failure

int rtas_print_event ( FILE *  stream,
struct rtas_event re,
int  verbosity 
)

rtas_print_event

Parameters:
stream output stream to print to
re rtas_event pointer to print out
verbosity verbose level of output
Returns:
number of bytes written

int rtas_print_raw_event ( FILE *  stream,
struct rtas_event re 
)

rtas_print_raw_event

Parameters:
stream ouput stream to write to
re rtas_event pointer
Returns:
number of bytes written

int rtas_print_scn ( FILE *  stream,
struct rtas_event_scn res,
int  verbosity 
)

rtas_print_scn

Parameters:
stream output stream to write to
res rtas_event_scn pointer to print
verbosity verbose level for output
Returns:
number of bytes written

int rtas_set_print_width ( int  width  ) 

rtas_set_print_width

Parameters:
width character width of output
Returns:
0 on success, !0 on failure


Generated on Sat Sep 22 08:52:51 2007 for librtasevent by  doxygen 1.5.3