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  scn_header
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...
struct  rtas_epow_scn
 Common RTAS EPOW section. More...
struct  rtas_io_scn
 RTAS i/o section. More...

Defines

#define RE_SHDR_SZ   (sizeof(struct scn_header))
#define RE_SHDR_OFFSET(x)   ((char *)(x) + RE_SHDR_SZ)
#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_ERRLOG_SCN   10
#define RTAS_PRIV_HDR_SCN   11
#define RTAS_USR_HDR_SCN   12
#define RTAS_DUMP_SCN   13
#define RTAS_LRI_SCN   14
#define RTAS_MT_SCN   15
#define RTAS_PSRC_SCN   16
#define RTAS_SSRC_SCN   17
#define RTAS_GENERIC_SCN   18
#define RTAS_MAX_SCN_ID   19
#define RE_EVENT_OFFSET(re)   ((re)->buffer + (re)->offset)
#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 RE_EVENT_HDR_SZ   8
#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
#define RE_EXT_HDR_SZ   12
#define RTAS_EPOW_ACTION_RESET   0x00
#define RTAS_EPOW_ACTION_WARN_COOLING   0x01
#define RTAS_EPOW_ACTION_WARN_POWER   0x02
#define RTAS_EPOW_ACTION_SYSTEM_SHUTDOWN   0x03
#define RTAS_EPOW_ACTION_SYSTEM_HALT   0x04
#define RTAS_EPOW_ACTION_MAIN_ENCLOSURE   0x05
#define RTAS_EPOW_ACTION_POWER_OFF   0x07
#define RTAS_EPOW_MOD_NA   0x00
#define RTAS_EPOW_MOD_NORMAL_SHUTDOWN   0x01
#define RTAS_EPOW_MOD_UTILITY_POWER_LOSS   0x02
#define RTAS_EPOW_MOD_CRIT_FUNC_LOSS   0x03
#define RE_EPOW_V6_SCN_SZ   20
#define RTAS_IO_TYPE_DETECTED   0x01
#define RTAS_IO_TYPE_RECOVERED   0x02
#define RTAS_IO_TYPE_EVENT   0x03
#define RTAS_IO_TYPE_RPC_PASS_THRU   0x04
#define RTAS_IO_SCOPE_NA   0x00
#define RTAS_IO_SCOPE_RIO_HUB   0x36
#define RTAS_IO_SCOPE_RIO_BRIDGE   0x37
#define RTAS_IO_SCOPE_PHB   0x38
#define RTAS_IO_SCOPE_EADS_GLOBAL   0x39
#define RTAS_IO_SCOPE_EADS_SLOT   0x3A
#define RTAS_IO_SUBTYPE_NA   0x00
#define RTAS_IO_SUBTYPE_REBALANCE   0x01
#define RTAS_IO_SUBTYPE_NODE_ONLINE   0x02
#define RTAS_IO_SUBTYPE_NODE_OFFLINE   0x04
#define RE_IO_V6_SCN_OFFSET   (RE_SCN_HDR_SZ + RE_V4_SCN_SZ)

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_hdrrtas_get_event_hdr_scn (struct rtas_event *)
 Retrieve the Main RTAS event header.
struct rtas_event_exthdrrtas_get_event_exthdr_scn (struct rtas_event *)
 Retrieve the RTAS Event extended header.
struct rtas_epow_scnrtas_get_epow_scn (struct rtas_event *)
 Retrieve the Environmental and Power Warning (EPOW) section.
struct rtas_io_scnrtas_get_io_scn (struct rtas_event *)
 Retrieve the I/O section of the RTAS Event.
struct rtas_cpu_scnrtas_get_cpu_scn (struct rtas_event *)
 Retrieve the CPU section of the RTAS Event.
struct rtas_ibm_diag_scnrtas_get_ibmdiag_scn (struct rtas_event *)
struct rtas_mem_scnrtas_get_mem_scn (struct rtas_event *)
 Retrieve the Memory Detected failure section of the RTAS Event.
struct rtas_post_scnrtas_get_post_scn (struct rtas_event *)
 Retrieve the Power-On Self Test (POST) section of the RTAS Event.
