您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ API_SET_ERRNUM函数代码示例

51自学网 2021-06-01 19:35:20
  C++
这篇教程C++ API_SET_ERRNUM函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中API_SET_ERRNUM函数的典型用法代码示例。如果您正苦于以下问题:C++ API_SET_ERRNUM函数的具体用法?C++ API_SET_ERRNUM怎么用?C++ API_SET_ERRNUM使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了API_SET_ERRNUM函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ipmi_cmd_set_sol_configuration_parameters_sol_retry

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:60,


示例2: ipmi_cmd_set_system_boot_options_service_partition_scan

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:60,


示例3: ipmi_cmd_set_auxiliary_log_status

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:60,


示例4: ipmi_cmd_get_oem_netfn_iana_support

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:60,


示例5: _api_ipmi_cmd_post

static int_api_ipmi_cmd_post (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs){  int ret;  assert (ctx	  && ctx->magic == IPMI_CTX_MAGIC	  && fiid_obj_valid (obj_cmd_rs));  if (ctx->flags & IPMI_FLAGS_NO_LEGAL_CHECK)    {      uint64_t val;      /* Do not check completion code if data not available       * (i.e. FIID_ERR_DATA_NOT_AVAILABLE completion code).       *       * Fallthrough to normal error if it's an alternate fiid error       * (invalid packet, field not found, etc.)       */            if (FIID_OBJ_GET (obj_cmd_rs, "comp_code", &val) < 0)	{	  if (fiid_obj_errnum (obj_cmd_rs) == FIID_ERR_DATA_NOT_AVAILABLE)	    goto skip_comp_code_check;	}    }  if ((ret = ipmi_check_completion_code_success (obj_cmd_rs)) < 0)    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      return (-1);    }    if (!ret)    {      API_BAD_RESPONSE_TO_API_ERRNUM (ctx, obj_cmd_rs);      return (-1);    } skip_comp_code_check:  if (!(ctx->flags & IPMI_FLAGS_NO_VALID_CHECK)      && !(ctx->flags & IPMI_FLAGS_NO_LEGAL_CHECK))    {      if ((ret = fiid_obj_packet_valid (obj_cmd_rs)) < 0)        {          API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs);          return (-1);        }      if (!ret)        {          API_SET_ERRNUM (ctx, IPMI_ERR_IPMI_ERROR);          return (-1);        }    }  return (0);}
开发者ID:NodePrime,项目名称:freeipmi,代码行数:59,


示例6: ipmi_cmd_read_fru_data

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:59,


示例7: ipmi_cmd_chassis_identify

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:58,


示例8: ipmi_cmd_clear_sel

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:58,


示例9: ipmi_cmd_dcmi_get_management_controller_identifier_string

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:58,


示例10: ipmi_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_3

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:58,


示例11: ipmi_cmd_dcmi_get_thermal_limit

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:58,


示例12: ipmi_cmd_dcmi_get_dcmi_configuration_parameters_dhcp_timing_3

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:56,


示例13: _ipmi_cmd_dcmi_get_dcmi_capability_info_common

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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:55,


示例14: ipmi_cmd_get_device_guid

intipmi_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);}
开发者ID:NodePrime,项目名称:freeipmi,代码行数:54,


示例15: ipmi_cmd_dcmi_set_power_limit

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:62,


示例16: ipmi_cmd_set_system_boot_options_boot_initiator_mailbox

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:62,


示例17: _ipmi_cmd_get_serial_modem_configuration_parameters_common

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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:66,


示例18: ipmi_cmd_set_serial_modem_configuration_ipmi_messaging_comm_settings

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:62,


示例19: api_ssif_cmd_ipmb

