#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "librtasevent.h"
#include "rtas_event.h"
Functions | |
| void | rtas_copy (void *to, struct rtas_event *re, uint32_t size) |
| front end for common memcpy calls | |
| int | cleanup_rtas_event (struct rtas_event *re) |
| free the structures related to a parsed rtas event | |
| void | add_re_scn (struct rtas_event *re, void *scn, int scn_id) |
| Add a rtas event section to the section list. | |
| int | re_scn_id (struct rtas_v6_hdr *v6hdr) |
| Convert the two character section id into an internal identifier. | |
| static struct scn_header * | _get_re_scn (struct scn_header *scn_hdr, int scn_id) |
| the real work for retreiving rtas event sections | |
| struct scn_header * | get_re_scn (struct rtas_event *re, int scn_id) |
| find the specified section on the list of sections | |
| struct rtas_event * | parse_v6_rtas_event (struct rtas_event *re) |
| parse a version 6 RTAS event | |
| struct rtas_event * | parse_rtas_event (char *buf, int buflen) |
| parse an rtas event creating a populated rtas_event structure | |
| static struct scn_header* _get_re_scn | ( | struct scn_header * | scn_hdr, | |
| int | scn_id | |||
| ) | [static, read] |
_get_re_scn
| res | rtas_event_scn pointer at which to start search | |
| scn_id | section id to search for |
References scn_header::next, and scn_header::scn_id.
Referenced by get_re_scn().
| void add_re_scn | ( | struct rtas_event * | re, | |
| void * | scn, | |||
| int | scn_id | |||
| ) |
add_re_scn
| re | rtas_event pointer to add this section to | |
| scn | pointer to start of rtas event section | |
| scn_id | id of the section to be added return pointer to newly created rtas_event_scn |
References rtas_event::event_scns, scn_header::next, scn_header::re, and scn_header::scn_id.
Referenced by parse_cpu_scn(), parse_dump_scn(), parse_epow_scn(), parse_generic_v6_scn(), parse_ibm_diag_scn(), parse_io_scn(), parse_lri_scn(), parse_mem_scn(), parse_mt_scn(), parse_post_scn(), parse_priv_hdr_scn(), parse_rtas_event(), parse_sp_scn(), parse_src_scn(), parse_usr_hdr_scn(), and parse_vend_errlog_scn().
| int cleanup_rtas_event | ( | struct rtas_event * | re | ) |
cleanup_rtas_event
| re | rtas_event pointer |
References rtas_v6_generic::data, rtas_event::event_scns, rtas_src_scn::fru_scns, rtas_fru_hdr::next, rtas_fru_scn::next, scn_header::next, RTAS_GENERIC_SCN, RTAS_PSRC_SCN, RTAS_SSRC_SCN, RTAS_VEND_ERRLOG_SCN, scn_header::scn_id, rtas_fru_scn::subscns, and rtas_vend_errlog::vendor_data.
Referenced by parse_rtas_event(), parse_src_scn(), and parse_v6_rtas_event().
| struct scn_header* get_re_scn | ( | struct rtas_event * | re, | |
| int | scn_id | |||
| ) | [read] |
get_re_scn NOTE: this function has been split just so we can have common place to check for NULL 're' pointers (no sense checking everywhere we call this).
| re | rtas_event pointer | |
| scn_id | id of the section to find |
References _get_re_scn(), and rtas_event::event_scns.
Referenced by rtas_get_cpu_scn(), rtas_get_dump_scn(), rtas_get_epow_scn(), rtas_get_event_exthdr_scn(), rtas_get_event_hdr_scn(), rtas_get_ibm_diag_scn(), rtas_get_ibm_sp_scn(), rtas_get_io_scn(), rtas_get_lri_scn(), rtas_get_mem_scn(), rtas_get_mt_scn(), rtas_get_post_scn(), rtas_get_priv_hdr_scn(), rtas_get_src_scn(), rtas_get_usr_hdr_scn(), and rtas_get_vend_errlog_scn().
| 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' |
References add_re_scn(), rtas_event::buffer, cleanup_rtas_event(), rtas_event::event_length, rtas_event::event_no, rtas_event_hdr::ext_log_length, rtas_event_hdr::extended, rtas_event_exthdr::format_type, rtas_event::offset, parse_cpu_scn(), parse_epow_scn(), parse_ibm_diag_scn(), parse_io_scn(), parse_mem_scn(), parse_post_scn(), parse_sp_scn(), parse_v6_rtas_event(), parse_vend_errlog_scn(), RE_EVENT_HDR_SZ, RE_EXT_HDR_SZ, RE_SHDR_OFFSET, rtas_copy(), RTAS_EVENT_EXT_HDR, RTAS_EVENT_HDR, RTAS_EXTHDR_FMT_CPU, RTAS_EXTHDR_FMT_EPOW, RTAS_EXTHDR_FMT_IBM_DIAG, RTAS_EXTHDR_FMT_IBM_SP, RTAS_EXTHDR_FMT_IO, RTAS_EXTHDR_FMT_MEMORY, RTAS_EXTHDR_FMT_POST, RTAS_EXTHDR_FMT_VEND_SPECIFIC_1, RTAS_EXTHDR_FMT_VEND_SPECIFIC_2, rtas_event_hdr::version, and rtas_event::version.
| struct rtas_event* parse_v6_rtas_event | ( | struct rtas_event * | re | ) | [read] |
parse_v6_rtas_event
| re | rtas_event pointer |
References rtas_event::buffer, cleanup_rtas_event(), rtas_event::event_length, rtas_event::offset, parse_dump_scn(), parse_epow_scn(), parse_generic_v6_scn(), parse_io_scn(), parse_lri_scn(), parse_mt_scn(), parse_priv_hdr_scn(), parse_src_scn(), parse_usr_hdr_scn(), re_scn_id(), RTAS_DUMP_SCN, RTAS_EPOW_SCN, RTAS_IO_SCN, RTAS_LRI_SCN, RTAS_MT_SCN, RTAS_PSRC_SCN, and RTAS_SSRC_SCN.
Referenced by parse_rtas_event().
| int re_scn_id | ( | struct rtas_v6_hdr * | v6hdr | ) |
re_scn_id
| shdr | rtas_v6_hdr pointer |
References rtas_v6_hdr::id, RTAS_DUMP_SCN, RTAS_DUMP_SCN_ID, RTAS_EPOW_SCN, RTAS_EPOW_SCN_ID, RTAS_IO_SCN, RTAS_IO_SCN_ID, RTAS_LRI_SCN, RTAS_LRI_SCN_ID, RTAS_MT_SCN, RTAS_MTMS_SCN_ID, RTAS_PSRC_SCN, RTAS_PSRC_SCN_ID, RTAS_SSRC_SCN, and RTAS_SSRC_SCN_ID.
Referenced by parse_src_scn(), and parse_v6_rtas_event().
| void rtas_copy | ( | void * | to, | |
| struct rtas_event * | re, | |||
| uint32_t | size | |||
| ) |
rtas_copy NOTE: This will chang the value of the rtas_event offset value
| to | place to copy data to | |
| re | rtas_event pointer | |
| size | amount to copy |
References rtas_event::buffer, and rtas_event::offset.
Referenced by parse_cpu_scn(), parse_dump_scn(), parse_epow_scn(), parse_fru_id_scn(), parse_fru_mr_scn(), parse_fru_pe_scn(), parse_generic_v6_scn(), parse_ibm_diag_scn(), parse_io_scn(), parse_lri_scn(), parse_mem_scn(), parse_mt_scn(), parse_mtms(), parse_post_scn(), parse_priv_hdr_scn(), parse_rtas_event(), parse_sp_scn(), parse_src_scn(), parse_usr_hdr_scn(), and parse_vend_errlog_scn().
1.5.5