You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sys-power/nut/files/nut-2.6.5-freeipmi_fru.patch

449 lines
17 KiB

Update to 1.2.x ipmi_fru declarations.
Starting with the 1.2.1 release, all of the ipmi_fru_parse* declarations (both
lowercase & uppercase) were renamed to ipmi_fru*. This is a simple search &
replace of all instances. Upstream should probably have a backwards compatible
version that supports both variants of the names.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
diff -Nuar nut-2.6.5.orig/drivers/nut-libfreeipmi.c nut-2.6.5/drivers/nut-libfreeipmi.c
--- nut-2.6.5.orig/drivers/nut-libfreeipmi.c 2012-07-31 17:38:59.000000000 +0000
+++ nut-2.6.5/drivers/nut-libfreeipmi.c 2013-08-12 17:55:03.132363518 +0000
@@ -57,7 +57,7 @@
/* FreeIPMI contexts and configuration*/
ipmi_ctx_t ipmi_ctx = NULL;
-ipmi_fru_parse_ctx_t fru_parse_ctx = NULL;
+ipmi_fru_ctx_t fru_parse_ctx = NULL;
ipmi_monitoring_ctx_t mon_ctx = NULL;
struct ipmi_monitoring_ipmi_config ipmi_config;
/* SDR management API has changed with 1.1.X and later */
@@ -78,7 +78,7 @@
/* Support functions */
static const char* libfreeipmi_getfield (uint8_t language_code,
- ipmi_fru_parse_field_t *field);
+ ipmi_fru_field_t *field);
static void libfreeipmi_cleanup();
@@ -97,7 +97,7 @@
int nut_ipmi_open(int ipmi_id, IPMIDevice_t *ipmi_dev)
{
int ret = -1;
- uint8_t areabuf[IPMI_FRU_PARSE_AREA_SIZE_MAX+1];
+ uint8_t areabuf[IPMI_FRU_AREA_SIZE_MAX+1];
unsigned int area_type = 0;
unsigned int area_length = 0;
@@ -134,26 +134,26 @@
upsdebugx(1, "FreeIPMI initialized...");
/* Parse FRU information */
- if (!(fru_parse_ctx = ipmi_fru_parse_ctx_create (ipmi_ctx)))
+ if (!(fru_parse_ctx = ipmi_fru_ctx_create (ipmi_ctx)))
{
libfreeipmi_cleanup();
- fatal_with_errno(EXIT_FAILURE, "ipmi_fru_parse_ctx_create()");
+ fatal_with_errno(EXIT_FAILURE, "ipmi_fru_ctx_create()");
}
/* lots of motherboards calculate checksums incorrectly */
- if (ipmi_fru_parse_ctx_set_flags (fru_parse_ctx, IPMI_FRU_PARSE_FLAGS_SKIP_CHECKSUM_CHECKS) < 0)
+ if (ipmi_fru_ctx_set_flags (fru_parse_ctx, IPMI_FRU_FLAGS_SKIP_CHECKSUM_CHECKS) < 0)
{
libfreeipmi_cleanup();
- fatalx(EXIT_FAILURE, "ipmi_fru_parse_ctx_set_flags: %s\n",
- ipmi_fru_parse_ctx_strerror (ipmi_fru_parse_ctx_errnum (fru_parse_ctx)));
+ fatalx(EXIT_FAILURE, "ipmi_fru_ctx_set_flags: %s\n",
+ ipmi_fru_ctx_strerror (ipmi_fru_ctx_errnum (fru_parse_ctx)));
}
/* Now open the requested (local) PSU */
- if (ipmi_fru_parse_open_device_id (fru_parse_ctx, ipmi_id) < 0)
+ if (ipmi_fru_open_device_id (fru_parse_ctx, ipmi_id) < 0)
{
libfreeipmi_cleanup();
- fatalx(EXIT_FAILURE, "ipmi_fru_parse_open_device_id: %s\n",
- ipmi_fru_parse_ctx_errormsg (fru_parse_ctx));
+ fatalx(EXIT_FAILURE, "ipmi_fru_open_device_id: %s\n",
+ ipmi_fru_ctx_errormsg (fru_parse_ctx));
}
/* Set IPMI identifier */
@@ -164,19 +164,19 @@
/* clear fields */
area_type = 0;
area_length = 0;
- memset (areabuf, '\0', IPMI_FRU_PARSE_AREA_SIZE_MAX + 1);
+ memset (areabuf, '\0', IPMI_FRU_AREA_SIZE_MAX + 1);
/* parse FRU buffer */
- if (ipmi_fru_parse_read_data_area (fru_parse_ctx,
+ if (ipmi_fru_read_data_area (fru_parse_ctx,
&area_type,
&area_length,
areabuf,
- IPMI_FRU_PARSE_AREA_SIZE_MAX) < 0)
+ IPMI_FRU_AREA_SIZE_MAX) < 0)
{
libfreeipmi_cleanup();
fatal_with_errno(EXIT_FAILURE,
- "ipmi_fru_parse_open_device_id: %s\n",
- ipmi_fru_parse_ctx_errormsg (fru_parse_ctx));
+ "ipmi_fru_open_device_id: %s\n",
+ ipmi_fru_ctx_errormsg (fru_parse_ctx));
}
if (area_length)
@@ -184,7 +184,7 @@
switch (area_type)
{
/* get generic board information */
- case IPMI_FRU_PARSE_AREA_TYPE_BOARD_INFO_AREA:
+ case IPMI_FRU_AREA_TYPE_BOARD_INFO_AREA:
if(libfreeipmi_get_board_info (areabuf, area_length,
ipmi_dev) < 0)
@@ -193,7 +193,7 @@
}
break;
/* get specific PSU information */
- case IPMI_FRU_PARSE_AREA_TYPE_MULTIRECORD_POWER_SUPPLY_INFORMATION:
+ case IPMI_FRU_AREA_TYPE_MULTIRECORD_POWER_SUPPLY_INFORMATION:
if(libfreeipmi_get_psu_info (areabuf, area_length, ipmi_dev) < 0)
{
@@ -205,13 +205,13 @@
break;
}
}
- } while ((ret = ipmi_fru_parse_next (fru_parse_ctx)) == 1);
+ } while ((ret = ipmi_fru_next (fru_parse_ctx)) == 1);
/* check for errors */
if (ret < 0) {
libfreeipmi_cleanup();
- fatal_with_errno(EXIT_FAILURE, "ipmi_fru_parse_next: %s",
- ipmi_fru_parse_ctx_errormsg (fru_parse_ctx));
+ fatal_with_errno(EXIT_FAILURE, "ipmi_fru_next: %s",
+ ipmi_fru_ctx_errormsg (fru_parse_ctx));
}
else {
/* Get all related sensors information */
@@ -232,25 +232,25 @@
}
static const char* libfreeipmi_getfield (uint8_t language_code,
- ipmi_fru_parse_field_t *field)
+ ipmi_fru_field_t *field)
{
- static char strbuf[IPMI_FRU_PARSE_AREA_STRING_MAX + 1];
- unsigned int strbuflen = IPMI_FRU_PARSE_AREA_STRING_MAX;
+ static char strbuf[IPMI_FRU_AREA_STRING_MAX + 1];
+ unsigned int strbuflen = IPMI_FRU_AREA_STRING_MAX;
if (!field->type_length_field_length)
return NULL;
- memset (strbuf, '\0', IPMI_FRU_PARSE_AREA_STRING_MAX + 1);
+ memset (strbuf, '\0', IPMI_FRU_AREA_STRING_MAX + 1);
- if (ipmi_fru_parse_type_length_field_to_string (fru_parse_ctx,
+ if (ipmi_fru_type_length_field_to_string (fru_parse_ctx,
field->type_length_field,
field->type_length_field_length,
language_code,
strbuf,
&strbuflen) < 0)
{
- upsdebugx (2, "ipmi_fru_parse_type_length_field_to_string: %s",
- ipmi_fru_parse_ctx_errormsg (fru_parse_ctx));
+ upsdebugx (2, "ipmi_fru_type_length_field_to_string: %s",
+ ipmi_fru_ctx_errormsg (fru_parse_ctx));
return NULL;
}
@@ -280,8 +280,8 @@
{
/* cleanup */
if (fru_parse_ctx) {
- ipmi_fru_parse_close_device_id (fru_parse_ctx);
- ipmi_fru_parse_ctx_destroy (fru_parse_ctx);
+ ipmi_fru_close_device_id (fru_parse_ctx);
+ ipmi_fru_ctx_destroy (fru_parse_ctx);
}
#ifdef HAVE_FREEIPMI_11X_12X
@@ -342,7 +342,7 @@
upsdebugx(1, "entering libfreeipmi_get_psu_info()");
- if (ipmi_fru_parse_multirecord_power_supply_information (fru_parse_ctx,
+ if (ipmi_fru_multirecord_power_supply_information (fru_parse_ctx,
areabuf,
area_length,
&overall_capacity,
@@ -368,8 +368,8 @@
&total_combined_wattage,
&predictive_fail_tachometer_lower_threshold) < 0)
{
- fatalx(EXIT_FAILURE, "ipmi_fru_parse_multirecord_power_supply_information: %s",
- ipmi_fru_parse_ctx_errormsg (fru_parse_ctx));
+ fatalx(EXIT_FAILURE, "ipmi_fru_multirecord_power_supply_information: %s",
+ ipmi_fru_ctx_errormsg (fru_parse_ctx));
}
ipmi_dev->overall_capacity = overall_capacity;
@@ -392,12 +392,12 @@
{
uint8_t language_code;
uint32_t mfg_date_time;
- ipmi_fru_parse_field_t board_manufacturer;
- ipmi_fru_parse_field_t board_product_name;
- ipmi_fru_parse_field_t board_serial_number;
- ipmi_fru_parse_field_t board_part_number;
- ipmi_fru_parse_field_t board_fru_file_id;
- ipmi_fru_parse_field_t board_custom_fields[IPMI_FRU_CUSTOM_FIELDS];
+ ipmi_fru_field_t board_manufacturer;
+ ipmi_fru_field_t board_product_name;
+ ipmi_fru_field_t board_serial_number;
+ ipmi_fru_field_t board_part_number;
+ ipmi_fru_field_t board_fru_file_id;
+ ipmi_fru_field_t board_custom_fields[IPMI_FRU_CUSTOM_FIELDS];
const char *string = NULL;
time_t timetmp;
struct tm mfg_date_time_tm;
@@ -406,15 +406,15 @@
upsdebugx(1, "entering libfreeipmi_get_board_info()");
/* clear fields */
- memset (&board_manufacturer, '\0', sizeof (ipmi_fru_parse_field_t));
- memset (&board_product_name, '\0', sizeof (ipmi_fru_parse_field_t));
- memset (&board_serial_number, '\0', sizeof (ipmi_fru_parse_field_t));
- memset (&board_fru_file_id, '\0', sizeof (ipmi_fru_parse_field_t));
+ memset (&board_manufacturer, '\0', sizeof (ipmi_fru_field_t));
+ memset (&board_product_name, '\0', sizeof (ipmi_fru_field_t));
+ memset (&board_serial_number, '\0', sizeof (ipmi_fru_field_t));
+ memset (&board_fru_file_id, '\0', sizeof (ipmi_fru_field_t));
memset (&board_custom_fields[0], '\0',
- sizeof (ipmi_fru_parse_field_t) * IPMI_FRU_CUSTOM_FIELDS);
+ sizeof (ipmi_fru_field_t) * IPMI_FRU_CUSTOM_FIELDS);
/* parse FRU buffer */
- if (ipmi_fru_parse_board_info_area (fru_parse_ctx,
+ if (ipmi_fru_board_info_area (fru_parse_ctx,
areabuf,
area_length,
&language_code,
@@ -428,8 +428,8 @@
IPMI_FRU_CUSTOM_FIELDS) < 0)
{
libfreeipmi_cleanup();
- fatalx(EXIT_FAILURE, "ipmi_fru_parse_board_info_area: %s",
- ipmi_fru_parse_ctx_errormsg (fru_parse_ctx));
+ fatalx(EXIT_FAILURE, "ipmi_fru_board_info_area: %s",
+ ipmi_fru_ctx_errormsg (fru_parse_ctx));
}
diff -Nuar nut-2.6.5.orig/m4/nut_check_libfreeipmi.m4 nut-2.6.5/m4/nut_check_libfreeipmi.m4
--- nut-2.6.5.orig/m4/nut_check_libfreeipmi.m4 2012-07-31 17:38:56.000000000 +0000
+++ nut-2.6.5/m4/nut_check_libfreeipmi.m4 2013-08-12 17:55:03.132363518 +0000
@@ -66,7 +66,7 @@
dnl when version cannot be tested (prior to 1.0.5, with no pkg-config)
dnl we have to check for some specific functions
AC_SEARCH_LIBS([ipmi_ctx_find_inband], [freeipmi], [], [nut_have_freeipmi=no])
- AC_SEARCH_LIBS([ipmi_fru_parse_ctx_create], [freeipmi], [], [nut_have_freeipmi=no])
+ AC_SEARCH_LIBS([ipmi_fru_ctx_create], [freeipmi], [], [nut_have_freeipmi=no])
AC_SEARCH_LIBS([ipmi_monitoring_init], [ipmimonitoring], [nut_have_freeipmi_monitoring=yes], [nut_have_freeipmi_monitoring=no])
AC_SEARCH_LIBS([ipmi_monitoring_sensor_read_record_id], [ipmimonitoring], [], [nut_have_freeipmi_monitoring=no])
diff -Nuar nut-2.6.5.orig/tools/nut-scanner/scan_ipmi.c nut-2.6.5/tools/nut-scanner/scan_ipmi.c
--- nut-2.6.5.orig/tools/nut-scanner/scan_ipmi.c 2012-07-31 17:38:58.000000000 +0000
+++ nut-2.6.5/tools/nut-scanner/scan_ipmi.c 2013-08-12 17:55:03.132363518 +0000
@@ -34,24 +34,24 @@
static lt_dlhandle dl_handle = NULL;
static const char *dl_error = NULL;
-static int (*nut_ipmi_fru_parse_close_device_id) (ipmi_fru_parse_ctx_t ctx);
-static void (*nut_ipmi_fru_parse_ctx_destroy) (ipmi_fru_parse_ctx_t ctx);
+static int (*nut_ipmi_fru_close_device_id) (ipmi_fru_ctx_t ctx);
+static void (*nut_ipmi_fru_ctx_destroy) (ipmi_fru_ctx_t ctx);
#ifdef HAVE_FREEIPMI_11X_12X
static void (*nut_ipmi_sdr_ctx_destroy) (ipmi_sdr_ctx_t ctx);
#else /* HAVE_FREEIPMI_11X_12X */
static void (*nut_ipmi_sdr_cache_ctx_destroy) (ipmi_sdr_cache_ctx_t ctx);
static void (*nut_ipmi_sdr_parse_ctx_destroy) (ipmi_sdr_parse_ctx_t ctx);
#endif /* HAVE_FREEIPMI_11X_12X */
-static ipmi_fru_parse_ctx_t (*nut_ipmi_fru_parse_ctx_create) (ipmi_ctx_t ipmi_ctx);
-static int (*nut_ipmi_fru_parse_ctx_set_flags) (ipmi_fru_parse_ctx_t ctx, unsigned int flags);
-static int (*nut_ipmi_fru_parse_open_device_id) (ipmi_fru_parse_ctx_t ctx, uint8_t fru_device_id);
-static char * (*nut_ipmi_fru_parse_ctx_errormsg) (ipmi_fru_parse_ctx_t ctx);
-static int (*nut_ipmi_fru_parse_read_data_area) (ipmi_fru_parse_ctx_t ctx,
+static ipmi_fru_ctx_t (*nut_ipmi_fru_ctx_create) (ipmi_ctx_t ipmi_ctx);
+static int (*nut_ipmi_fru_ctx_set_flags) (ipmi_fru_ctx_t ctx, unsigned int flags);
+static int (*nut_ipmi_fru_open_device_id) (ipmi_fru_ctx_t ctx, uint8_t fru_device_id);
+static char * (*nut_ipmi_fru_ctx_errormsg) (ipmi_fru_ctx_t ctx);
+static int (*nut_ipmi_fru_read_data_area) (ipmi_fru_ctx_t ctx,
unsigned int *area_type,
unsigned int *area_length,
void *areabuf,
unsigned int areabuflen);
-static int (*nut_ipmi_fru_parse_next) (ipmi_fru_parse_ctx_t ctx);
+static int (*nut_ipmi_fru_next) (ipmi_fru_ctx_t ctx);
static ipmi_ctx_t (*nut_ipmi_ctx_create) (void);
static int (*nut_ipmi_ctx_find_inband) (ipmi_ctx_t ctx,
ipmi_driver_type_t *driver_type,
@@ -92,12 +92,12 @@
/* Clear any existing error */
lt_dlerror();
- *(void **) (&nut_ipmi_fru_parse_close_device_id) = lt_dlsym(dl_handle, "ipmi_fru_parse_close_device_id");
+ *(void **) (&nut_ipmi_fru_close_device_id) = lt_dlsym(dl_handle, "ipmi_fru_close_device_id");
if ((dl_error = lt_dlerror()) != NULL) {
goto err;
}
- *(void **) (&nut_ipmi_fru_parse_ctx_destroy) = lt_dlsym(dl_handle, "ipmi_fru_parse_ctx_destroy");
+ *(void **) (&nut_ipmi_fru_ctx_destroy) = lt_dlsym(dl_handle, "ipmi_fru_ctx_destroy");
if ((dl_error = lt_dlerror()) != NULL) {
goto err;
}
@@ -122,32 +122,32 @@
}
#endif /* HAVE_FREEIPMI_11X_12X */
- *(void **) (&nut_ipmi_fru_parse_ctx_create) = lt_dlsym(dl_handle, "ipmi_fru_parse_ctx_create");
+ *(void **) (&nut_ipmi_fru_ctx_create) = lt_dlsym(dl_handle, "ipmi_fru_ctx_create");
if ((dl_error = lt_dlerror()) != NULL) {
goto err;
}
- *(void **) (&nut_ipmi_fru_parse_ctx_set_flags) = lt_dlsym(dl_handle, "ipmi_fru_parse_ctx_set_flags");
+ *(void **) (&nut_ipmi_fru_ctx_set_flags) = lt_dlsym(dl_handle, "ipmi_fru_ctx_set_flags");
if ((dl_error = lt_dlerror()) != NULL) {
goto err;
}
- *(void **) (&nut_ipmi_fru_parse_open_device_id) = lt_dlsym(dl_handle, "ipmi_fru_parse_open_device_id");
+ *(void **) (&nut_ipmi_fru_open_device_id) = lt_dlsym(dl_handle, "ipmi_fru_open_device_id");
if ((dl_error = lt_dlerror()) != NULL) {
goto err;
}
- *(void **) (&nut_ipmi_fru_parse_ctx_errormsg) = lt_dlsym(dl_handle, "ipmi_fru_parse_ctx_errormsg");
+ *(void **) (&nut_ipmi_fru_ctx_errormsg) = lt_dlsym(dl_handle, "ipmi_fru_ctx_errormsg");
if ((dl_error = lt_dlerror()) != NULL) {
goto err;
}
- *(void **) (&nut_ipmi_fru_parse_read_data_area) = lt_dlsym(dl_handle, "ipmi_fru_parse_read_data_area");
+ *(void **) (&nut_ipmi_fru_read_data_area) = lt_dlsym(dl_handle, "ipmi_fru_read_data_area");
if ((dl_error = lt_dlerror()) != NULL) {
goto err;
}
- *(void **) (&nut_ipmi_fru_parse_next) = lt_dlsym(dl_handle, "ipmi_fru_parse_next");
+ *(void **) (&nut_ipmi_fru_next) = lt_dlsym(dl_handle, "ipmi_fru_next");
if ((dl_error = lt_dlerror()) != NULL) {
goto err;
}
@@ -188,17 +188,17 @@
/* Cleanup IPMI contexts */
#ifdef HAVE_FREEIPMI_11X_12X
-static void nut_freeipmi_cleanup(ipmi_fru_parse_ctx_t fru_parse_ctx,
+static void nut_freeipmi_cleanup(ipmi_fru_ctx_t fru_parse_ctx,
ipmi_sdr_ctx_t sdr_ctx)
#else /* HAVE_FREEIPMI_11X_12X */
-static void nut_freeipmi_cleanup(ipmi_fru_parse_ctx_t fru_parse_ctx,
+static void nut_freeipmi_cleanup(ipmi_fru_ctx_t fru_parse_ctx,
ipmi_sdr_cache_ctx_t sdr_cache_ctx,
ipmi_sdr_parse_ctx_t sdr_parse_ctx)
#endif /* HAVE_FREEIPMI_11X_12X */
{
if (fru_parse_ctx) {
- (*nut_ipmi_fru_parse_close_device_id) (fru_parse_ctx);
- (*nut_ipmi_fru_parse_ctx_destroy) (fru_parse_ctx);
+ (*nut_ipmi_fru_close_device_id) (fru_parse_ctx);
+ (*nut_ipmi_fru_ctx_destroy) (fru_parse_ctx);
}
#ifdef HAVE_FREEIPMI_11X_12X
@@ -226,8 +226,8 @@
int ret = -1;
unsigned int area_type = 0;
unsigned int area_length = 0;
- uint8_t areabuf[IPMI_FRU_PARSE_AREA_SIZE_MAX+1];
- ipmi_fru_parse_ctx_t fru_parse_ctx = NULL;
+ uint8_t areabuf[IPMI_FRU_AREA_SIZE_MAX+1];
+ ipmi_fru_ctx_t fru_parse_ctx = NULL;
#ifdef HAVE_FREEIPMI_11X_12X
ipmi_sdr_ctx_t sdr_ctx = NULL;
#else /* HAVE_FREEIPMI_11X_12X */
@@ -236,14 +236,14 @@
#endif /* HAVE_FREEIPMI_11X_12X */
/* Parse FRU information */
- if (!(fru_parse_ctx = (*nut_ipmi_fru_parse_ctx_create) (ipmi_ctx)))
+ if (!(fru_parse_ctx = (*nut_ipmi_fru_ctx_create) (ipmi_ctx)))
{
- fprintf(stderr, "ipmi_fru_parse_ctx_create()\n");
+ fprintf(stderr, "ipmi_fru_ctx_create()\n");
return 0;
}
/* lots of motherboards calculate checksums incorrectly */
- if ((*nut_ipmi_fru_parse_ctx_set_flags) (fru_parse_ctx, IPMI_FRU_PARSE_FLAGS_SKIP_CHECKSUM_CHECKS) < 0)
+ if ((*nut_ipmi_fru_ctx_set_flags) (fru_parse_ctx, IPMI_FRU_FLAGS_SKIP_CHECKSUM_CHECKS) < 0)
{
#ifdef HAVE_FREEIPMI_11X_12X
nut_freeipmi_cleanup(fru_parse_ctx, sdr_ctx);
@@ -253,7 +253,7 @@
return 0;
}
- if ((*nut_ipmi_fru_parse_open_device_id) (fru_parse_ctx, ipmi_id) < 0)
+ if ((*nut_ipmi_fru_open_device_id) (fru_parse_ctx, ipmi_id) < 0)
{
#ifdef HAVE_FREEIPMI_11X_12X
nut_freeipmi_cleanup(fru_parse_ctx, sdr_ctx);
@@ -268,14 +268,14 @@
/* clear fields */
area_type = 0;
area_length = 0;
- memset (areabuf, '\0', IPMI_FRU_PARSE_AREA_SIZE_MAX + 1);
+ memset (areabuf, '\0', IPMI_FRU_AREA_SIZE_MAX + 1);
/* parse FRU buffer */
- if ((*nut_ipmi_fru_parse_read_data_area) (fru_parse_ctx,
+ if ((*nut_ipmi_fru_read_data_area) (fru_parse_ctx,
&area_type,
&area_length,
areabuf,
- IPMI_FRU_PARSE_AREA_SIZE_MAX) < 0)
+ IPMI_FRU_AREA_SIZE_MAX) < 0)
{
#ifdef HAVE_FREEIPMI_11X_12X
nut_freeipmi_cleanup(fru_parse_ctx, sdr_ctx);
@@ -287,7 +287,7 @@
if (area_length)
{
- if (area_type == IPMI_FRU_PARSE_AREA_TYPE_MULTIRECORD_POWER_SUPPLY_INFORMATION)
+ if (area_type == IPMI_FRU_AREA_TYPE_MULTIRECORD_POWER_SUPPLY_INFORMATION)
{
/* Found a POWER_SUPPLY record */
#ifdef HAVE_FREEIPMI_11X_12X
@@ -298,7 +298,7 @@
return 1;
}
}
- } while ((ret = (*nut_ipmi_fru_parse_next) (fru_parse_ctx)) == 1);
+ } while ((ret = (*nut_ipmi_fru_next) (fru_parse_ctx)) == 1);
/* No need for further errors checking */
#ifdef HAVE_FREEIPMI_11X_12X