intapi_ssif_cmd_ipmb (ipmi_ctx_t ctx,		   fiid_obj_t obj_cmd_rq,		   fiid_obj_t obj_cmd_rs){  fiid_obj_t obj_ipmb_msg_hdr_rs = NULL;  fiid_obj_t obj_ipmb_msg_trlr = NULL;  unsigned retransmission_count = 0;  unsigned reread_count = 0;  int ret, rv = -1;  assert (ctx	  && ctx->magic == IPMI_CTX_MAGIC	  && ctx->type == IPMI_DEVICE_SSIF	  && fiid_obj_valid (obj_cmd_rq)	  && fiid_obj_packet_valid (obj_cmd_rq) == 1	  && fiid_obj_valid (obj_cmd_rs));  if (!(obj_ipmb_msg_hdr_rs = fiid_obj_create (tmpl_ipmb_msg_hdr_rs)))    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  if (!(obj_ipmb_msg_trlr = fiid_obj_create (tmpl_ipmb_msg_trlr)))    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  /* for debugging */  ctx->tmpl_ipmb_cmd_rq = fiid_obj_template (obj_cmd_rq);  ctx->tmpl_ipmb_cmd_rs = fiid_obj_template (obj_cmd_rs);  if (_api_ssif_ipmb_send (ctx, obj_cmd_rq) < 0)    goto cleanup;  while (1)    {      if (_api_ssif_ipmb_recv (ctx,			       obj_ipmb_msg_hdr_rs,			       obj_ipmb_msg_trlr,			       obj_cmd_rs) < 0)        {          if (ctx->errnum == IPMI_ERR_MESSAGE_TIMEOUT)            {              reread_count++;              if (reread_count > IPMI_SSIF_IPMB_REREAD_COUNT)                {                  API_SET_ERRNUM (ctx, IPMI_ERR_MESSAGE_TIMEOUT);                  goto cleanup;                }	      /* Wait a little bit to avoid spinning */	      usleep (IPMI_SSIF_IPMB_REREAD_WAIT);              continue;            }          goto cleanup;        }      if ((ret = ipmi_ipmb_check_rq_seq (obj_ipmb_msg_hdr_rs,                                         ctx->io.inband.rq_seq)) < 0)        {          API_ERRNO_TO_API_ERRNUM (ctx, errno);          goto cleanup;        }      /* if it's the wrong rq_seq, get another packet */      if (!ret)        continue;      if ((ret = ipmi_ipmb_check_checksum (IPMI_SLAVE_ADDRESS_BMC,                                           obj_ipmb_msg_hdr_rs,                                           obj_cmd_rs,                                           obj_ipmb_msg_trlr)) < 0)        {          API_ERRNO_TO_API_ERRNUM (ctx, errno);          goto cleanup;        }      /* if the checksum is wrong, assume an error and resend */      if (!ret)        {          retransmission_count++;          if (retransmission_count > IPMI_SSIF_IPMB_RETRANSMISSION_COUNT)            {              API_SET_ERRNUM (ctx, IPMI_ERR_MESSAGE_TIMEOUT);              goto cleanup;            }          ctx->io.inband.rq_seq = ((ctx->io.inband.rq_seq) + 1) % (IPMI_IPMB_REQUESTER_SEQUENCE_NUMBER_MAX + 1);          if (_api_ssif_ipmb_send (ctx, obj_cmd_rq) < 0)            goto cleanup;          continue;        }      break;//.........这里部分代码省略.........
开发者ID:planetA,项目名称:freeipmi,代码行数:101,


示例20: _api_ssif_ipmb_recv

static int_api_ssif_ipmb_recv (ipmi_ctx_t ctx,		     fiid_obj_t obj_ipmb_msg_hdr_rs,		     fiid_obj_t obj_ipmb_msg_trlr,		     fiid_obj_t obj_cmd_rs){  struct ipmi_ctx_target target_save;  uint8_t buf[IPMI_MAX_PKT_LEN];  fiid_obj_t obj_ipmb_msg_rs = NULL;  fiid_obj_t obj_get_cmd_rs = NULL;  int len, ret, rv = -1;  unsigned int intf_flags = IPMI_INTERFACE_FLAGS_DEFAULT;  assert (ctx          && ctx->magic == IPMI_CTX_MAGIC          && ctx->type == IPMI_DEVICE_SSIF          && fiid_obj_valid (obj_ipmb_msg_hdr_rs)          && fiid_obj_valid (obj_ipmb_msg_trlr)          && fiid_obj_valid (obj_cmd_rs));  if (ctx->flags & IPMI_FLAGS_NO_LEGAL_CHECK)    intf_flags |= IPMI_INTERFACE_FLAGS_NO_LEGAL_CHECK;  if (!(obj_ipmb_msg_rs = fiid_obj_create (tmpl_ipmb_msg)))    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  if (!(obj_get_cmd_rs = fiid_obj_create (tmpl_cmd_get_message_rs)))    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }    /* get_message will send to the BMC, so clear out target information */  memcpy (&target_save, &ctx->target, sizeof (target_save));  ctx->target.channel_number_is_set = 0;  ctx->target.rs_addr_is_set = 0;    ret = ipmi_cmd_get_message (ctx, obj_get_cmd_rs);  /* restore target info */  memcpy (&ctx->target, &target_save, sizeof (target_save));  if (ret < 0)    {      if (ipmi_check_completion_code (obj_get_cmd_rs, IPMI_COMP_CODE_GET_MESSAGE_DATA_NOT_AVAILABLE) == 1)        API_SET_ERRNUM (ctx, IPMI_ERR_MESSAGE_TIMEOUT);      else        API_BAD_RESPONSE_TO_API_ERRNUM (ctx, obj_get_cmd_rs);      goto cleanup;    }  if ((len = fiid_obj_get_data (obj_get_cmd_rs,                                "message_data",                                buf,                                IPMI_MAX_PKT_LEN)) < 0)    {      API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_get_cmd_rs);      goto cleanup;    }  if (fiid_obj_set_all (obj_ipmb_msg_rs,                        buf,                        len) < 0)    {      API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_ipmb_msg_rs);      goto cleanup;    }  if (unassemble_ipmi_ipmb_msg (obj_ipmb_msg_rs,                                obj_ipmb_msg_hdr_rs,                                obj_cmd_rs,                                obj_ipmb_msg_trlr,				intf_flags) < 0)    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  rv = 0; cleanup:  fiid_obj_destroy (obj_ipmb_msg_rs);  fiid_obj_destroy (obj_get_cmd_rs);  return (rv);}
开发者ID:planetA,项目名称:freeipmi,代码行数:86,


