int ipmi_cmd_set_auxiliary_log_status (ipmi_ctx_t ctx, uint8_t log_type, const void *log_data, unsigned int log_data_len, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_auxiliary_log_status_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_auxiliary_log_status_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_auxiliary_log_status (log_type, log_data, log_data_len, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_STORAGE_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_sol_configuration_parameters_sol_retry (ipmi_ctx_t ctx, uint8_t channel_number, uint8_t retry_count, uint8_t retry_interval, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_sol_configuration_parameters_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_sol_configuration_parameters_sol_retry_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_sol_configuration_parameters_sol_retry (channel_number, retry_count, retry_interval, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_TRANSPORT_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_get_oem_netfn_iana_support (ipmi_ctx_t ctx, uint8_t channel_number, uint8_t net_fn, uint8_t list_index, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_get_oem_netfn_iana_support_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_get_oem_netfn_iana_support_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_get_oem_netfn_iana_support (channel_number, net_fn, list_index, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_APP_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_system_boot_options_service_partition_scan (ipmi_ctx_t ctx, uint8_t parameter_valid, uint8_t service_partition_discovered, uint8_t service_partition_scan, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_system_boot_options_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_system_boot_options_service_partition_scan_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_system_boot_options_service_partition_scan (parameter_valid, service_partition_discovered, service_partition_scan, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_CHASSIS_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_read_fru_data (ipmi_ctx_t ctx, uint8_t fru_device_id, uint16_t fru_inventory_offset_to_read, uint8_t count_to_read, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_read_fru_data_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_read_fru_data_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_read_fru_data (fru_device_id, fru_inventory_offset_to_read, count_to_read, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_STORAGE_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_chassis_identify (ipmi_ctx_t ctx, const uint8_t *identify_interval, const uint8_t *force_identify, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_chassis_identify_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_chassis_identify_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_chassis_identify (identify_interval, force_identify, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_CHASSIS_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_clear_sel (ipmi_ctx_t ctx, uint16_t reservation_id, uint8_t operation, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_clear_sel_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_clear_sel_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_clear_sel (reservation_id, operation, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_STORAGE_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_dcmi_get_management_controller_identifier_string (ipmi_ctx_t ctx, uint8_t offset_to_read, uint8_t number_of_bytes_to_read, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_dcmi_get_management_controller_identifier_string_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_dcmi_get_management_controller_identifier_string_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_dcmi_get_management_controller_identifier_string (offset_to_read, number_of_bytes_to_read, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_GROUP_EXTENSION_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_3 (ipmi_ctx_t ctx, uint8_t set_selector, uint16_t server_contact_retry_interval, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* technically, user can input anything for activate, but only 0x01 will do anything */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_dcmi_set_dcmi_configuration_parameters_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_3_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_3 (set_selector, server_contact_retry_interval, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_GROUP_EXTENSION_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_dcmi_get_thermal_limit (ipmi_ctx_t ctx, uint8_t entity_id, uint8_t entity_instance, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_dcmi_get_thermal_limit_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_dcmi_get_thermal_limit_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_dcmi_get_thermal_limit (entity_id, entity_instance, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_GROUP_EXTENSION_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_dcmi_get_dcmi_configuration_parameters_dhcp_timing_3 (ipmi_ctx_t ctx, uint8_t set_selector, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_dcmi_get_dcmi_configuration_parameters_dhcp_timing_3_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_dcmi_get_dcmi_configuration_parameters_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_dcmi_get_dcmi_configuration_parameters (IPMI_DCMI_CONFIGURATION_PARAMETER_DHCP_TIMING_3, set_selector, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_GROUP_EXTENSION_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
static int _ipmi_cmd_dcmi_get_dcmi_capability_info_common (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs, fiid_field_t *tmpl_cmd_rs_expected, uint8_t parameter_selector) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_rs_expected) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_dcmi_get_dcmi_capability_info_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_dcmi_get_dcmi_capability_info (parameter_selector, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_GROUP_EXTENSION_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_get_device_guid (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if ((FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_get_device_guid_rs) < 0) && (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_get_device_guid_format_rs) < 0)) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_get_device_guid_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_get_device_guid (obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_APP_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_acpi_power_state (ipmi_ctx_t ctx, uint8_t system_power_state_enumeration, uint8_t set_system_power_state, uint8_t device_power_state_enumeration, uint8_t set_device_power_state, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_acpi_power_state_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_acpi_power_state_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_acpi_power_state (system_power_state_enumeration, set_system_power_state, device_power_state_enumeration, set_device_power_state, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_APP_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_command_sub_function_enables_defining_body_code (ipmi_ctx_t ctx, uint8_t channel_number, uint8_t net_fn, uint8_t lun, uint8_t command, uint8_t defining_body_code, uint32_t sub_function_enables1, uint32_t *sub_function_enables2, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_command_sub_function_enables_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_command_sub_function_enables_defining_body_code_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_command_sub_function_enables_defining_body_code (channel_number, net_fn, lun, command, defining_body_code, sub_function_enables1, sub_function_enables2, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_APP_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_dcmi_set_dcmi_configuration_parameters (ipmi_ctx_t ctx, uint8_t parameter_selector, uint8_t set_selector, const void *configuration_parameter_data, unsigned int configuration_parameter_data_len, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_dcmi_set_dcmi_configuration_parameters_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_dcmi_set_dcmi_configuration_parameters_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_dcmi_set_dcmi_configuration_parameters (parameter_selector, set_selector, configuration_parameter_data, configuration_parameter_data_len, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_GROUP_EXTENSION_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_dcmi_set_power_limit (ipmi_ctx_t ctx, uint8_t exception_actions, uint16_t power_limit_requested, uint32_t correction_time_limit, uint16_t management_application_statistics_sampling_period, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_dcmi_set_power_limit_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_dcmi_set_power_limit_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_dcmi_set_power_limit (exception_actions, power_limit_requested, correction_time_limit, management_application_statistics_sampling_period, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_GROUP_EXTENSION_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
static int _ipmi_cmd_get_serial_modem_configuration_parameters_common (ipmi_ctx_t ctx, uint8_t channel_number, uint8_t get_parameter, uint8_t set_selector, uint8_t block_selector, fiid_obj_t obj_cmd_rs, fiid_field_t *tmpl_cmd_rs_expected, uint8_t parameter_selector) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; assert (tmpl_cmd_rs_expected); if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_rs_expected) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_get_serial_modem_configuration_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_get_serial_modem_configuration (channel_number, get_parameter, parameter_selector, set_selector, block_selector, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_TRANSPORT_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_system_boot_options_boot_initiator_mailbox (ipmi_ctx_t ctx, uint8_t parameter_valid, uint8_t set_selector, const void *block_data, unsigned int block_data_length, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_system_boot_options_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_system_boot_options_boot_initiator_mailbox_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_system_boot_options_boot_initiator_mailbox (parameter_valid, set_selector, block_data, block_data_length, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_CHASSIS_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_user_payload_access (ipmi_ctx_t ctx, uint8_t channel_number, uint8_t user_id, uint8_t operation, uint8_t standard_payload_1, uint8_t standard_payload_2, uint8_t standard_payload_3, uint8_t standard_payload_4, uint8_t standard_payload_5, uint8_t standard_payload_6, uint8_t standard_payload_7, uint8_t oem_payload_0, uint8_t oem_payload_1, uint8_t oem_payload_2, uint8_t oem_payload_3, uint8_t oem_payload_4, uint8_t oem_payload_5, uint8_t oem_payload_6, uint8_t oem_payload_7, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_user_payload_access_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_user_payload_access_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_user_payload_access (channel_number, user_id, operation, standard_payload_1, standard_payload_2, standard_payload_3, standard_payload_4, standard_payload_5, standard_payload_6, standard_payload_7, oem_payload_0, oem_payload_1, oem_payload_2, oem_payload_3, oem_payload_4, oem_payload_5, oem_payload_6, oem_payload_7, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_APP_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_serial_modem_configuration_ipmi_messaging_comm_settings (ipmi_ctx_t ctx, uint8_t channel_number, uint8_t dtr_hangup, uint8_t flow_control, uint8_t bit_rate, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_serial_modem_configuration_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_serial_modem_configuration_ipmi_messaging_comm_settings_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_serial_modem_configuration_ipmi_messaging_comm_settings (channel_number, dtr_hangup, flow_control, bit_rate, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_TRANSPORT_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
static int _ipmi_cmd_get_system_boot_options_common (ipmi_ctx_t ctx, uint8_t set_selector, uint8_t block_selector, fiid_obj_t obj_cmd_rs, fiid_field_t *tmpl_cmd_rs_expected, uint8_t parameter_selector) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; assert (tmpl_cmd_rs_expected); if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_rs_expected) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_get_system_boot_options_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_get_system_boot_options (parameter_selector, set_selector, block_selector, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_CHASSIS_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_system_boot_options_boot_flags (ipmi_ctx_t ctx, uint8_t parameter_valid, uint8_t bios_boot_type, uint8_t boot_flags_persistent, uint8_t boot_flags_valid, uint8_t lock_out_reset_button, uint8_t screen_blank, uint8_t boot_device, uint8_t lock_keyboard, uint8_t cmos_clear, uint8_t console_redirection, uint8_t lock_out_sleep_button, uint8_t user_password_bypass, uint8_t force_progress_event_traps, uint8_t firmware_bios_verbosity, uint8_t lock_out_via_power_button, uint8_t bios_mux_control_override, uint8_t bios_shared_mode_override, uint8_t device_instance_selector, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_system_boot_options_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_system_boot_options_boot_flags_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_system_boot_options_boot_flags (parameter_valid, bios_boot_type, boot_flags_persistent, boot_flags_valid, lock_out_reset_button, screen_blank, boot_device, lock_keyboard, cmos_clear, console_redirection, lock_out_sleep_button, user_password_bypass, force_progress_event_traps, firmware_bios_verbosity, lock_out_via_power_button, bios_mux_control_override, bios_shared_mode_override, device_instance_selector, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_CHASSIS_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_system_boot_options_boot_info_acknowledge (ipmi_ctx_t ctx, uint8_t parameter_valid, const uint8_t *bios_or_post_handled_boot_info, const uint8_t *os_loader_handled_boot_info, const uint8_t *os_or_service_partition_handled_boot_info, const uint8_t *sms_handled_boot_info, const uint8_t *oem_handled_boot_info, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_system_boot_options_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_system_boot_options_boot_info_acknowledge_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_system_boot_options_boot_info_acknowledge (parameter_valid, bios_or_post_handled_boot_info, os_loader_handled_boot_info, os_or_service_partition_handled_boot_info, sms_handled_boot_info, oem_handled_boot_info, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_CHASSIS_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_system_boot_options_BMC_boot_flag_valid_bit_clearing (ipmi_ctx_t ctx, uint8_t parameter_valid, uint8_t dont_clear_on_power_up, uint8_t dont_clear_on_pushbutton_rest_soft_reset, uint8_t dont_clear_on_watchdog_timeout, uint8_t dont_clear_on_chassis_control, uint8_t dont_clear_on_PEF, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_system_boot_options_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_system_boot_options_BMC_boot_flag_valid_bit_clearing_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_system_boot_options_BMC_boot_flag_valid_bit_clearing (parameter_valid, dont_clear_on_power_up, dont_clear_on_pushbutton_rest_soft_reset, dont_clear_on_watchdog_timeout, dont_clear_on_chassis_control, dont_clear_on_PEF, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_CHASSIS_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }
int ipmi_cmd_set_front_panel_enables (ipmi_ctx_t ctx, uint8_t disable_power_off_button_for_power_off_only, uint8_t disable_reset_button, uint8_t disable_diagnostic_interrupt_button, uint8_t disable_standby_button_for_entering_standby, fiid_obj_t obj_cmd_rs) { fiid_obj_t obj_cmd_rq = NULL; int rv = -1; if (!ctx || ctx->magic != IPMI_CTX_MAGIC) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); return (-1); } /* remaining parameter checks in fill function */ if (!fiid_obj_valid (obj_cmd_rs)) { API_SET_ERRNUM (ctx, IPMI_ERR_PARAMETERS); return (-1); } if (FIID_OBJ_TEMPLATE_COMPARE (obj_cmd_rs, tmpl_cmd_set_front_panel_enables_rs) < 0) { API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs); return (-1); } if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_set_front_panel_enables_rq))) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (fill_cmd_set_front_panel_enables (disable_power_off_button_for_power_off_only, disable_reset_button, disable_diagnostic_interrupt_button, disable_standby_button_for_entering_standby, obj_cmd_rq) < 0) { API_ERRNO_TO_API_ERRNUM (ctx, errno); goto cleanup; } if (api_ipmi_cmd (ctx, IPMI_BMC_IPMB_LUN_BMC, IPMI_NET_FN_CHASSIS_RQ, obj_cmd_rq, obj_cmd_rs) < 0) { ERR_TRACE (ipmi_ctx_errormsg (ctx), ipmi_ctx_errnum (ctx)); goto cleanup; } rv = 0; cleanup: fiid_obj_destroy (obj_cmd_rq); return (rv); }