static json_t *mbp_evt_get(struct rest_uri_param *param) { rf_evt_svc_t service = { { {0} } }; json_t *result = NULL; int32 idx, reg = 0; get_rf_base_info(&(service.base)); result = json_object(); if (result == NULL) { HTTPD_ERR("result json object request error\n"); return NULL; } idx = get_asset_idx(param, "mbp_id", MC_TYPE_CM); if (idx == -1) { HTTPD_ERR("get mbp index fail\n"); return NULL; } pack_rf_base_json(result, &(service.base)); reg = 1 << (idx - 1); get_evt_links(&(service.links), MC_REDFISH_MBP_COLL, reg, RF_EVENT_MBP_FMT, idx); pack_rf_evt_links(result, &(service.links)); return result; }
int32 rf_evt_info_init(rf_evt_svc_t *service, int32 *evt_types, const int8 *fmt, ...) { va_list args; int32 rc = -1; rc = get_fixed_info(&service->fixed); if (rc != 0) { HTTPD_ERR("get redfish fixed info error\n"); return -1; } rc = get_evt_support(evt_types); if (rc != 0) { HTTPD_ERR("get redfish event support error\n"); return -1; } va_start(args, fmt); rc = get_evt_links(&service->links, fmt, args); va_end(args); if (rc != 0) { HTTPD_ERR("get redfish event links error\n"); return -1; } return 0; }
static json_t *fan_evt_get(struct rest_uri_param *param) { rf_evt_svc_t service = { { {0} } }; json_t *result = NULL; int32 tzone_idx, fan_idx, reg = 0; get_rf_base_info(&(service.base)); result = json_object(); if (result == NULL) { HTTPD_ERR("result json object request error\n"); return NULL; } tzone_idx = get_asset_idx(param, "zone_id", MC_TYPE_TZONE); if (tzone_idx == -1) { HTTPD_ERR("get cooling zone index fail\n"); return NULL; } fan_idx = get_asset_idx(param, "fan_id", MC_TYPE_FAN); if (fan_idx == -1) { HTTPD_ERR("get psu zone index fail\n"); return NULL; } pack_rf_base_json(result, &(service.base)); reg = 1 << ((tzone_idx - 1) * MAX_PWM_NUM + (fan_idx - 1)); get_evt_links(&(service.links), MC_REDFISH_FAN_COLL, reg, RF_EVENT_FAN_FMT, tzone_idx, fan_idx); pack_rf_evt_links(result, &(service.links)); return result; }
static json_t *mbp_coll_evt_get(struct rest_uri_param *param) { rf_evt_svc_t service = { { {0} } }; json_t *result = NULL; int32 reg = 0; get_rf_base_info(&(service.base)); result = json_object(); if (result == NULL) { HTTPD_ERR("result json object request error\n"); return NULL; } pack_rf_base_json(result, &(service.base)); reg |= RF_EVENT_MASK_ALL; get_evt_links(&(service.links), MC_REDFISH_MBP_COLL, reg, RF_EVENT_MBP_COLL_FMT); pack_rf_evt_links(result, &(service.links)); return result; }