示例21: _api_ssif_ipmb_send

static int_api_ssif_ipmb_send (ipmi_ctx_t ctx,		     fiid_obj_t obj_cmd_rq){  struct ipmi_ctx_target target_save;  uint8_t buf[IPMI_MAX_PKT_LEN];  fiid_obj_t obj_ipmb_msg_hdr_rq = NULL;  fiid_obj_t obj_ipmb_msg_rq = NULL;  fiid_obj_t obj_send_cmd_rs = NULL;  int len, ret, rv = -1;  assert (ctx          && ctx->magic == IPMI_CTX_MAGIC          && ctx->type == IPMI_DEVICE_SSIF          && fiid_obj_valid (obj_cmd_rq)          && fiid_obj_packet_valid (obj_cmd_rq) == 1);  if (!(obj_ipmb_msg_hdr_rq = fiid_obj_create (tmpl_ipmb_msg_hdr_rq)))    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  if (!(obj_ipmb_msg_rq = fiid_obj_create (tmpl_ipmb_msg)))    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  if (!(obj_send_cmd_rs = fiid_obj_create (tmpl_cmd_send_message_rs)))    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  if (fill_ipmb_msg_hdr (ctx->target.rs_addr,                         ctx->target.net_fn,                         ctx->target.lun,                         IPMI_SLAVE_ADDRESS_BMC,                         IPMI_BMC_IPMB_LUN_SMS_MSG_LUN,                         ctx->io.inband.rq_seq,                         obj_ipmb_msg_hdr_rq) < 0)    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  if (assemble_ipmi_ipmb_msg (obj_ipmb_msg_hdr_rq,                              obj_cmd_rq,                              obj_ipmb_msg_rq,			      IPMI_INTERFACE_FLAGS_DEFAULT) < 0)    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  memset (buf, '/0', IPMI_MAX_PKT_LEN);  if ((len = fiid_obj_get_all (obj_ipmb_msg_rq,                               buf,                               IPMI_MAX_PKT_LEN)) < 0)    {      API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_ipmb_msg_rq);      goto cleanup;    }  /* send_message will send to the BMC, so clear out target information */  memcpy (&target_save, &ctx->target, sizeof (target_save));  ctx->target.channel_number_is_set = 0;  ctx->target.rs_addr_is_set = 0;    ret = ipmi_cmd_send_message (ctx,			       target_save.channel_number,			       IPMI_SEND_MESSAGE_AUTHENTICATION_NOT_REQUIRED,			       IPMI_SEND_MESSAGE_ENCRYPTION_NOT_REQUIRED,			       IPMI_SEND_MESSAGE_TRACKING_OPERATION_NO_TRACKING,			       buf,			       len,			       obj_send_cmd_rs);  /* restore target info */  memcpy (&ctx->target, &target_save, sizeof (target_save));  if (ret < 0)    {      /* assume these mean can't send message, bad slave address, etc. */      if (ipmi_check_completion_code (obj_send_cmd_rs, IPMI_COMP_CODE_SEND_MESSAGE_LOST_ARBITRATION) == 1          || ipmi_check_completion_code (obj_send_cmd_rs, IPMI_COMP_CODE_SEND_MESSAGE_BUS_ERROR) == 1          || ipmi_check_completion_code (obj_send_cmd_rs, IPMI_COMP_CODE_SEND_MESSAGE_NAK_ON_WRITE) == 1)        API_SET_ERRNUM (ctx, IPMI_ERR_MESSAGE_TIMEOUT);      else        API_BAD_RESPONSE_TO_API_ERRNUM (ctx, obj_send_cmd_rs);      goto cleanup;    }  rv = 0; cleanup:  fiid_obj_destroy (obj_ipmb_msg_hdr_rq);  fiid_obj_destroy (obj_ipmb_msg_rq);  fiid_obj_destroy (obj_send_cmd_rs);  return (rv);}
开发者ID:planetA,项目名称:freeipmi,代码行数:99,


