diff --git a/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/fani.h b/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/fani.h index dd8f7031..1e52e402 100644 --- a/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/fani.h +++ b/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/fani.h @@ -49,6 +49,12 @@ int onlp_fani_hw_init(uint32_t flags); */ int onlp_fani_sw_denit(void); +/** + * @brief Validate a fan id. + * @param id The fan id. + */ +int onlp_fani_id_validate(onlp_oid_id_t id); + /** * @brief Retrieve the fan's OID hdr. * @param id The fan id. diff --git a/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/ledi.h b/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/ledi.h index eb25a342..c5499686 100644 --- a/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/ledi.h +++ b/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/ledi.h @@ -46,6 +46,12 @@ int onlp_ledi_hw_init(uint32_t flags); */ int onlp_ledi_sw_denit(void); +/** + * @brief Validate an LED id. + * @param id The id. + */ +int onlp_ledi_id_validate(onlp_oid_id_t id); + /** * @brief Get the LED header. * @param id The LED OID diff --git a/packages/base/any/onlp/src/onlp/module/src/fan.c b/packages/base/any/onlp/src/onlp/module/src/fan.c index d0f0e95a..7537802b 100644 --- a/packages/base/any/onlp/src/onlp/module/src/fan.c +++ b/packages/base/any/onlp/src/onlp/module/src/fan.c @@ -69,6 +69,7 @@ onlp_fan_hdr_get_locked__(onlp_oid_t oid, onlp_oid_hdr_t* hdr) ONLP_OID_FAN_VALIDATE_GET_ID(oid, id); ONLP_PTR_VALIDATE_ZERO(hdr); + ONLP_IF_ERROR_RETURN(onlp_fani_id_validate(id)); rv = onlp_log_error(0, onlp_fani_hdr_get(id, hdr), @@ -89,6 +90,7 @@ onlp_fan_info_get_locked__(onlp_oid_t oid, onlp_fan_info_t* info) ONLP_OID_FAN_VALIDATE_GET_ID(oid, id); ONLP_PTR_VALIDATE_ZERO(info); + ONLP_IF_ERROR_RETURN(onlp_fani_id_validate(id)); rv = onlp_log_error(0, onlp_fani_info_get(id, info), @@ -109,6 +111,7 @@ onlp_fan_caps_get_locked__(onlp_oid_t oid, uint32_t* rv) ONLP_OID_FAN_VALIDATE_GET_ID(oid, id); ONLP_PTR_VALIDATE_ZERO(rv); + ONLP_IF_ERROR_RETURN(onlp_fani_id_validate(id)); return onlp_log_error(0, onlp_fani_caps_get(id, rv), @@ -125,6 +128,7 @@ onlp_fan_rpm_set_locked__(onlp_oid_t oid, int rpm) ONLP_OID_FAN_VALIDATE_GET_ID(oid, id); + ONLP_IF_ERROR_RETURN(onlp_fani_id_validate(id)); ONLP_TRY(onlp_log_error(0, onlp_fan_caps_get_locked__(oid, &caps), @@ -149,6 +153,7 @@ onlp_fan_percentage_set_locked__(onlp_oid_t oid, int p) onlp_oid_id_t id; ONLP_OID_FAN_VALIDATE_GET_ID(oid, id); + ONLP_IF_ERROR_RETURN(onlp_fani_id_validate(id)); ONLP_TRY(onlp_log_error(0, onlp_fan_caps_get_locked__(oid, &caps), @@ -171,6 +176,7 @@ onlp_fan_dir_set_locked__(onlp_oid_t oid, onlp_fan_dir_t dir) uint32_t caps = 0; ONLP_OID_FAN_VALIDATE_GET_ID(oid, id); + ONLP_IF_ERROR_RETURN(onlp_fani_id_validate(id)); ONLP_TRY(onlp_log_error(0, onlp_fani_caps_get(id, &caps), diff --git a/packages/base/any/onlp/src/onlp/module/src/led.c b/packages/base/any/onlp/src/onlp/module/src/led.c index 29f2a9e3..d76e5cae 100644 --- a/packages/base/any/onlp/src/onlp/module/src/led.c +++ b/packages/base/any/onlp/src/onlp/module/src/led.c @@ -55,10 +55,13 @@ ONLP_LOCKED_API0(onlp_led_sw_denit); static int onlp_led_hdr_get_locked__(onlp_oid_t oid, onlp_oid_hdr_t* hdr) { - ONLP_OID_LED_VALIDATE(oid); + int id; + ONLP_OID_LED_VALIDATE_GET_ID(oid, id); ONLP_PTR_VALIDATE_ZERO(hdr); + ONLP_IF_ERROR_RETURN(onlp_ledi_id_validate(id)); + return onlp_log_error(0x0, - onlp_ledi_hdr_get(oid, hdr), + onlp_ledi_hdr_get(id, hdr), "ledi hdr get %{onlp_oid}", oid); } ONLP_LOCKED_API2(onlp_led_hdr_get, onlp_oid_t, id, onlp_oid_hdr_t*, hdr); @@ -67,10 +70,13 @@ ONLP_LOCKED_API2(onlp_led_hdr_get, onlp_oid_t, id, onlp_oid_hdr_t*, hdr); static int onlp_led_info_get_locked__(onlp_oid_t oid, onlp_led_info_t* info) { - ONLP_OID_LED_VALIDATE(oid); + int id; + ONLP_OID_LED_VALIDATE_GET_ID(oid, id); ONLP_PTR_VALIDATE_ZERO(info); + ONLP_IF_ERROR_RETURN(onlp_ledi_id_validate(id)); + return onlp_log_error(0x0, - onlp_ledi_info_get(oid, info), + onlp_ledi_info_get(id, info), "ledi info get %{onlp_oid}", oid); } ONLP_LOCKED_API2(onlp_led_info_get, onlp_oid_t, id, onlp_led_info_t*, info); @@ -98,6 +104,7 @@ onlp_led_mode_set_locked__(onlp_oid_t oid, onlp_led_mode_t mode) onlp_oid_id_t id; ONLP_OID_LED_VALIDATE_GET_ID(oid, id); + ONLP_IF_ERROR_RETURN(onlp_ledi_id_validate(id)); ONLP_TRY(onlp_log_error(0, onlp_led_caps_get_locked__(oid, &caps), @@ -120,6 +127,7 @@ onlp_led_char_set_locked__(onlp_oid_t oid, char c) onlp_oid_id_t id; ONLP_OID_LED_VALIDATE_GET_ID(oid, id); + ONLP_IF_ERROR_RETURN(onlp_ledi_id_validate(id)); ONLP_TRY(onlp_log_error(0, onlp_led_caps_get_locked__(oid, &caps), diff --git a/packages/base/any/onlp/src/onlp/module/src/psu.c b/packages/base/any/onlp/src/onlp/module/src/psu.c index 8d2dbce7..0641bca9 100644 --- a/packages/base/any/onlp/src/onlp/module/src/psu.c +++ b/packages/base/any/onlp/src/onlp/module/src/psu.c @@ -59,6 +59,7 @@ onlp_psu_hdr_get_locked__(onlp_oid_t oid, onlp_oid_hdr_t* hdr) ONLP_OID_PSU_VALIDATE_GET_ID(oid, id); ONLP_PTR_VALIDATE_ZERO(hdr); + ONLP_IF_ERROR_RETURN(onlp_psui_id_validate(id)); rv = onlp_log_error(0, onlp_psui_hdr_get(id, hdr), @@ -76,6 +77,8 @@ onlp_psu_info_get_locked__(onlp_oid_t oid, onlp_psu_info_t* info) ONLP_OID_PSU_VALIDATE_GET_ID(oid, id); ONLP_PTR_VALIDATE_ZERO(info); + ONLP_IF_ERROR_RETURN(onlp_psui_id_validate(id)); + rv = onlp_log_error(0, onlp_psui_info_get(id, info), "psui info get %{onlp_oid}", oid); diff --git a/packages/base/any/onlp/src/onlp/module/src/thermal.c b/packages/base/any/onlp/src/onlp/module/src/thermal.c index 711153c6..09fae0d9 100644 --- a/packages/base/any/onlp/src/onlp/module/src/thermal.c +++ b/packages/base/any/onlp/src/onlp/module/src/thermal.c @@ -59,6 +59,7 @@ onlp_thermal_hdr_get_locked__(onlp_oid_t oid, onlp_oid_hdr_t* hdr) ONLP_OID_THERMAL_VALIDATE_GET_ID(oid, id); ONLP_PTR_VALIDATE_ZERO(hdr); + ONLP_IF_ERROR_RETURN(onlp_thermali_id_validate(id)); rv = onlp_log_error(0, onlp_thermali_hdr_get(id, hdr), @@ -77,6 +78,7 @@ onlp_thermal_info_get_locked__(onlp_oid_t oid, onlp_thermal_info_t* info) ONLP_OID_THERMAL_VALIDATE_GET_ID(oid, id); ONLP_PTR_VALIDATE_ZERO(info); + ONLP_IF_ERROR_RETURN(onlp_thermali_id_validate(id)); rv = onlp_log_error(0, onlp_thermali_info_get(id, info), diff --git a/packages/base/any/onlp/src/onlp_platform_defaults/module/src/fani.c b/packages/base/any/onlp/src/onlp_platform_defaults/module/src/fani.c index 7d2dfa16..531bdf80 100644 --- a/packages/base/any/onlp/src/onlp_platform_defaults/module/src/fani.c +++ b/packages/base/any/onlp/src/onlp_platform_defaults/module/src/fani.c @@ -33,6 +33,8 @@ __ONLP_DEFAULTI_IMPLEMENTATION_OPTIONAL(onlp_fani_sw_init(void)); __ONLP_DEFAULTI_IMPLEMENTATION_OPTIONAL(onlp_fani_hw_init(uint32_t flags)); __ONLP_DEFAULTI_IMPLEMENTATION_OPTIONAL(onlp_fani_sw_denit(void)); +__ONLP_DEFAULTI_IMPLEMENTATION_OPTIONAL(onlp_fani_id_validate(onlp_oid_id_t id)); + __ONLP_DEFAULTI_IMPLEMENTATION(onlp_fani_info_get(onlp_oid_id_t id, onlp_fan_info_t* info)); /**