| /* -*- linux-c -*- |
| * |
| * Copyright (c) 2003 by Intel Corp. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This |
| * file and program are licensed under a BSD style license. See |
| * the Copying file included with the OpenHPI distribution for |
| * full licensing terms. |
| * |
| * Authors: |
| * Kevin Gao <kevin.gao@intel.com> |
| */ |
| |
| #include <stdio.h> |
| #include <hpitest.h> |
| |
| int process_domain_eventlog(SaHpiSessionIdT session_id) |
| { |
| SaHpiSelEntryIdT prev_entry_id; |
| SaHpiSelEntryIdT next_entry_id; |
| SaHpiSelEntryIdT current_entry_id; |
| SaHpiSelEntryT eventlog_entry; |
| SaHpiRdrT rdr; |
| SaHpiRptEntryT rpt_entry1; |
| SaErrorT val; |
| int ret = HPI_TEST_PASS; |
| |
| prev_entry_id = SAHPI_NEWEST_ENTRY; |
| while (next_entry_id != SAHPI_NO_MORE_ENTRIES) { |
| current_entry_id = prev_entry_id; |
| val = saHpiEventLogEntryGet(session_id, |
| SAHPI_DOMAIN_CONTROLLER_ID, current_entry_id, |
| &prev_entry_id, &next_entry_id, &eventlog_entry, |
| &rdr, &rpt_entry1); |
| if (val != SA_OK) { |
| printf(" Does not conform the expected behaviors!\n"); |
| printf(" Retrieve the prev event log entry failed!\n"); |
| printf(" Return value: %s\n", get_error_string(val)); |
| ret = HPI_TEST_FAIL; |
| goto out; |
| } |
| } |
| |
| out: |
| return ret; |
| } |
| |
| int process_resource(SaHpiSessionIdT session_id, SaHpiRptEntryT rpt_entry, callback2_t func) |
| { |
| SaHpiResourceIdT resource_id = rpt_entry.ResourceId; |
| SaHpiSelEntryIdT prev_entry_id; |
| SaHpiSelEntryIdT next_entry_id; |
| SaHpiSelEntryIdT current_entry_id; |
| SaHpiSelEntryT eventlog_entry; |
| SaHpiRdrT rdr; |
| SaHpiRptEntryT rpt_entry1; |
| SaErrorT val; |
| int ret = HPI_TEST_PASS; |
| |
| if (rpt_entry.ResourceCapabilities & SAHPI_CAPABILITY_SEL) { |
| next_entry_id = SAHPI_NEWEST_ENTRY; |
| while (next_entry_id != SAHPI_NO_MORE_ENTRIES) { |
| current_entry_id = prev_entry_id; |
| val = saHpiEventLogEntryGet(session_id, resource_id, |
| current_entry_id, &prev_entry_id, |
| &next_entry_id, &eventlog_entry, |
| &rdr, &rpt_entry1); |
| if (val != SA_OK) { |
| printf(" Does not conform the expected behaviors!\n"); |
| printf(" Retrieve the prev event log entry failed!\n"); |
| printf(" Return value: %s\n", get_error_string(val)); |
| ret = HPI_TEST_FAIL; |
| goto out; |
| } |
| } |
| } |
| |
| out: |
| return ret; |
| } |
| |
| int main() |
| { |
| SaHpiVersionT version; |
| SaErrorT val; |
| int ret = HPI_TEST_PASS; |
| |
| val = saHpiInitialize(&version); |
| if (val != SA_OK) { |
| printf(" Function \"saHpiInitialize\" works abnormally!\n"); |
| printf(" Cannot initialize HPI!\n"); |
| printf(" Return value: %s\n", get_error_string(val)); |
| ret = HPI_TEST_FAIL; |
| goto out; |
| } |
| |
| ret = process_domain(SAHPI_DEFAULT_DOMAIN_ID, process_resource, NULL, |
| process_domain_eventlog); |
| |
| val = saHpiFinalize(); |
| if (val != SA_OK) { |
| printf(" Function \"saHpiFinalize\" works abnormally!\n"); |
| printf(" Cannot cleanup HPI"); |
| printf(" Return value: %s\n", get_error_string(val)); |
| ret = HPI_TEST_FAIL; |
| } |
| |
| out: |
| return ret; |
| } |