示例22: _ssif_cmd_read

static int_ssif_cmd_read (ipmi_ctx_t ctx,		uint8_t cmd,		uint8_t group_extension,		fiid_obj_t obj_cmd_rs){  uint8_t *pkt = NULL;  unsigned int pkt_len;  int hdr_len, cmd_len, read_len;  fiid_field_t *tmpl = NULL;  int ret, rv = -1;  unsigned int intf_flags = IPMI_INTERFACE_FLAGS_DEFAULT;    assert (ctx          && ctx->magic == IPMI_CTX_MAGIC          && fiid_obj_valid (obj_cmd_rs));  if (ctx->flags & IPMI_FLAGS_NO_LEGAL_CHECK)    intf_flags |= IPMI_INTERFACE_FLAGS_NO_LEGAL_CHECK;  if ((hdr_len = fiid_template_len_bytes (tmpl_hdr_kcs)) < 0)    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }    if (!(tmpl = fiid_obj_template (obj_cmd_rs)))    {      API_FIID_OBJECT_ERROR_TO_API_ERRNUM (ctx, obj_cmd_rs);      goto cleanup;    }    if ((cmd_len = fiid_template_len_bytes (tmpl)) < 0)    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }    pkt_len = hdr_len + cmd_len;    if (!(pkt = malloc (pkt_len)))    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  memset (pkt, '/0', pkt_len);    if ((read_len = ipmi_ssif_read (ctx->io.inband.ssif_ctx, pkt, pkt_len)) < 0)    {      API_SSIF_ERRNUM_TO_API_ERRNUM (ctx, ipmi_ssif_ctx_errnum (ctx->io.inband.ssif_ctx));      goto cleanup;    }  if (!read_len)    {      API_SET_ERRNUM (ctx, IPMI_ERR_SYSTEM_ERROR);      goto cleanup;    }    if (ctx->flags & IPMI_FLAGS_DEBUG_DUMP && read_len)    _api_ssif_dump_rs (ctx,		       pkt,		       read_len,		       cmd,		       ctx->target.net_fn,		       group_extension,		       obj_cmd_rs);  if ((ret = unassemble_ipmi_kcs_pkt (pkt,                                      read_len,                                      ctx->io.inband.rs.obj_hdr,                                      obj_cmd_rs,				      intf_flags)) < 0)    {      API_ERRNO_TO_API_ERRNUM (ctx, errno);      goto cleanup;    }  /* IPMI didn't return enough data back to you */  if (!ret)    {      API_SET_ERRNUM (ctx, IPMI_ERR_IPMI_ERROR);      goto cleanup;    }  rv = 0; cleanup:  free (pkt);  fiid_template_free (tmpl);  return (rv);}
开发者ID:planetA,项目名称:freeipmi,代码行数:91,


示例23: _ipmi_cmd_get_system_boot_options_common

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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:61,


示例24: ipmi_cmd_set_front_panel_enables

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:62,


示例25: ipmi_cmd_set_system_boot_options_boot_info_acknowledge

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:66,


示例26: ipmi_cmd_set_system_boot_options_BMC_boot_flag_valid_bit_clearing

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:66,


示例27: ipmi_cmd_set_acpi_power_state

intipmi_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);}
开发者ID:NodePrime,项目名称:freeipmi,代码行数:62,


示例28: ipmi_cmd_dcmi_set_dcmi_configuration_parameters

intipmi_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);}
开发者ID:chu11,项目名称:freeipmi-mirror,代码行数:62,


示例29: ipmi_cmd_set_system_boot_options_boot_flags

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:90,


示例30: ipmi_cmd_set_user_payload_access

intipmi_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);}
开发者ID:platinasystems,项目名称:freeipmi,代码行数:90,



注:本文中的API_SET_ERRNUM函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ APLOGNO函数代码示例
C++ API_ERRNO_TO_API_ERRNUM函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。