struct rtas_ibmsp_scnrtas_get_ibm_sp_scn (struct rtas_event *)
 Retrieve the IBM Service Processor Log section of the RTAS Event.
struct rtas_vend_errlog_scn * rtas_get_vend_errlog_scn (struct rtas_event *)
 retrive a vendor specific section of the RTAS event
struct rtas_priv_hdr_scnrtas_get_priv_hdr_scn (struct rtas_event *)
 retrieve the Private Header section of an RTAS Event
struct rtas_usr_hdr_scnrtas_get_usr_hdr_scn (struct rtas_event *)
 retrieve the User Header section for an RTAS event.
struct rtas_dump_scnrtas_get_dump_scn (struct rtas_event *)
 Retrieve the Dump Locator section of the RTAS Event.
struct rtas_lri_scnrtas_get_lri_scn (struct rtas_event *)
 Retrieve the Logical Resource ID (LRI) section of the RTAS Event.
struct rtas_mt_scnrtas_get_mt_scn (struct rtas_event *)
 retrieve the Failing Enclosure (MTMS) section of an RTAS Event
struct rtas_src_scnrtas_get_src_scn (struct rtas_event *)
 retrieve the RTAS src section for a RTAS event
int update_os_id_scn (struct rtas_event *, const char *)
int rtas_print_scn (FILE *, struct scn_header *, 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 RE_EPOW_V6_SCN_SZ   20

Referenced by parse_epow_scn().

#define RE_EVENT_HDR_SZ   8

Referenced by parse_rtas_event().

#define RE_EVENT_OFFSET ( re   )     ((re)->buffer + (re)->offset)

Referenced by parse_fru_id_scn(), and parse_io_scn().

#define RE_EXT_HDR_SZ   12

Referenced by parse_rtas_event().

#define RE_IO_V6_SCN_OFFSET   (RE_SCN_HDR_SZ + RE_V4_SCN_SZ)

#define RE_SHDR_OFFSET (  )     ((char *)(x) + RE_SHDR_SZ)

#define RE_SHDR_SZ   (sizeof(struct scn_header))

Referenced by update_os_id_scn().

#define RTAS_CPU_SCN   5

#define RTAS_DUMP_SCN   13

#define RTAS_EPOW_ACTION_MAIN_ENCLOSURE   0x05

#define RTAS_EPOW_ACTION_POWER_OFF   0x07

#define RTAS_EPOW_ACTION_RESET   0x00

#define RTAS_EPOW_ACTION_SYSTEM_HALT   0x04

#define RTAS_EPOW_ACTION_SYSTEM_SHUTDOWN   0x03

#define RTAS_EPOW_ACTION_WARN_COOLING   0x01

#define RTAS_EPOW_ACTION_WARN_POWER   0x02

#define RTAS_EPOW_MOD_CRIT_FUNC_LOSS   0x03

#define RTAS_EPOW_MOD_NA   0x00

#define RTAS_EPOW_MOD_NORMAL_SHUTDOWN   0x01

#define RTAS_EPOW_MOD_UTILITY_POWER_LOSS   0x02

#define RTAS_EPOW_SCN   3

#define RTAS_EVENT_EXT_HDR   2

#define RTAS_EVENT_HDR   1

#define RTAS_EXTHDR_FMT_CPU   1

Referenced by parse_rtas_event().

#define RTAS_EXTHDR_FMT_EPOW   5

Referenced by parse_rtas_event().

#define RTAS_EXTHDR_FMT_IBM_DIAG   12

Referenced by parse_rtas_event().

#define RTAS_EXTHDR_FMT_IBM_SP   13

Referenced by parse_rtas_event().

#define RTAS_EXTHDR_FMT_IO   3

Referenced by parse_rtas_event().

#define RTAS_EXTHDR_FMT_MEMORY   2

Referenced by parse_rtas_event().

#define RTAS_EXTHDR_FMT_POST   4

Referenced by parse_rtas_event().

#define RTAS_EXTHDR_FMT_VEND_SPECIFIC_1   14

Referenced by parse_rtas_event().

#define RTAS_EXTHDR_FMT_VEND_SPECIFIC_2   15

Referenced by parse_rtas_event().

#define RTAS_GENERIC_SCN   18

#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_IO_SCOPE_EADS_GLOBAL   0x39

#define RTAS_IO_SCOPE_EADS_SLOT   0x3A

#define RTAS_IO_SCOPE_NA   0x00

#define RTAS_IO_SCOPE_PHB   0x38

#define RTAS_IO_SCOPE_RIO_BRIDGE   0x37

#define RTAS_IO_SCOPE_RIO_HUB   0x36

#define RTAS_IO_SUBTYPE_NA   0x00

#define RTAS_IO_SUBTYPE_NODE_OFFLINE   0x04

#define RTAS_IO_SUBTYPE_NODE_ONLINE   0x02

#define RTAS_IO_SUBTYPE_REBALANCE   0x01

#define RTAS_IO_TYPE_DETECTED   0x01

#define RTAS_IO_TYPE_EVENT   0x03

#define RTAS_IO_TYPE_RECOVERED   0x02

#define RTAS_IO_TYPE_RPC_PASS_THRU   0x04

#define RTAS_LRI_SCN   14

#define RTAS_MAX_SCN_ID   19

#define RTAS_MEM_SCN   7

#define RTAS_MT_SCN   15

#define RTAS_POST_SCN   8

#define RTAS_PRIV_HDR_SCN   11

#define RTAS_PSRC_SCN   16

#define RTAS_SSRC_SCN   17

#define RTAS_USR_HDR_SCN   12

#define RTAS_VEND_ERRLOG_SCN   10


Function Documentation

int cleanup_rtas_event ( struct rtas_event re  ) 

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

struct rtas_cpu_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

References get_re_scn(), and RTAS_CPU_SCN.

struct rtas_dump_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

References get_re_scn(), and RTAS_DUMP_SCN.

Referenced by update_os_id_scn().

struct rtas_epow_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

References get_re_scn(), and RTAS_EPOW_SCN.

struct rtas_event_exthdr* 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

References get_re_scn(), and RTAS_EVENT_EXT_HDR.

struct rtas_event_hdr* 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

References get_re_scn(), and RTAS_EVENT_HDR.

struct rtas_ibmsp_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

References get_re_scn(), and RTAS_IBM_SP_SCN.

struct rtas_ibm_diag_scn* rtas_get_ibmdiag_scn ( struct rtas_event  )  [read]

struct rtas_io_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

References get_re_scn(), and RTAS_IO_SCN.

struct rtas_lri_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

References get_re_scn(), and RTAS_LRI_SCN.

struct rtas_mem_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

References get_re_scn(), and RTAS_MEM_SCN.

struct rtas_mt_scn* rtas_get_mt_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

References get_re_scn(), and RTAS_MT_SCN.

struct rtas_post_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

References get_re_scn(), and RTAS_POST_SCN.

struct rtas_priv_hdr_scn* rtas_get_priv_hdr_scn ( struct rtas_event re  )  [read]

rtas_get_priv_hdr_scn

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

References get_re_scn(), and RTAS_PRIV_HDR_SCN.

struct rtas_src_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

References get_re_scn(), and RTAS_PSRC_SCN.

struct rtas_usr_hdr_scn* rtas_get_usr_hdr_scn ( struct rtas_event re  )  [read]

rtas_rtas_usr_hdr_scn

Parameters:
re rtas_event pointer
Returns:
rtas_event_scn pointer to User Header section, NULL on failure

References get_re_scn(), and RTAS_USR_HDR_SCN.

struct rtas_vend_errlog_scn* rtas_get_vend_errlog_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

References get_re_scn(), and RTAS_VEND_ERRLOG_SCN.

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

References rtas_event::event_no, rtas_event::event_scns, scn_header::next, ostream, print_scn_title(), and rtas_print_scn().

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

References rtas_event::buffer, rtas_event::event_length, ostream, print_raw_data(), and print_scn_title().

int rtas_print_scn ( FILE *  stream,
struct scn_header shdr,
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

References ostream, re_print_fns, and scn_header::scn_id.

Referenced by rtas_print_event().

int rtas_set_print_width ( int  width  ) 

rtas_set_print_width

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

References rtas_print_width.

int update_os_id_scn ( struct rtas_event re,
const char *  id 
)


Generated on Sat Jun 7 04:46:31 2008 for librtasevent by  doxygen 1.5.5