diff --git a/module/scmi_clock/include/mod_scmi_clock.h b/module/scmi_clock/include/mod_scmi_clock.h index 793111f32ca5f0115c4ecabc63d33b6491a214b5..65976cc15f7005bdbfaab7e4878ff579d43264b2 100644 --- a/module/scmi_clock/include/mod_scmi_clock.h +++ b/module/scmi_clock/include/mod_scmi_clock.h @@ -199,6 +199,7 @@ enum mod_scmi_clock_policy_commit { enum scmi_clock_notification_id { SCMI_CLOCK_RATE_CHANGED = 0x000, SCMI_CLOCK_RATE_CHANGE_REQUESTED = 0x001, + SCMI_CLOCK_NOTIFICATION_COUNT, }; /*! diff --git a/module/scmi_clock/src/mod_scmi_clock.c b/module/scmi_clock/src/mod_scmi_clock.c index 244ff7615341a92ebc6bf58fd72ccac2584a6518..528f39532845f457766c3752db85222b9427324e 100644 --- a/module/scmi_clock/src/mod_scmi_clock.c +++ b/module/scmi_clock/src/mod_scmi_clock.c @@ -34,8 +34,6 @@ # include #endif -#define MOD_SCMI_CLOCK_NOTIFICATION_COUNT 2 - struct clock_operations { /* * Service identifier currently requesting operation from this clock. @@ -93,8 +91,8 @@ struct mod_scmi_clock_ctx { #ifdef BUILD_HAS_SCMI_NOTIFICATIONS - /* SCMI notification API */ - const struct mod_scmi_notification_api *scmi_notification_api; + /* SCMI notification subscriber table */ + fwk_id_t ***notification_table; #endif }; @@ -347,11 +345,9 @@ static enum mod_scmi_clock_policy_status scmi_clock_ref_count_table_check( */ static int find_agent_scmi_clock_idx( unsigned int agent_id, - fwk_id_t clock_id, + unsigned int phy_dev_idx, unsigned int *clock_scmi_idx) { - unsigned int clock_dev_idx = fwk_id_get_element_idx(clock_id); - struct mod_scmi_clock_agent *agent = (struct mod_scmi_clock_agent *)scmi_clock_ctx.agent_table[agent_id]; @@ -362,7 +358,7 @@ static int find_agent_scmi_clock_idx( idx++) { if (fwk_id_get_element_idx( agent->agent_config->device_table[idx].element_id) == - clock_dev_idx) { + phy_dev_idx) { *clock_scmi_idx = idx; return FWK_SUCCESS; } @@ -394,6 +390,125 @@ static void clock_ref_count_allocate(void) sizeof(*scmi_clock_ctx.dev_clock_ref_count_table)); } +#ifdef BUILD_HAS_SCMI_NOTIFICATIONS +static enum scmi_clock_notification_id get_scmi_notification_id( + enum scmi_clock_command_id scmi_command_id) +{ + enum scmi_clock_notification_id notification_id = + SCMI_CLOCK_NOTIFICATION_COUNT; + + switch (scmi_command_id) { + case MOD_SCMI_CLOCK_RATE_NOTIFY: { + notification_id = SCMI_CLOCK_RATE_CHANGED; + break; + } + + case MOD_SCMI_CLOCK_RATE_CHANGE_REQUESTED_NOTIFY: { + notification_id = SCMI_CLOCK_RATE_CHANGE_REQUESTED; + break; + } + + default: + break; + } + + return notification_id; +} + +static void scmi_notification_init(void) +{ + unsigned int operation_count = SCMI_CLOCK_NOTIFICATION_COUNT; + unsigned int resource_count = scmi_clock_ctx.phy_device_count; + unsigned int subscriber_count = scmi_clock_ctx.agent_count; + + /* Allocate the top-level operation array */ + scmi_clock_ctx.notification_table = + fwk_mm_calloc(operation_count, sizeof(fwk_id_t **)); + + for (unsigned int op = 0; op < operation_count; op++) { + /* Allocate the resource array for each operation */ + scmi_clock_ctx.notification_table[op] = + fwk_mm_calloc(resource_count, sizeof(fwk_id_t *)); + + for (unsigned int res = 0; res < resource_count; res++) { + /* Allocate the subscriber array for each resource */ + scmi_clock_ctx.notification_table[op][res] = + fwk_mm_calloc(subscriber_count, sizeof(fwk_id_t)); + + for (unsigned int sub = 0; sub < subscriber_count; sub++) { + scmi_clock_ctx.notification_table[op][res][sub] = FWK_ID_NONE; + } + } + } +} + +static int scmi_notification_update_subscriber( + unsigned int operation_idx, + unsigned int resource_idx, + unsigned int subscriber_idx, + fwk_id_t service_id) +{ + if (!fwk_expect(operation_idx < SCMI_CLOCK_NOTIFICATION_COUNT) || + !fwk_expect(resource_idx < scmi_clock_ctx.phy_device_count) || + !fwk_expect(subscriber_idx < scmi_clock_ctx.agent_count)) { + return FWK_E_DATA; + } + + scmi_clock_ctx + .notification_table[operation_idx][resource_idx][subscriber_idx] = + service_id; + + return FWK_SUCCESS; +} + +static int scmi_notification_notify( + enum scmi_clock_notification_id operation_idx, + unsigned int requester_idx, + unsigned int resource_idx, + uint64_t data) +{ + int status; + unsigned int scmi_clock_idx; + + /* Skip subscriber_idx = 0 as it is the platform. */ + for (unsigned int subscriber_idx = 1; + subscriber_idx < scmi_clock_ctx.agent_count; + subscriber_idx++) { + fwk_id_t service_id = + scmi_clock_ctx.notification_table[operation_idx][resource_idx] + [subscriber_idx]; + + if (fwk_id_is_equal(service_id, FWK_ID_NONE)) { + continue; + } + + status = find_agent_scmi_clock_idx( + subscriber_idx, resource_idx, &scmi_clock_idx); + if (!fwk_expect(status == FWK_SUCCESS)) { + return status; + } + + struct scmi_clock_rate_notification_message_p2a message = { + .agent_id = requester_idx, + .clock_id = scmi_clock_idx, + .rate = { + [0] = (uint32_t)data, + [1] = (uint32_t)(data >> 32), + }, + }; + + scmi_clock_ctx.scmi_api->notify( + service_id, + (int)MOD_SCMI_PROTOCOL_ID_CLOCK, + (int)operation_idx, + (const void *)&message, + sizeof(message)); + } + + return FWK_SUCCESS; +} +#endif + /* * Helper for clock operations */ @@ -478,7 +593,9 @@ static void clock_attributes_respond( FWK_LOG_DEBUG("[SCMI-CLK] %s @%d", __func__, __LINE__); } else { status = find_agent_scmi_clock_idx( - agent_id, clock_dev_id, &scmi_clock_idx); + agent_id, + fwk_id_get_element_idx(clock_dev_id), + &scmi_clock_idx); if (status != FWK_SUCCESS) { FWK_LOG_DEBUG("[SCMI-CLK] %s @%d", __func__, __LINE__); } else { @@ -1549,21 +1666,21 @@ static int scmi_clock_rate_notify_handler( } # endif + unsigned int phy_dev_idx = fwk_id_get_element_idx(clock_device->element_id); + unsigned int notification_id = get_scmi_notification_id(command_id); + if (notification_id == SCMI_CLOCK_NOTIFICATION_COUNT) { + status = FWK_E_PARAM; + goto exit; + } + if (parameters->notify_enable) { - status = scmi_clock_ctx.scmi_notification_api - ->scmi_notification_add_subscriber( - MOD_SCMI_PROTOCOL_ID_CLOCK, - parameters->clock_id, - command_id, - service_id); + status = scmi_notification_update_subscriber( + notification_id, phy_dev_idx, agent_id, service_id); } else { - status = scmi_clock_ctx.scmi_notification_api - ->scmi_notification_remove_subscriber( - MOD_SCMI_PROTOCOL_ID_CLOCK, - agent_id, - parameters->clock_id, - command_id); + status = scmi_notification_update_subscriber( + notification_id, phy_dev_idx, agent_id, FWK_ID_NONE); } + if (status != FWK_SUCCESS) { goto exit; } @@ -1685,6 +1802,9 @@ static int scmi_clock_init(fwk_id_t module_id, unsigned int element_count, /* Allocate memory to device reference count */ clock_ref_count_allocate(); +#ifdef BUILD_HAS_SCMI_NOTIFICATIONS + scmi_notification_init(); +#endif return FWK_SUCCESS; } @@ -1730,35 +1850,8 @@ static int scmi_clock_element_init( scmi_clock_ref_count_table_update( fwk_id_get_element_idx(clock_id), MOD_CLOCK_STATE_RUNNING); } - - return FWK_SUCCESS; -} - -#ifdef BUILD_HAS_SCMI_NOTIFICATIONS -static int scmi_init_notifications(unsigned int clock_devices) -{ - int status; - - status = scmi_clock_ctx.scmi_api->get_agent_count( - (unsigned int *)&scmi_clock_ctx.agent_count); - if (status != FWK_SUCCESS) { - return status; - } - fwk_assert(scmi_clock_ctx.agent_count != 0u); - - status = scmi_clock_ctx.scmi_notification_api->scmi_notification_init( - MOD_SCMI_PROTOCOL_ID_CLOCK, - scmi_clock_ctx.agent_count, - clock_devices, - MOD_SCMI_CLOCK_NOTIFICATION_COUNT); - - if (status != FWK_SUCCESS) { - return status; - } - return FWK_SUCCESS; } -#endif static int scmi_clock_start(fwk_id_t id) { @@ -1779,9 +1872,6 @@ static int scmi_clock_start(fwk_id_t id) if (status != FWK_SUCCESS) { return status; } - - status = - scmi_init_notifications((unsigned int)scmi_clock_ctx.phy_device_count); #endif return status; } @@ -1816,16 +1906,6 @@ static int scmi_clock_bind(fwk_id_t id, unsigned int round) } #endif -#ifdef BUILD_HAS_SCMI_NOTIFICATIONS - status = fwk_module_bind( - FWK_ID_MODULE(FWK_MODULE_IDX_SCMI), - FWK_ID_API(FWK_MODULE_IDX_SCMI, MOD_SCMI_API_IDX_NOTIFICATION), - &scmi_clock_ctx.scmi_notification_api); - if (status != FWK_SUCCESS) { - return status; - } -#endif - return fwk_module_bind(FWK_ID_MODULE(FWK_MODULE_IDX_CLOCK), FWK_ID_API(FWK_MODULE_IDX_CLOCK, 0), &scmi_clock_ctx.clock_api); } @@ -2010,78 +2090,35 @@ static int scmi_clock_process_event(const struct fwk_event *event, } #ifdef BUILD_HAS_SCMI_NOTIFICATIONS - -static void scmi_clock_rate_change_notify( - enum scmi_clock_command_id command_id, - enum scmi_clock_notification_id notification_message_id, - unsigned int agent_id, - unsigned int scmi_clock_idx, - uint64_t clock_rate) -{ - int status; - - struct scmi_clock_rate_notification_message_p2a message; - - message.agent_id = agent_id; - message.clock_id = scmi_clock_idx; - message.rate[0] = (uint32_t)clock_rate; - message.rate[1] = (uint32_t)(clock_rate >> 32); - - status = scmi_clock_ctx.scmi_notification_api->scmi_notification_notify( - MOD_SCMI_PROTOCOL_ID_CLOCK, - command_id, - scmi_clock_idx, - notification_message_id, - &message, - sizeof(message)); - if (status != FWK_SUCCESS) { - FWK_LOG_DEBUG("[SCMI-clk] %s @%d", __func__, __LINE__); - } -} - static int scmi_clock_process_notification( const struct fwk_event *notification_event, struct fwk_event *resp_event) { - int status; - unsigned int notification_idx, agent_id, scmi_clock_idx; - enum scmi_clock_command_id command_id; - enum scmi_clock_notification_id message_id; + unsigned int notification_idx; + enum scmi_clock_notification_id notification_id; struct mod_clock_notification_params *notification_params = ((struct mod_clock_notification_params *)notification_event->params); - agent_id = notification_params->requester_id; notification_idx = fwk_id_get_notification_idx(notification_event->id); switch (notification_idx) { case (unsigned int)MOD_CLOCK_NOTIFICATION_IDX_RATE_CHANGED: - command_id = MOD_SCMI_CLOCK_RATE_NOTIFY; - message_id = SCMI_CLOCK_RATE_CHANGED; + notification_id = SCMI_CLOCK_RATE_CHANGED; break; case (unsigned int)MOD_CLOCK_NOTIFICATION_IDX_RATE_CHANGE_REQUESTED: - command_id = MOD_SCMI_CLOCK_RATE_CHANGE_REQUESTED_NOTIFY; - message_id = SCMI_CLOCK_RATE_CHANGE_REQUESTED; + notification_id = SCMI_CLOCK_RATE_CHANGE_REQUESTED; break; default: return FWK_E_PARAM; } - status = find_agent_scmi_clock_idx( - agent_id, notification_params->clock_id, &scmi_clock_idx); - if (status != FWK_SUCCESS) { - return status; - } - - scmi_clock_rate_change_notify( - command_id, - message_id, - agent_id, - scmi_clock_idx, + return scmi_notification_notify( + notification_id, + notification_params->requester_id, + fwk_id_get_element_idx(notification_params->clock_id), notification_params->rate); - - return FWK_SUCCESS; } #endif diff --git a/module/scmi_clock/test/config_scmi_clock.h b/module/scmi_clock/test/config_scmi_clock.h index 281ceb88d19354533a70cdf9a851d71d9e82fec4..5a3079fbcb12d2580b12f3b9d2967125c537cbb5 100644 --- a/module/scmi_clock/test/config_scmi_clock.h +++ b/module/scmi_clock/test/config_scmi_clock.h @@ -88,6 +88,63 @@ static const uint8_t dev_clock_ref_count_table_default[CLOCK_DEV_IDX_COUNT] = { static struct clock_operations clock_ops_table[CLOCK_DEV_IDX_COUNT]; +#ifdef BUILD_HAS_SCMI_NOTIFICATIONS +#define INIT_SUBSCRIBERS(SUBSCRIBER_COUNT, VALUE) \ + { [0 ... (FAKE_SCMI_AGENT_IDX_COUNT - 1)] = VALUE } + +#define INIT_RESOURCES(RESOURCE_COUNT, SUBSCRIBER_COUNT, VALUE) \ + { [0 ... (RESOURCE_COUNT - 1)] = INIT_SUBSCRIBERS(SUBSCRIBER_COUNT, VALUE) } + +#define INIT_TABLE(OPERATION_COUNT, RESOURCE_COUNT, SUBSCRIBER_COUNT, VALUE) \ + { [0 ... (OPERATION_COUNT -1)] = INIT_RESOURCES(RESOURCE_COUNT, SUBSCRIBER_COUNT, VALUE) } + +// static fwk_id_t subscriber_table_default[SCMI_CLOCK_NOTIFICATION_COUNT][CLOCK_DEV_IDX_COUNT][FAKE_SCMI_AGENT_IDX_COUNT] = +// INIT_TABLE(SCMI_CLOCK_NOTIFICATION_COUNT, CLOCK_DEV_IDX_COUNT, FAKE_SCMI_AGENT_IDX_COUNT, FWK_ID_NONE); + +// static fwk_id_t subscriber_table[SCMI_CLOCK_NOTIFICATION_COUNT][CLOCK_DEV_IDX_COUNT][FAKE_SCMI_AGENT_IDX_COUNT] = +// INIT_TABLE(SCMI_CLOCK_NOTIFICATION_COUNT, CLOCK_DEV_IDX_COUNT, FAKE_SCMI_AGENT_IDX_COUNT, FWK_ID_NONE); + +static fwk_id_t subscriber_table_default[FAKE_SCMI_AGENT_IDX_COUNT] = { + FWK_ID_NONE, + FWK_ID_NONE, + FWK_ID_NONE, + FWK_ID_NONE +}; + +static fwk_id_t *resource_table_default[CLOCK_DEV_IDX_COUNT] = { + [0] = subscriber_table_default, + [1] = subscriber_table_default, + [2] = subscriber_table_default, + [3] = subscriber_table_default, +}; + +static fwk_id_t **operation_table_default[SCMI_CLOCK_NOTIFICATION_COUNT] = +{ + [0] = resource_table_default, + [1] = resource_table_default, +}; + +static fwk_id_t subscriber_table[FAKE_SCMI_AGENT_IDX_COUNT] = { + FWK_ID_NONE, + FWK_ID_NONE, + FWK_ID_NONE, + FWK_ID_NONE +}; + +static fwk_id_t *resource_table[CLOCK_DEV_IDX_COUNT] = { + [0] = subscriber_table, + [1] = subscriber_table, + [2] = subscriber_table, + [3] = subscriber_table, +}; + +static fwk_id_t **operation_table[SCMI_CLOCK_NOTIFICATION_COUNT] = +{ + [0] = resource_table, + [1] = resource_table, +}; +#endif + static const struct mod_scmi_clock_device clock_dev_fake0 = { .element_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_DEV_IDX_FAKE0), @@ -162,8 +219,8 @@ struct fwk_module_config config_scmi_clock = { }; static struct mod_scmi_clock_agent ospm0_table = { - .agent_config = &ospm0_config, - .state_table = ospm0_state_table_default, + .agent_config = &ospm0_config, + .state_table = ospm0_state_table_default, }; static struct mod_scmi_clock_agent ospm1_table = { diff --git a/module/scmi_clock/test/mocks/Mockmod_scmi_clock_extra.c b/module/scmi_clock/test/mocks/Mockmod_scmi_clock_extra.c index ae7c042aecc24021b8e9235b43a3b097da90de45..3789023fbdcf9b69359f6326be6751328118185c 100644 --- a/module/scmi_clock/test/mocks/Mockmod_scmi_clock_extra.c +++ b/module/scmi_clock/test/mocks/Mockmod_scmi_clock_extra.c @@ -7,13 +7,10 @@ static const char* CMockString_agent_count = "agent_count"; static const char* CMockString_agent_id = "agent_id"; -static const char* CMockString_agent_idx = "agent_idx"; static const char* CMockString_agent_type = "agent_type"; static const char* CMockString_clock_id = "clock_id"; static const char* CMockString_command_count = "command_count"; static const char* CMockString_device_id = "device_id"; -static const char* CMockString_element_count = "element_count"; -static const char* CMockString_element_idx = "element_idx"; static const char* CMockString_flags = "flags"; static const char* CMockString_handler_table = "handler_table"; static const char* CMockString_message_id = "message_id"; @@ -35,22 +32,14 @@ static const char* CMockString_mod_scmi_from_protocol_api_scmi_frame_validation static const char* CMockString_mod_scmi_from_protocol_api_scmi_send_message = "mod_scmi_from_protocol_api_scmi_send_message"; static const char* CMockString_mod_scmi_from_protocol_api_write_payload = "mod_scmi_from_protocol_api_write_payload"; static const char* CMockString_offset = "offset"; -static const char* CMockString_operation_count = "operation_count"; -static const char* CMockString_operation_id = "operation_id"; static const char* CMockString_payload = "payload"; -static const char* CMockString_payload_p2a = "payload_p2a"; static const char* CMockString_payload_size = "payload_size"; static const char* CMockString_payload_size_table = "payload_size_table"; static const char* CMockString_protocol_id = "protocol_id"; static const char* CMockString_request_ack_by_interrupt = "request_ack_by_interrupt"; static const char* CMockString_resource_id = "resource_id"; static const char* CMockString_scmi_message_id = "scmi_message_id"; -static const char* CMockString_scmi_notification_add_subscriber = "scmi_notification_add_subscriber"; -static const char* CMockString_scmi_notification_init = "scmi_notification_init"; -static const char* CMockString_scmi_notification_notify = "scmi_notification_notify"; -static const char* CMockString_scmi_notification_remove_subscriber = "scmi_notification_remove_subscriber"; static const char* CMockString_scmi_protocol_id = "scmi_protocol_id"; -static const char* CMockString_scmi_response_message_id = "scmi_response_message_id"; static const char* CMockString_service_id = "service_id"; static const char* CMockString_size = "size"; static const char* CMockString_state = "state"; @@ -328,78 +317,6 @@ typedef struct _CMOCK_mod_clock_api_get_state_CALL_INSTANCE } CMOCK_mod_clock_api_get_state_CALL_INSTANCE; -typedef struct _CMOCK_scmi_notification_init_CALL_INSTANCE -{ - UNITY_LINE_TYPE LineNumber; - char ExpectAnyArgsBool; - int ReturnVal; - unsigned int Expected_protocol_id; - unsigned int Expected_agent_count; - unsigned int Expected_element_count; - unsigned int Expected_operation_count; - char IgnoreArg_protocol_id; - char IgnoreArg_agent_count; - char IgnoreArg_element_count; - char IgnoreArg_operation_count; - -} CMOCK_scmi_notification_init_CALL_INSTANCE; - -typedef struct _CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE -{ - UNITY_LINE_TYPE LineNumber; - char ExpectAnyArgsBool; - int ReturnVal; - unsigned int Expected_protocol_id; - unsigned int Expected_element_idx; - unsigned int Expected_operation_id; - fwk_id_t Expected_service_id; - char IgnoreArg_protocol_id; - char IgnoreArg_element_idx; - char IgnoreArg_operation_id; - char IgnoreArg_service_id; - -} CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE; - -typedef struct _CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE -{ - UNITY_LINE_TYPE LineNumber; - char ExpectAnyArgsBool; - int ReturnVal; - unsigned int Expected_protocol_id; - unsigned int Expected_agent_idx; - unsigned int Expected_element_idx; - unsigned int Expected_operation_id; - char IgnoreArg_protocol_id; - char IgnoreArg_agent_idx; - char IgnoreArg_element_idx; - char IgnoreArg_operation_id; - -} CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE; - -typedef struct _CMOCK_scmi_notification_notify_CALL_INSTANCE -{ - UNITY_LINE_TYPE LineNumber; - char ExpectAnyArgsBool; - int ReturnVal; - unsigned int Expected_protocol_id; - unsigned int Expected_operation_id; - unsigned int Expected_resource_id; - unsigned int Expected_scmi_response_message_id; - void* Expected_payload_p2a; - size_t Expected_payload_size; - int Expected_payload_p2a_Depth; - char ReturnThruPtr_payload_p2a_Used; - void* ReturnThruPtr_payload_p2a_Val; - size_t ReturnThruPtr_payload_p2a_Size; - char IgnoreArg_protocol_id; - char IgnoreArg_operation_id; - char IgnoreArg_resource_id; - char IgnoreArg_scmi_response_message_id; - char IgnoreArg_payload_p2a; - char IgnoreArg_payload_size; - -} CMOCK_scmi_notification_notify_CALL_INSTANCE; - static struct Mockmod_scmi_clock_extraInstance { char mod_scmi_from_protocol_api_get_agent_count_IgnoreBool; @@ -503,30 +420,6 @@ static struct Mockmod_scmi_clock_extraInstance CMOCK_mod_clock_api_get_state_CALLBACK mod_clock_api_get_state_CallbackFunctionPointer; int mod_clock_api_get_state_CallbackCalls; CMOCK_MEM_INDEX_TYPE mod_clock_api_get_state_CallInstance; - char scmi_notification_init_IgnoreBool; - int scmi_notification_init_FinalReturn; - char scmi_notification_init_CallbackBool; - CMOCK_scmi_notification_init_CALLBACK scmi_notification_init_CallbackFunctionPointer; - int scmi_notification_init_CallbackCalls; - CMOCK_MEM_INDEX_TYPE scmi_notification_init_CallInstance; - char scmi_notification_add_subscriber_IgnoreBool; - int scmi_notification_add_subscriber_FinalReturn; - char scmi_notification_add_subscriber_CallbackBool; - CMOCK_scmi_notification_add_subscriber_CALLBACK scmi_notification_add_subscriber_CallbackFunctionPointer; - int scmi_notification_add_subscriber_CallbackCalls; - CMOCK_MEM_INDEX_TYPE scmi_notification_add_subscriber_CallInstance; - char scmi_notification_remove_subscriber_IgnoreBool; - int scmi_notification_remove_subscriber_FinalReturn; - char scmi_notification_remove_subscriber_CallbackBool; - CMOCK_scmi_notification_remove_subscriber_CALLBACK scmi_notification_remove_subscriber_CallbackFunctionPointer; - int scmi_notification_remove_subscriber_CallbackCalls; - CMOCK_MEM_INDEX_TYPE scmi_notification_remove_subscriber_CallInstance; - char scmi_notification_notify_IgnoreBool; - int scmi_notification_notify_FinalReturn; - char scmi_notification_notify_CallbackBool; - CMOCK_scmi_notification_notify_CALLBACK scmi_notification_notify_CallbackFunctionPointer; - int scmi_notification_notify_CallbackCalls; - CMOCK_MEM_INDEX_TYPE scmi_notification_notify_CallInstance; } Mock; extern jmp_buf AbortFrame; @@ -756,58 +649,6 @@ void Mockmod_scmi_clock_extra_Verify(void) call_instance = CMOCK_GUTS_NONE; (void)call_instance; } - call_instance = Mock.scmi_notification_init_CallInstance; - if (Mock.scmi_notification_init_IgnoreBool) - call_instance = CMOCK_GUTS_NONE; - if (CMOCK_GUTS_NONE != call_instance) - { - UNITY_SET_DETAIL(CMockString_scmi_notification_init); - UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); - } - if (Mock.scmi_notification_init_CallbackFunctionPointer != NULL) - { - call_instance = CMOCK_GUTS_NONE; - (void)call_instance; - } - call_instance = Mock.scmi_notification_add_subscriber_CallInstance; - if (Mock.scmi_notification_add_subscriber_IgnoreBool) - call_instance = CMOCK_GUTS_NONE; - if (CMOCK_GUTS_NONE != call_instance) - { - UNITY_SET_DETAIL(CMockString_scmi_notification_add_subscriber); - UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); - } - if (Mock.scmi_notification_add_subscriber_CallbackFunctionPointer != NULL) - { - call_instance = CMOCK_GUTS_NONE; - (void)call_instance; - } - call_instance = Mock.scmi_notification_remove_subscriber_CallInstance; - if (Mock.scmi_notification_remove_subscriber_IgnoreBool) - call_instance = CMOCK_GUTS_NONE; - if (CMOCK_GUTS_NONE != call_instance) - { - UNITY_SET_DETAIL(CMockString_scmi_notification_remove_subscriber); - UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); - } - if (Mock.scmi_notification_remove_subscriber_CallbackFunctionPointer != NULL) - { - call_instance = CMOCK_GUTS_NONE; - (void)call_instance; - } - call_instance = Mock.scmi_notification_notify_CallInstance; - if (Mock.scmi_notification_notify_IgnoreBool) - call_instance = CMOCK_GUTS_NONE; - if (CMOCK_GUTS_NONE != call_instance) - { - UNITY_SET_DETAIL(CMockString_scmi_notification_notify); - UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); - } - if (Mock.scmi_notification_notify_CallbackFunctionPointer != NULL) - { - call_instance = CMOCK_GUTS_NONE; - (void)call_instance; - } } void Mockmod_scmi_clock_extra_Init(void) @@ -3615,703 +3456,3 @@ void mod_clock_api_get_state_CMockIgnoreArg_state(UNITY_LINE_TYPE cmock_line) cmock_call_instance->IgnoreArg_state = 1; } -int scmi_notification_init(unsigned int protocol_id, unsigned int agent_count, unsigned int element_count, unsigned int operation_count) -{ - UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; - CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance; - UNITY_SET_DETAIL(CMockString_scmi_notification_init); - cmock_call_instance = (CMOCK_scmi_notification_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.scmi_notification_init_CallInstance); - Mock.scmi_notification_init_CallInstance = CMock_Guts_MemNext(Mock.scmi_notification_init_CallInstance); - if (Mock.scmi_notification_init_IgnoreBool) - { - UNITY_CLR_DETAILS(); - if (cmock_call_instance == NULL) - return Mock.scmi_notification_init_FinalReturn; - Mock.scmi_notification_init_FinalReturn = cmock_call_instance->ReturnVal; - return cmock_call_instance->ReturnVal; - } - if (!Mock.scmi_notification_init_CallbackBool && - Mock.scmi_notification_init_CallbackFunctionPointer != NULL) - { - int cmock_cb_ret = Mock.scmi_notification_init_CallbackFunctionPointer(protocol_id, agent_count, element_count, operation_count, Mock.scmi_notification_init_CallbackCalls++); - UNITY_CLR_DETAILS(); - return cmock_cb_ret; - } - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); - cmock_line = cmock_call_instance->LineNumber; - if (!cmock_call_instance->ExpectAnyArgsBool) - { - if (!cmock_call_instance->IgnoreArg_protocol_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_init,CMockString_protocol_id); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_protocol_id, protocol_id, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_agent_count) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_init,CMockString_agent_count); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_agent_count, agent_count, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_element_count) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_init,CMockString_element_count); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_element_count, element_count, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_operation_count) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_init,CMockString_operation_count); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_operation_count, operation_count, cmock_line, CMockStringMismatch); - } - } - if (Mock.scmi_notification_init_CallbackFunctionPointer != NULL) - { - cmock_call_instance->ReturnVal = Mock.scmi_notification_init_CallbackFunctionPointer(protocol_id, agent_count, element_count, operation_count, Mock.scmi_notification_init_CallbackCalls++); - } - UNITY_CLR_DETAILS(); - return cmock_call_instance->ReturnVal; -} - -void CMockExpectParameters_scmi_notification_init(CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance, unsigned int protocol_id, unsigned int agent_count, unsigned int element_count, unsigned int operation_count); -void CMockExpectParameters_scmi_notification_init(CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance, unsigned int protocol_id, unsigned int agent_count, unsigned int element_count, unsigned int operation_count) -{ - cmock_call_instance->Expected_protocol_id = protocol_id; - cmock_call_instance->IgnoreArg_protocol_id = 0; - cmock_call_instance->Expected_agent_count = agent_count; - cmock_call_instance->IgnoreArg_agent_count = 0; - cmock_call_instance->Expected_element_count = element_count; - cmock_call_instance->IgnoreArg_element_count = 0; - cmock_call_instance->Expected_operation_count = operation_count; - cmock_call_instance->IgnoreArg_operation_count = 0; -} - -void scmi_notification_init_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_init_CALL_INSTANCE)); - CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_init_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_init_CallInstance, cmock_guts_index); - Mock.scmi_notification_init_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - cmock_call_instance->ReturnVal = cmock_to_return; - Mock.scmi_notification_init_IgnoreBool = (char)1; -} - -void scmi_notification_init_CMockStopIgnore(void) -{ - if(Mock.scmi_notification_init_IgnoreBool) - Mock.scmi_notification_init_CallInstance = CMock_Guts_MemNext(Mock.scmi_notification_init_CallInstance); - Mock.scmi_notification_init_IgnoreBool = (char)0; -} - -void scmi_notification_init_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_init_CALL_INSTANCE)); - CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_init_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_init_CallInstance, cmock_guts_index); - Mock.scmi_notification_init_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - cmock_call_instance->ReturnVal = cmock_to_return; - cmock_call_instance->ExpectAnyArgsBool = (char)1; -} - -void scmi_notification_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int agent_count, unsigned int element_count, unsigned int operation_count, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_init_CALL_INSTANCE)); - CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_init_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_init_CallInstance, cmock_guts_index); - Mock.scmi_notification_init_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - CMockExpectParameters_scmi_notification_init(cmock_call_instance, protocol_id, agent_count, element_count, operation_count); - cmock_call_instance->ReturnVal = cmock_to_return; -} - -void scmi_notification_init_AddCallback(CMOCK_scmi_notification_init_CALLBACK Callback) -{ - Mock.scmi_notification_init_IgnoreBool = (char)0; - Mock.scmi_notification_init_CallbackBool = (char)1; - Mock.scmi_notification_init_CallbackFunctionPointer = Callback; -} - -void scmi_notification_init_Stub(CMOCK_scmi_notification_init_CALLBACK Callback) -{ - Mock.scmi_notification_init_IgnoreBool = (char)0; - Mock.scmi_notification_init_CallbackBool = (char)0; - Mock.scmi_notification_init_CallbackFunctionPointer = Callback; -} - -void scmi_notification_init_CMockIgnoreArg_protocol_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_init_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_protocol_id = 1; -} - -void scmi_notification_init_CMockIgnoreArg_agent_count(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_init_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_agent_count = 1; -} - -void scmi_notification_init_CMockIgnoreArg_element_count(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_init_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_element_count = 1; -} - -void scmi_notification_init_CMockIgnoreArg_operation_count(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_init_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_operation_count = 1; -} - -int scmi_notification_add_subscriber(unsigned int protocol_id, unsigned int element_idx, unsigned int operation_id, fwk_id_t service_id) -{ - UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; - CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance; - UNITY_SET_DETAIL(CMockString_scmi_notification_add_subscriber); - cmock_call_instance = (CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.scmi_notification_add_subscriber_CallInstance); - Mock.scmi_notification_add_subscriber_CallInstance = CMock_Guts_MemNext(Mock.scmi_notification_add_subscriber_CallInstance); - if (Mock.scmi_notification_add_subscriber_IgnoreBool) - { - UNITY_CLR_DETAILS(); - if (cmock_call_instance == NULL) - return Mock.scmi_notification_add_subscriber_FinalReturn; - Mock.scmi_notification_add_subscriber_FinalReturn = cmock_call_instance->ReturnVal; - return cmock_call_instance->ReturnVal; - } - if (!Mock.scmi_notification_add_subscriber_CallbackBool && - Mock.scmi_notification_add_subscriber_CallbackFunctionPointer != NULL) - { - int cmock_cb_ret = Mock.scmi_notification_add_subscriber_CallbackFunctionPointer(protocol_id, element_idx, operation_id, service_id, Mock.scmi_notification_add_subscriber_CallbackCalls++); - UNITY_CLR_DETAILS(); - return cmock_cb_ret; - } - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); - cmock_line = cmock_call_instance->LineNumber; - if (!cmock_call_instance->ExpectAnyArgsBool) - { - if (!cmock_call_instance->IgnoreArg_protocol_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_add_subscriber,CMockString_protocol_id); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_protocol_id, protocol_id, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_element_idx) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_add_subscriber,CMockString_element_idx); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_element_idx, element_idx, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_operation_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_add_subscriber,CMockString_operation_id); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_operation_id, operation_id, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_service_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_add_subscriber,CMockString_service_id); - UNITY_TEST_ASSERT_EQUAL_MEMORY((void*)(&cmock_call_instance->Expected_service_id), (void*)(&service_id), sizeof(fwk_id_t), cmock_line, CMockStringMismatch); - } - } - if (Mock.scmi_notification_add_subscriber_CallbackFunctionPointer != NULL) - { - cmock_call_instance->ReturnVal = Mock.scmi_notification_add_subscriber_CallbackFunctionPointer(protocol_id, element_idx, operation_id, service_id, Mock.scmi_notification_add_subscriber_CallbackCalls++); - } - UNITY_CLR_DETAILS(); - return cmock_call_instance->ReturnVal; -} - -void CMockExpectParameters_scmi_notification_add_subscriber(CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance, unsigned int protocol_id, unsigned int element_idx, unsigned int operation_id, fwk_id_t service_id); -void CMockExpectParameters_scmi_notification_add_subscriber(CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance, unsigned int protocol_id, unsigned int element_idx, unsigned int operation_id, fwk_id_t service_id) -{ - cmock_call_instance->Expected_protocol_id = protocol_id; - cmock_call_instance->IgnoreArg_protocol_id = 0; - cmock_call_instance->Expected_element_idx = element_idx; - cmock_call_instance->IgnoreArg_element_idx = 0; - cmock_call_instance->Expected_operation_id = operation_id; - cmock_call_instance->IgnoreArg_operation_id = 0; - memcpy((void*)(&cmock_call_instance->Expected_service_id), (void*)(&service_id), - sizeof(fwk_id_t[sizeof(service_id) == sizeof(fwk_id_t) ? 1 : -1])); /* add fwk_id_t to :treat_as_array if this causes an error */ - cmock_call_instance->IgnoreArg_service_id = 0; -} - -void scmi_notification_add_subscriber_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE)); - CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_add_subscriber_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_add_subscriber_CallInstance, cmock_guts_index); - Mock.scmi_notification_add_subscriber_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - cmock_call_instance->ReturnVal = cmock_to_return; - Mock.scmi_notification_add_subscriber_IgnoreBool = (char)1; -} - -void scmi_notification_add_subscriber_CMockStopIgnore(void) -{ - if(Mock.scmi_notification_add_subscriber_IgnoreBool) - Mock.scmi_notification_add_subscriber_CallInstance = CMock_Guts_MemNext(Mock.scmi_notification_add_subscriber_CallInstance); - Mock.scmi_notification_add_subscriber_IgnoreBool = (char)0; -} - -void scmi_notification_add_subscriber_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE)); - CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_add_subscriber_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_add_subscriber_CallInstance, cmock_guts_index); - Mock.scmi_notification_add_subscriber_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - cmock_call_instance->ReturnVal = cmock_to_return; - cmock_call_instance->ExpectAnyArgsBool = (char)1; -} - -void scmi_notification_add_subscriber_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int element_idx, unsigned int operation_id, fwk_id_t service_id, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE)); - CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_add_subscriber_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_add_subscriber_CallInstance, cmock_guts_index); - Mock.scmi_notification_add_subscriber_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - CMockExpectParameters_scmi_notification_add_subscriber(cmock_call_instance, protocol_id, element_idx, operation_id, service_id); - cmock_call_instance->ReturnVal = cmock_to_return; -} - -void scmi_notification_add_subscriber_AddCallback(CMOCK_scmi_notification_add_subscriber_CALLBACK Callback) -{ - Mock.scmi_notification_add_subscriber_IgnoreBool = (char)0; - Mock.scmi_notification_add_subscriber_CallbackBool = (char)1; - Mock.scmi_notification_add_subscriber_CallbackFunctionPointer = Callback; -} - -void scmi_notification_add_subscriber_Stub(CMOCK_scmi_notification_add_subscriber_CALLBACK Callback) -{ - Mock.scmi_notification_add_subscriber_IgnoreBool = (char)0; - Mock.scmi_notification_add_subscriber_CallbackBool = (char)0; - Mock.scmi_notification_add_subscriber_CallbackFunctionPointer = Callback; -} - -void scmi_notification_add_subscriber_CMockIgnoreArg_protocol_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_add_subscriber_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_protocol_id = 1; -} - -void scmi_notification_add_subscriber_CMockIgnoreArg_element_idx(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_add_subscriber_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_element_idx = 1; -} - -void scmi_notification_add_subscriber_CMockIgnoreArg_operation_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_add_subscriber_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_operation_id = 1; -} - -void scmi_notification_add_subscriber_CMockIgnoreArg_service_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_add_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_add_subscriber_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_service_id = 1; -} - -int scmi_notification_remove_subscriber(unsigned int protocol_id, unsigned int agent_idx, unsigned int element_idx, unsigned int operation_id) -{ - UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; - CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance; - UNITY_SET_DETAIL(CMockString_scmi_notification_remove_subscriber); - cmock_call_instance = (CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.scmi_notification_remove_subscriber_CallInstance); - Mock.scmi_notification_remove_subscriber_CallInstance = CMock_Guts_MemNext(Mock.scmi_notification_remove_subscriber_CallInstance); - if (Mock.scmi_notification_remove_subscriber_IgnoreBool) - { - UNITY_CLR_DETAILS(); - if (cmock_call_instance == NULL) - return Mock.scmi_notification_remove_subscriber_FinalReturn; - Mock.scmi_notification_remove_subscriber_FinalReturn = cmock_call_instance->ReturnVal; - return cmock_call_instance->ReturnVal; - } - if (!Mock.scmi_notification_remove_subscriber_CallbackBool && - Mock.scmi_notification_remove_subscriber_CallbackFunctionPointer != NULL) - { - int cmock_cb_ret = Mock.scmi_notification_remove_subscriber_CallbackFunctionPointer(protocol_id, agent_idx, element_idx, operation_id, Mock.scmi_notification_remove_subscriber_CallbackCalls++); - UNITY_CLR_DETAILS(); - return cmock_cb_ret; - } - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); - cmock_line = cmock_call_instance->LineNumber; - if (!cmock_call_instance->ExpectAnyArgsBool) - { - if (!cmock_call_instance->IgnoreArg_protocol_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_remove_subscriber,CMockString_protocol_id); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_protocol_id, protocol_id, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_agent_idx) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_remove_subscriber,CMockString_agent_idx); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_agent_idx, agent_idx, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_element_idx) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_remove_subscriber,CMockString_element_idx); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_element_idx, element_idx, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_operation_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_remove_subscriber,CMockString_operation_id); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_operation_id, operation_id, cmock_line, CMockStringMismatch); - } - } - if (Mock.scmi_notification_remove_subscriber_CallbackFunctionPointer != NULL) - { - cmock_call_instance->ReturnVal = Mock.scmi_notification_remove_subscriber_CallbackFunctionPointer(protocol_id, agent_idx, element_idx, operation_id, Mock.scmi_notification_remove_subscriber_CallbackCalls++); - } - UNITY_CLR_DETAILS(); - return cmock_call_instance->ReturnVal; -} - -void CMockExpectParameters_scmi_notification_remove_subscriber(CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance, unsigned int protocol_id, unsigned int agent_idx, unsigned int element_idx, unsigned int operation_id); -void CMockExpectParameters_scmi_notification_remove_subscriber(CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance, unsigned int protocol_id, unsigned int agent_idx, unsigned int element_idx, unsigned int operation_id) -{ - cmock_call_instance->Expected_protocol_id = protocol_id; - cmock_call_instance->IgnoreArg_protocol_id = 0; - cmock_call_instance->Expected_agent_idx = agent_idx; - cmock_call_instance->IgnoreArg_agent_idx = 0; - cmock_call_instance->Expected_element_idx = element_idx; - cmock_call_instance->IgnoreArg_element_idx = 0; - cmock_call_instance->Expected_operation_id = operation_id; - cmock_call_instance->IgnoreArg_operation_id = 0; -} - -void scmi_notification_remove_subscriber_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE)); - CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_remove_subscriber_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_remove_subscriber_CallInstance, cmock_guts_index); - Mock.scmi_notification_remove_subscriber_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - cmock_call_instance->ReturnVal = cmock_to_return; - Mock.scmi_notification_remove_subscriber_IgnoreBool = (char)1; -} - -void scmi_notification_remove_subscriber_CMockStopIgnore(void) -{ - if(Mock.scmi_notification_remove_subscriber_IgnoreBool) - Mock.scmi_notification_remove_subscriber_CallInstance = CMock_Guts_MemNext(Mock.scmi_notification_remove_subscriber_CallInstance); - Mock.scmi_notification_remove_subscriber_IgnoreBool = (char)0; -} - -void scmi_notification_remove_subscriber_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE)); - CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_remove_subscriber_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_remove_subscriber_CallInstance, cmock_guts_index); - Mock.scmi_notification_remove_subscriber_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - cmock_call_instance->ReturnVal = cmock_to_return; - cmock_call_instance->ExpectAnyArgsBool = (char)1; -} - -void scmi_notification_remove_subscriber_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int agent_idx, unsigned int element_idx, unsigned int operation_id, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE)); - CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_remove_subscriber_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_remove_subscriber_CallInstance, cmock_guts_index); - Mock.scmi_notification_remove_subscriber_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - CMockExpectParameters_scmi_notification_remove_subscriber(cmock_call_instance, protocol_id, agent_idx, element_idx, operation_id); - cmock_call_instance->ReturnVal = cmock_to_return; -} - -void scmi_notification_remove_subscriber_AddCallback(CMOCK_scmi_notification_remove_subscriber_CALLBACK Callback) -{ - Mock.scmi_notification_remove_subscriber_IgnoreBool = (char)0; - Mock.scmi_notification_remove_subscriber_CallbackBool = (char)1; - Mock.scmi_notification_remove_subscriber_CallbackFunctionPointer = Callback; -} - -void scmi_notification_remove_subscriber_Stub(CMOCK_scmi_notification_remove_subscriber_CALLBACK Callback) -{ - Mock.scmi_notification_remove_subscriber_IgnoreBool = (char)0; - Mock.scmi_notification_remove_subscriber_CallbackBool = (char)0; - Mock.scmi_notification_remove_subscriber_CallbackFunctionPointer = Callback; -} - -void scmi_notification_remove_subscriber_CMockIgnoreArg_protocol_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_remove_subscriber_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_protocol_id = 1; -} - -void scmi_notification_remove_subscriber_CMockIgnoreArg_agent_idx(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_remove_subscriber_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_agent_idx = 1; -} - -void scmi_notification_remove_subscriber_CMockIgnoreArg_element_idx(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_remove_subscriber_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_element_idx = 1; -} - -void scmi_notification_remove_subscriber_CMockIgnoreArg_operation_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_remove_subscriber_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_remove_subscriber_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_operation_id = 1; -} - -int scmi_notification_notify(unsigned int protocol_id, unsigned int operation_id, unsigned int resource_id, unsigned int scmi_response_message_id, void* payload_p2a, size_t payload_size) -{ - UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance; - UNITY_SET_DETAIL(CMockString_scmi_notification_notify); - cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.scmi_notification_notify_CallInstance); - Mock.scmi_notification_notify_CallInstance = CMock_Guts_MemNext(Mock.scmi_notification_notify_CallInstance); - if (Mock.scmi_notification_notify_IgnoreBool) - { - UNITY_CLR_DETAILS(); - if (cmock_call_instance == NULL) - return Mock.scmi_notification_notify_FinalReturn; - Mock.scmi_notification_notify_FinalReturn = cmock_call_instance->ReturnVal; - return cmock_call_instance->ReturnVal; - } - if (!Mock.scmi_notification_notify_CallbackBool && - Mock.scmi_notification_notify_CallbackFunctionPointer != NULL) - { - int cmock_cb_ret = Mock.scmi_notification_notify_CallbackFunctionPointer(protocol_id, operation_id, resource_id, scmi_response_message_id, payload_p2a, payload_size, Mock.scmi_notification_notify_CallbackCalls++); - UNITY_CLR_DETAILS(); - return cmock_cb_ret; - } - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); - cmock_line = cmock_call_instance->LineNumber; - if (!cmock_call_instance->ExpectAnyArgsBool) - { - if (!cmock_call_instance->IgnoreArg_protocol_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_notify,CMockString_protocol_id); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_protocol_id, protocol_id, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_operation_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_notify,CMockString_operation_id); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_operation_id, operation_id, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_resource_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_notify,CMockString_resource_id); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_resource_id, resource_id, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_scmi_response_message_id) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_notify,CMockString_scmi_response_message_id); - UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_scmi_response_message_id, scmi_response_message_id, cmock_line, CMockStringMismatch); - } - if (!cmock_call_instance->IgnoreArg_payload_p2a) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_notify,CMockString_payload_p2a); - if (cmock_call_instance->Expected_payload_p2a == NULL) - { UNITY_TEST_ASSERT_NULL(payload_p2a, cmock_line, CMockStringExpNULL); } - else - { UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(cmock_call_instance->Expected_payload_p2a, payload_p2a, cmock_call_instance->Expected_payload_p2a_Depth, cmock_line, CMockStringMismatch); } - } - if (!cmock_call_instance->IgnoreArg_payload_size) - { - UNITY_SET_DETAILS(CMockString_scmi_notification_notify,CMockString_payload_size); - UNITY_TEST_ASSERT_EQUAL_MEMORY((void*)(&cmock_call_instance->Expected_payload_size), (void*)(&payload_size), sizeof(size_t), cmock_line, CMockStringMismatch); - } - } - if (Mock.scmi_notification_notify_CallbackFunctionPointer != NULL) - { - cmock_call_instance->ReturnVal = Mock.scmi_notification_notify_CallbackFunctionPointer(protocol_id, operation_id, resource_id, scmi_response_message_id, payload_p2a, payload_size, Mock.scmi_notification_notify_CallbackCalls++); - } - if (cmock_call_instance->ReturnThruPtr_payload_p2a_Used) - { - UNITY_TEST_ASSERT_NOT_NULL(payload_p2a, cmock_line, CMockStringPtrIsNULL); - memcpy((void*)payload_p2a, (void*)cmock_call_instance->ReturnThruPtr_payload_p2a_Val, - cmock_call_instance->ReturnThruPtr_payload_p2a_Size); - } - UNITY_CLR_DETAILS(); - return cmock_call_instance->ReturnVal; -} - -void CMockExpectParameters_scmi_notification_notify(CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance, unsigned int protocol_id, unsigned int operation_id, unsigned int resource_id, unsigned int scmi_response_message_id, void* payload_p2a, int payload_p2a_Depth, size_t payload_size); -void CMockExpectParameters_scmi_notification_notify(CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance, unsigned int protocol_id, unsigned int operation_id, unsigned int resource_id, unsigned int scmi_response_message_id, void* payload_p2a, int payload_p2a_Depth, size_t payload_size) -{ - cmock_call_instance->Expected_protocol_id = protocol_id; - cmock_call_instance->IgnoreArg_protocol_id = 0; - cmock_call_instance->Expected_operation_id = operation_id; - cmock_call_instance->IgnoreArg_operation_id = 0; - cmock_call_instance->Expected_resource_id = resource_id; - cmock_call_instance->IgnoreArg_resource_id = 0; - cmock_call_instance->Expected_scmi_response_message_id = scmi_response_message_id; - cmock_call_instance->IgnoreArg_scmi_response_message_id = 0; - cmock_call_instance->Expected_payload_p2a = payload_p2a; - cmock_call_instance->Expected_payload_p2a_Depth = payload_p2a_Depth; - cmock_call_instance->IgnoreArg_payload_p2a = 0; - cmock_call_instance->ReturnThruPtr_payload_p2a_Used = 0; - memcpy((void*)(&cmock_call_instance->Expected_payload_size), (void*)(&payload_size), - sizeof(size_t[sizeof(payload_size) == sizeof(size_t) ? 1 : -1])); /* add size_t to :treat_as_array if this causes an error */ - cmock_call_instance->IgnoreArg_payload_size = 0; -} - -void scmi_notification_notify_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_notify_CALL_INSTANCE)); - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_notify_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_notify_CallInstance, cmock_guts_index); - Mock.scmi_notification_notify_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - cmock_call_instance->ReturnVal = cmock_to_return; - Mock.scmi_notification_notify_IgnoreBool = (char)1; -} - -void scmi_notification_notify_CMockStopIgnore(void) -{ - if(Mock.scmi_notification_notify_IgnoreBool) - Mock.scmi_notification_notify_CallInstance = CMock_Guts_MemNext(Mock.scmi_notification_notify_CallInstance); - Mock.scmi_notification_notify_IgnoreBool = (char)0; -} - -void scmi_notification_notify_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_notify_CALL_INSTANCE)); - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_notify_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_notify_CallInstance, cmock_guts_index); - Mock.scmi_notification_notify_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - cmock_call_instance->ReturnVal = cmock_to_return; - cmock_call_instance->ExpectAnyArgsBool = (char)1; -} - -void scmi_notification_notify_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int operation_id, unsigned int resource_id, unsigned int scmi_response_message_id, void* payload_p2a, size_t payload_size, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_notify_CALL_INSTANCE)); - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_notify_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_notify_CallInstance, cmock_guts_index); - Mock.scmi_notification_notify_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - CMockExpectParameters_scmi_notification_notify(cmock_call_instance, protocol_id, operation_id, resource_id, scmi_response_message_id, payload_p2a, payload_size, payload_size); - cmock_call_instance->ReturnVal = cmock_to_return; -} - -void scmi_notification_notify_AddCallback(CMOCK_scmi_notification_notify_CALLBACK Callback) -{ - Mock.scmi_notification_notify_IgnoreBool = (char)0; - Mock.scmi_notification_notify_CallbackBool = (char)1; - Mock.scmi_notification_notify_CallbackFunctionPointer = Callback; -} - -void scmi_notification_notify_Stub(CMOCK_scmi_notification_notify_CALLBACK Callback) -{ - Mock.scmi_notification_notify_IgnoreBool = (char)0; - Mock.scmi_notification_notify_CallbackBool = (char)0; - Mock.scmi_notification_notify_CallbackFunctionPointer = Callback; -} - -void scmi_notification_notify_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int operation_id, unsigned int resource_id, unsigned int scmi_response_message_id, void* payload_p2a, int payload_p2a_Depth, size_t payload_size, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_scmi_notification_notify_CALL_INSTANCE)); - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.scmi_notification_notify_CallInstance = CMock_Guts_MemChain(Mock.scmi_notification_notify_CallInstance, cmock_guts_index); - Mock.scmi_notification_notify_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - CMockExpectParameters_scmi_notification_notify(cmock_call_instance, protocol_id, operation_id, resource_id, scmi_response_message_id, payload_p2a, payload_p2a_Depth, payload_size); - cmock_call_instance->ReturnVal = cmock_to_return; -} - -void scmi_notification_notify_CMockReturnMemThruPtr_payload_p2a(UNITY_LINE_TYPE cmock_line, void* payload_p2a, size_t cmock_size) -{ - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_notify_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringPtrPreExp); - cmock_call_instance->ReturnThruPtr_payload_p2a_Used = 1; - cmock_call_instance->ReturnThruPtr_payload_p2a_Val = payload_p2a; - cmock_call_instance->ReturnThruPtr_payload_p2a_Size = cmock_size; -} - -void scmi_notification_notify_CMockIgnoreArg_protocol_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_notify_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_protocol_id = 1; -} - -void scmi_notification_notify_CMockIgnoreArg_operation_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_notify_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_operation_id = 1; -} - -void scmi_notification_notify_CMockIgnoreArg_resource_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_notify_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_resource_id = 1; -} - -void scmi_notification_notify_CMockIgnoreArg_scmi_response_message_id(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_notify_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_scmi_response_message_id = 1; -} - -void scmi_notification_notify_CMockIgnoreArg_payload_p2a(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_notify_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_payload_p2a = 1; -} - -void scmi_notification_notify_CMockIgnoreArg_payload_size(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_scmi_notification_notify_CALL_INSTANCE* cmock_call_instance = (CMOCK_scmi_notification_notify_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.scmi_notification_notify_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_payload_size = 1; -} - diff --git a/module/scmi_clock/test/mocks/Mockmod_scmi_clock_extra.h b/module/scmi_clock/test/mocks/Mockmod_scmi_clock_extra.h index 59209ce96ff385079b155b19a9a975dd23b0b579..22521aa393c5eb4c015f1726399fdbf4ab13b693 100644 --- a/module/scmi_clock/test/mocks/Mockmod_scmi_clock_extra.h +++ b/module/scmi_clock/test/mocks/Mockmod_scmi_clock_extra.h @@ -378,96 +378,6 @@ void mod_clock_api_get_state_CMockReturnMemThruPtr_state(UNITY_LINE_TYPE cmock_l void mod_clock_api_get_state_CMockIgnoreArg_clock_id(UNITY_LINE_TYPE cmock_line); #define mod_clock_api_get_state_IgnoreArg_state() mod_clock_api_get_state_CMockIgnoreArg_state(__LINE__) void mod_clock_api_get_state_CMockIgnoreArg_state(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_init_IgnoreAndReturn(cmock_retval) scmi_notification_init_CMockIgnoreAndReturn(__LINE__, cmock_retval) -void scmi_notification_init_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define scmi_notification_init_StopIgnore() scmi_notification_init_CMockStopIgnore() -void scmi_notification_init_CMockStopIgnore(void); -#define scmi_notification_init_ExpectAnyArgsAndReturn(cmock_retval) scmi_notification_init_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) -void scmi_notification_init_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define scmi_notification_init_ExpectAndReturn(protocol_id, agent_count, element_count, operation_count, cmock_retval) scmi_notification_init_CMockExpectAndReturn(__LINE__, protocol_id, agent_count, element_count, operation_count, cmock_retval) -void scmi_notification_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int agent_count, unsigned int element_count, unsigned int operation_count, int cmock_to_return); -typedef int (* CMOCK_scmi_notification_init_CALLBACK)(unsigned int protocol_id, unsigned int agent_count, unsigned int element_count, unsigned int operation_count, int cmock_num_calls); -void scmi_notification_init_AddCallback(CMOCK_scmi_notification_init_CALLBACK Callback); -void scmi_notification_init_Stub(CMOCK_scmi_notification_init_CALLBACK Callback); -#define scmi_notification_init_StubWithCallback scmi_notification_init_Stub -#define scmi_notification_init_IgnoreArg_protocol_id() scmi_notification_init_CMockIgnoreArg_protocol_id(__LINE__) -void scmi_notification_init_CMockIgnoreArg_protocol_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_init_IgnoreArg_agent_count() scmi_notification_init_CMockIgnoreArg_agent_count(__LINE__) -void scmi_notification_init_CMockIgnoreArg_agent_count(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_init_IgnoreArg_element_count() scmi_notification_init_CMockIgnoreArg_element_count(__LINE__) -void scmi_notification_init_CMockIgnoreArg_element_count(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_init_IgnoreArg_operation_count() scmi_notification_init_CMockIgnoreArg_operation_count(__LINE__) -void scmi_notification_init_CMockIgnoreArg_operation_count(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_add_subscriber_IgnoreAndReturn(cmock_retval) scmi_notification_add_subscriber_CMockIgnoreAndReturn(__LINE__, cmock_retval) -void scmi_notification_add_subscriber_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define scmi_notification_add_subscriber_StopIgnore() scmi_notification_add_subscriber_CMockStopIgnore() -void scmi_notification_add_subscriber_CMockStopIgnore(void); -#define scmi_notification_add_subscriber_ExpectAnyArgsAndReturn(cmock_retval) scmi_notification_add_subscriber_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) -void scmi_notification_add_subscriber_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define scmi_notification_add_subscriber_ExpectAndReturn(protocol_id, element_idx, operation_id, service_id, cmock_retval) scmi_notification_add_subscriber_CMockExpectAndReturn(__LINE__, protocol_id, element_idx, operation_id, service_id, cmock_retval) -void scmi_notification_add_subscriber_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int element_idx, unsigned int operation_id, fwk_id_t service_id, int cmock_to_return); -typedef int (* CMOCK_scmi_notification_add_subscriber_CALLBACK)(unsigned int protocol_id, unsigned int element_idx, unsigned int operation_id, fwk_id_t service_id, int cmock_num_calls); -void scmi_notification_add_subscriber_AddCallback(CMOCK_scmi_notification_add_subscriber_CALLBACK Callback); -void scmi_notification_add_subscriber_Stub(CMOCK_scmi_notification_add_subscriber_CALLBACK Callback); -#define scmi_notification_add_subscriber_StubWithCallback scmi_notification_add_subscriber_Stub -#define scmi_notification_add_subscriber_IgnoreArg_protocol_id() scmi_notification_add_subscriber_CMockIgnoreArg_protocol_id(__LINE__) -void scmi_notification_add_subscriber_CMockIgnoreArg_protocol_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_add_subscriber_IgnoreArg_element_idx() scmi_notification_add_subscriber_CMockIgnoreArg_element_idx(__LINE__) -void scmi_notification_add_subscriber_CMockIgnoreArg_element_idx(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_add_subscriber_IgnoreArg_operation_id() scmi_notification_add_subscriber_CMockIgnoreArg_operation_id(__LINE__) -void scmi_notification_add_subscriber_CMockIgnoreArg_operation_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_add_subscriber_IgnoreArg_service_id() scmi_notification_add_subscriber_CMockIgnoreArg_service_id(__LINE__) -void scmi_notification_add_subscriber_CMockIgnoreArg_service_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_remove_subscriber_IgnoreAndReturn(cmock_retval) scmi_notification_remove_subscriber_CMockIgnoreAndReturn(__LINE__, cmock_retval) -void scmi_notification_remove_subscriber_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define scmi_notification_remove_subscriber_StopIgnore() scmi_notification_remove_subscriber_CMockStopIgnore() -void scmi_notification_remove_subscriber_CMockStopIgnore(void); -#define scmi_notification_remove_subscriber_ExpectAnyArgsAndReturn(cmock_retval) scmi_notification_remove_subscriber_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) -void scmi_notification_remove_subscriber_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define scmi_notification_remove_subscriber_ExpectAndReturn(protocol_id, agent_idx, element_idx, operation_id, cmock_retval) scmi_notification_remove_subscriber_CMockExpectAndReturn(__LINE__, protocol_id, agent_idx, element_idx, operation_id, cmock_retval) -void scmi_notification_remove_subscriber_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int agent_idx, unsigned int element_idx, unsigned int operation_id, int cmock_to_return); -typedef int (* CMOCK_scmi_notification_remove_subscriber_CALLBACK)(unsigned int protocol_id, unsigned int agent_idx, unsigned int element_idx, unsigned int operation_id, int cmock_num_calls); -void scmi_notification_remove_subscriber_AddCallback(CMOCK_scmi_notification_remove_subscriber_CALLBACK Callback); -void scmi_notification_remove_subscriber_Stub(CMOCK_scmi_notification_remove_subscriber_CALLBACK Callback); -#define scmi_notification_remove_subscriber_StubWithCallback scmi_notification_remove_subscriber_Stub -#define scmi_notification_remove_subscriber_IgnoreArg_protocol_id() scmi_notification_remove_subscriber_CMockIgnoreArg_protocol_id(__LINE__) -void scmi_notification_remove_subscriber_CMockIgnoreArg_protocol_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_remove_subscriber_IgnoreArg_agent_idx() scmi_notification_remove_subscriber_CMockIgnoreArg_agent_idx(__LINE__) -void scmi_notification_remove_subscriber_CMockIgnoreArg_agent_idx(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_remove_subscriber_IgnoreArg_element_idx() scmi_notification_remove_subscriber_CMockIgnoreArg_element_idx(__LINE__) -void scmi_notification_remove_subscriber_CMockIgnoreArg_element_idx(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_remove_subscriber_IgnoreArg_operation_id() scmi_notification_remove_subscriber_CMockIgnoreArg_operation_id(__LINE__) -void scmi_notification_remove_subscriber_CMockIgnoreArg_operation_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_notify_IgnoreAndReturn(cmock_retval) scmi_notification_notify_CMockIgnoreAndReturn(__LINE__, cmock_retval) -void scmi_notification_notify_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define scmi_notification_notify_StopIgnore() scmi_notification_notify_CMockStopIgnore() -void scmi_notification_notify_CMockStopIgnore(void); -#define scmi_notification_notify_ExpectAnyArgsAndReturn(cmock_retval) scmi_notification_notify_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) -void scmi_notification_notify_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define scmi_notification_notify_ExpectAndReturn(protocol_id, operation_id, resource_id, scmi_response_message_id, payload_p2a, payload_size, cmock_retval) scmi_notification_notify_CMockExpectAndReturn(__LINE__, protocol_id, operation_id, resource_id, scmi_response_message_id, payload_p2a, payload_size, cmock_retval) -void scmi_notification_notify_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int operation_id, unsigned int resource_id, unsigned int scmi_response_message_id, void* payload_p2a, size_t payload_size, int cmock_to_return); -typedef int (* CMOCK_scmi_notification_notify_CALLBACK)(unsigned int protocol_id, unsigned int operation_id, unsigned int resource_id, unsigned int scmi_response_message_id, void* payload_p2a, size_t payload_size, int cmock_num_calls); -void scmi_notification_notify_AddCallback(CMOCK_scmi_notification_notify_CALLBACK Callback); -void scmi_notification_notify_Stub(CMOCK_scmi_notification_notify_CALLBACK Callback); -#define scmi_notification_notify_StubWithCallback scmi_notification_notify_Stub -#define scmi_notification_notify_ExpectWithArrayAndReturn(protocol_id, operation_id, resource_id, scmi_response_message_id, payload_p2a, payload_p2a_Depth, payload_size, cmock_retval) scmi_notification_notify_CMockExpectWithArrayAndReturn(__LINE__, protocol_id, operation_id, resource_id, scmi_response_message_id, payload_p2a, payload_p2a_Depth, payload_size, cmock_retval) -void scmi_notification_notify_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int protocol_id, unsigned int operation_id, unsigned int resource_id, unsigned int scmi_response_message_id, void* payload_p2a, int payload_p2a_Depth, size_t payload_size, int cmock_to_return); -#define scmi_notification_notify_ReturnThruPtr_payload_p2a(payload_p2a) scmi_notification_notify_CMockReturnMemThruPtr_payload_p2a(__LINE__, payload_p2a, sizeof(void)) -#define scmi_notification_notify_ReturnArrayThruPtr_payload_p2a(payload_p2a, cmock_len) scmi_notification_notify_CMockReturnMemThruPtr_payload_p2a(__LINE__, payload_p2a, cmock_len * sizeof(*payload_p2a)) -#define scmi_notification_notify_ReturnMemThruPtr_payload_p2a(payload_p2a, cmock_size) scmi_notification_notify_CMockReturnMemThruPtr_payload_p2a(__LINE__, payload_p2a, cmock_size) -void scmi_notification_notify_CMockReturnMemThruPtr_payload_p2a(UNITY_LINE_TYPE cmock_line, void* payload_p2a, size_t cmock_size); -#define scmi_notification_notify_IgnoreArg_protocol_id() scmi_notification_notify_CMockIgnoreArg_protocol_id(__LINE__) -void scmi_notification_notify_CMockIgnoreArg_protocol_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_notify_IgnoreArg_operation_id() scmi_notification_notify_CMockIgnoreArg_operation_id(__LINE__) -void scmi_notification_notify_CMockIgnoreArg_operation_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_notify_IgnoreArg_resource_id() scmi_notification_notify_CMockIgnoreArg_resource_id(__LINE__) -void scmi_notification_notify_CMockIgnoreArg_resource_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_notify_IgnoreArg_scmi_response_message_id() scmi_notification_notify_CMockIgnoreArg_scmi_response_message_id(__LINE__) -void scmi_notification_notify_CMockIgnoreArg_scmi_response_message_id(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_notify_IgnoreArg_payload_p2a() scmi_notification_notify_CMockIgnoreArg_payload_p2a(__LINE__) -void scmi_notification_notify_CMockIgnoreArg_payload_p2a(UNITY_LINE_TYPE cmock_line); -#define scmi_notification_notify_IgnoreArg_payload_size() scmi_notification_notify_CMockIgnoreArg_payload_size(__LINE__) -void scmi_notification_notify_CMockIgnoreArg_payload_size(UNITY_LINE_TYPE cmock_line); #if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__) #if __GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 6 || (__GNUC_MINOR__ == 6 && __GNUC_PATCHLEVEL__ > 0))) diff --git a/module/scmi_clock/test/mod_scmi_clock_extra.h b/module/scmi_clock/test/mod_scmi_clock_extra.h index 69a29177cfc3807573222ddb659b7c3ec8599f5d..94846b24fbd87769eaa3a32b91dfbf30d6c3fa67 100644 --- a/module/scmi_clock/test/mod_scmi_clock_extra.h +++ b/module/scmi_clock/test/mod_scmi_clock_extra.h @@ -290,29 +290,3 @@ int mod_res_permissions_api_agent_reset_config(uint32_t agent_id, uint32_t flags * \return One of the standard framework error codes. */ int mod_clock_api_get_state(fwk_id_t clock_id, enum mod_clock_state *state); - -int scmi_notification_init( - unsigned int protocol_id, - unsigned int agent_count, - unsigned int element_count, - unsigned int operation_count); - -int scmi_notification_add_subscriber( - unsigned int protocol_id, - unsigned int element_idx, - unsigned int operation_id, - fwk_id_t service_id); - -int scmi_notification_remove_subscriber( - unsigned int protocol_id, - unsigned int agent_idx, - unsigned int element_idx, - unsigned int operation_id); - -int scmi_notification_notify( - unsigned int protocol_id, - unsigned int operation_id, - unsigned int resource_id, - unsigned int scmi_response_message_id, - void *payload_p2a, - size_t payload_size); diff --git a/module/scmi_clock/test/mod_scmi_clock_unit_test.c b/module/scmi_clock/test/mod_scmi_clock_unit_test.c index b6c2a7711d557f89b9a0feedd1cbe00d80dc0fe1..248595f144cd7e85757cb929f8b409f080b7c642 100644 --- a/module/scmi_clock/test/mod_scmi_clock_unit_test.c +++ b/module/scmi_clock/test/mod_scmi_clock_unit_test.c @@ -64,15 +64,6 @@ struct mod_res_permissions_api perm_api = { }; #endif -#ifdef BUILD_HAS_SCMI_NOTIFICATIONS -static const struct mod_scmi_notification_api scmi_notification_api = { - .scmi_notification_init = scmi_notification_init, - .scmi_notification_add_subscriber = scmi_notification_add_subscriber, - .scmi_notification_remove_subscriber = scmi_notification_remove_subscriber, - .scmi_notification_notify = scmi_notification_notify, -}; -#endif - void assert_ospm0_clock_state_meets_expectations(void) { TEST_ASSERT_EQUAL_UINT8_ARRAY( @@ -159,12 +150,12 @@ void setUp(void) scmi_clock_ctx.res_perms_api = &perm_api; #endif -#ifdef BUILD_HAS_SCMI_NOTIFICATIONS - scmi_clock_ctx.scmi_notification_api = &scmi_notification_api; -#endif - scmi_clock_ctx.dev_clock_ref_count_table = dev_clock_ref_count_table; + #if defined(BUILD_HAS_SCMI_NOTIFICATIONS) + scmi_clock_ctx.notification_table = operation_table_default; + #endif + memcpy( dev_clock_ref_count_table, dev_clock_ref_count_table_default, @@ -1243,10 +1234,10 @@ void test_clock_rate_changed_notify_handler_invalid_clock_id(void) TEST_ASSERT_EQUAL(FWK_E_RANGE, status); } -int scmi_notification_add_subscriber_rate_changed_callback( - unsigned int protocol_id, - unsigned int clock_id, - unsigned int command_id, +int scmi_notification_add_subscriber_callback( + unsigned int operation_id, + unsigned int resource_id, + unsigned int subscriber_id, fwk_id_t service_id, int NumCalls ) @@ -1254,9 +1245,9 @@ int scmi_notification_add_subscriber_rate_changed_callback( fwk_id_t expected_service_id = FWK_ID_ELEMENT_INIT(FAKE_MODULE_IDX, FAKE_SCMI_AGENT_IDX_OSPM0); - TEST_ASSERT_EQUAL(MOD_SCMI_PROTOCOL_ID_CLOCK, protocol_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM0_IDX1, clock_id); - TEST_ASSERT_EQUAL(MOD_SCMI_CLOCK_RATE_NOTIFY, command_id); + TEST_ASSERT_EQUAL(FAKE_SCMI_AGENT_IDX_OSPM0, subscriber_id); + TEST_ASSERT_EQUAL(CLOCK_DEV_IDX_FAKE1, resource_id); + TEST_ASSERT_EQUAL(SCMI_CLOCK_RATE_CHANGED, operation_id); TEST_ASSERT_EQUAL(expected_service_id.value, service_id.value); return FWK_SUCCESS; @@ -1283,8 +1274,7 @@ void test_clock_rate_changed_notify_handler_add_subscriber(void) mod_scmi_from_protocol_api_scmi_frame_validation_ExpectAnyArgsAndReturn( FWK_SUCCESS); - scmi_notification_add_subscriber_Stub( - scmi_notification_add_subscriber_rate_changed_callback); + fwk_id_get_element_idx_ExpectAnyArgsAndReturn(CLOCK_DEV_IDX_FAKE1); mod_scmi_from_protocol_api_respond_ExpectAnyArgsAndReturn(FWK_SUCCESS); @@ -1298,18 +1288,19 @@ void test_clock_rate_changed_notify_handler_add_subscriber(void) TEST_ASSERT_EQUAL(FWK_SUCCESS, status); } -int scmi_notification_remove_subscriber_rate_changed_callback( - unsigned int protocol_id, - unsigned int agent_id, - unsigned int clock_id, - unsigned int command_id, +int scmi_notification_remove_subscriber_callback( + unsigned int operation_id, + unsigned int resource_id, + unsigned int subscriber_id, + fwk_id_t service_id, int NumCalls ) { - TEST_ASSERT_EQUAL(MOD_SCMI_PROTOCOL_ID_CLOCK, protocol_id); - TEST_ASSERT_EQUAL(FAKE_SCMI_AGENT_IDX_OSPM0, agent_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM0_IDX1, clock_id); - TEST_ASSERT_EQUAL(MOD_SCMI_CLOCK_RATE_NOTIFY, command_id); + fwk_id_t expected_service_id = FWK_ID_NONE; + TEST_ASSERT_EQUAL(FAKE_SCMI_AGENT_IDX_OSPM0, subscriber_id); + TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM0_IDX1, resource_id); + TEST_ASSERT_EQUAL(MOD_SCMI_CLOCK_RATE_NOTIFY, operation_id); + TEST_ASSERT_EQUAL(expected_service_id.value, service_id.value); return FWK_SUCCESS; } @@ -1334,8 +1325,7 @@ void test_clock_rate_changed_notify_handler_remove_subscriber(void) mod_scmi_from_protocol_api_scmi_frame_validation_ExpectAnyArgsAndReturn( FWK_SUCCESS); - scmi_notification_remove_subscriber_Stub( - scmi_notification_remove_subscriber_rate_changed_callback); + fwk_id_get_element_idx_ExpectAnyArgsAndReturn(CLOCK_DEV_IDX_FAKE1); mod_scmi_from_protocol_api_respond_ExpectAnyArgsAndReturn(FWK_SUCCESS); @@ -1349,25 +1339,6 @@ void test_clock_rate_changed_notify_handler_remove_subscriber(void) TEST_ASSERT_EQUAL(FWK_SUCCESS, status); } -int scmi_notification_add_subscriber_change_requested_callback( - unsigned int protocol_id, - unsigned int clock_id, - unsigned int command_id, - fwk_id_t service_id, - int NumCalls -) -{ - fwk_id_t expected_service_id = - FWK_ID_ELEMENT_INIT(FAKE_MODULE_IDX, FAKE_SCMI_AGENT_IDX_OSPM0); - - TEST_ASSERT_EQUAL(MOD_SCMI_PROTOCOL_ID_CLOCK, protocol_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM0_IDX1, clock_id); - TEST_ASSERT_EQUAL(MOD_SCMI_CLOCK_RATE_CHANGE_REQUESTED_NOTIFY, command_id); - TEST_ASSERT_EQUAL(expected_service_id.value, service_id.value); - - return FWK_SUCCESS; -} - void test_clock_rate_change_requested_notify_handler_add_subscriber(void) { int status; @@ -1388,8 +1359,7 @@ void test_clock_rate_change_requested_notify_handler_add_subscriber(void) mod_scmi_from_protocol_api_scmi_frame_validation_ExpectAnyArgsAndReturn( FWK_SUCCESS); - scmi_notification_add_subscriber_Stub( - scmi_notification_add_subscriber_change_requested_callback); + fwk_id_get_element_idx_ExpectAnyArgsAndReturn(CLOCK_DEV_IDX_FAKE1); mod_scmi_from_protocol_api_respond_ExpectAnyArgsAndReturn(FWK_SUCCESS); @@ -1403,22 +1373,6 @@ void test_clock_rate_change_requested_notify_handler_add_subscriber(void) TEST_ASSERT_EQUAL(FWK_SUCCESS, status); } -int scmi_notification_remove_subscriber_change_requested_callback( - unsigned int protocol_id, - unsigned int agent_id, - unsigned int clock_id, - unsigned int command_id, - int NumCalls -) -{ - TEST_ASSERT_EQUAL(MOD_SCMI_PROTOCOL_ID_CLOCK, protocol_id); - TEST_ASSERT_EQUAL(FAKE_SCMI_AGENT_IDX_OSPM0, agent_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM0_IDX1, clock_id); - TEST_ASSERT_EQUAL(MOD_SCMI_CLOCK_RATE_CHANGE_REQUESTED_NOTIFY, command_id); - - return FWK_SUCCESS; -} - void test_clock_rate_change_requested_notify_handler_remove_subscriber(void) { int status; @@ -1439,8 +1393,7 @@ void test_clock_rate_change_requested_notify_handler_remove_subscriber(void) mod_scmi_from_protocol_api_scmi_frame_validation_ExpectAnyArgsAndReturn( FWK_SUCCESS); - scmi_notification_remove_subscriber_Stub( - scmi_notification_remove_subscriber_change_requested_callback); + fwk_id_get_element_idx_ExpectAnyArgsAndReturn(CLOCK_DEV_IDX_FAKE1); mod_scmi_from_protocol_api_respond_ExpectAnyArgsAndReturn(FWK_SUCCESS); @@ -1455,29 +1408,19 @@ void test_clock_rate_change_requested_notify_handler_remove_subscriber(void) } #ifdef BUILD_HAS_SCMI_NOTIFICATIONS -int scmi_notification_notify_rate_changed_callback( - unsigned int protocol_id, - unsigned int operation_id, - unsigned int resource_id, - unsigned int scmi_response_id, - void *payload_p2a, - size_t payload_size, - int NumCalls -) +void scmi_notify_rate_changed_callback(fwk_id_t id, int protocol_id, int message_id, + const void *payload, size_t size, int NumCalls) { - struct scmi_clock_rate_notification_message_p2a *message = payload_p2a; + struct scmi_clock_rate_notification_message_p2a *message = (struct scmi_clock_rate_notification_message_p2a *)payload; + fwk_id_t expected_service_id = FWK_ID_ELEMENT(FAKE_MODULE_IDX, FAKE_SCMI_AGENT_IDX_OSPM0); + TEST_ASSERT_EQUAL(expected_service_id.value, id.value); TEST_ASSERT_EQUAL(MOD_SCMI_PROTOCOL_ID_CLOCK, protocol_id); - TEST_ASSERT_EQUAL(MOD_SCMI_CLOCK_RATE_NOTIFY, operation_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM1_IDX0, resource_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_RATE_CHANGED, scmi_response_id); - + TEST_ASSERT_EQUAL(SCMI_CLOCK_RATE_CHANGED, message_id); TEST_ASSERT_EQUAL(FAKE_SCMI_AGENT_IDX_OSPM1, message->agent_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM1_IDX0, message->clock_id); + TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM0_IDX3, message->clock_id); TEST_ASSERT_EQUAL(0x0000000A, message->rate[0]); TEST_ASSERT_EQUAL(0x0000000B, message->rate[1]); - - return FWK_SUCCESS; } void test_mod_scmi_clock_process_notification_rate_changed(void) @@ -1487,6 +1430,16 @@ void test_mod_scmi_clock_process_notification_rate_changed(void) agent_id = FAKE_SCMI_AGENT_IDX_OSPM1; clock_idx = CLOCK_DEV_IDX_FAKE3; fwk_id_t clock_id = FWK_ID_ELEMENT(FWK_MODULE_IDX_CLOCK, clock_idx); + + /* In this test case, + * subscriber = OSPM0 agent + * resource = SCMI_CLOCK_OSPM0_IDX3/CLOCK_DEV_IDX_FAKE3 + * operation = Clock rate changed notification + */ + scmi_clock_ctx.notification_table[SCMI_CLOCK_RATE_CHANGED][CLOCK_DEV_IDX_FAKE3][FAKE_SCMI_AGENT_IDX_OSPM0] = + FWK_ID_ELEMENT(FAKE_MODULE_IDX, FAKE_SCMI_AGENT_IDX_OSPM0); + + struct fwk_event notification_event, resp_event; struct mod_clock_notification_params *notification_params = ((struct mod_clock_notification_params *)notification_event.params); @@ -1499,42 +1452,19 @@ void test_mod_scmi_clock_process_notification_rate_changed(void) fwk_id_get_notification_idx_ExpectAnyArgsAndReturn( MOD_CLOCK_NOTIFICATION_IDX_RATE_CHANGED); + fwk_id_get_element_idx_Stub(get_element_idx_callback); + fwk_id_is_equal_ExpectAnyArgsAndReturn(true); + fwk_id_is_equal_ExpectAnyArgsAndReturn(false); + fwk_id_is_equal_ExpectAnyArgsAndReturn(true); - scmi_notification_notify_Stub( - scmi_notification_notify_rate_changed_callback); + mod_scmi_from_protocol_api_notify_Stub(scmi_notify_rate_changed_callback); status = scmi_clock_process_notification(¬ification_event, &resp_event); TEST_ASSERT_EQUAL(status, FWK_SUCCESS); } -int scmi_notification_notify_rate_change_requested_callback( - unsigned int protocol_id, - unsigned int operation_id, - unsigned int resource_id, - unsigned int scmi_response_id, - void *payload_p2a, - size_t payload_size, - int NumCalls -) -{ - struct scmi_clock_rate_notification_message_p2a *message = payload_p2a; - - TEST_ASSERT_EQUAL(MOD_SCMI_PROTOCOL_ID_CLOCK, protocol_id); - TEST_ASSERT_EQUAL(MOD_SCMI_CLOCK_RATE_CHANGE_REQUESTED_NOTIFY, - operation_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM1_IDX0, resource_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_RATE_CHANGE_REQUESTED, scmi_response_id); - - TEST_ASSERT_EQUAL(FAKE_SCMI_AGENT_IDX_OSPM1, message->agent_id); - TEST_ASSERT_EQUAL(SCMI_CLOCK_OSPM1_IDX0, message->clock_id); - TEST_ASSERT_EQUAL(0x0000000C, message->rate[0]); - TEST_ASSERT_EQUAL(0x0000000D, message->rate[1]); - - return FWK_SUCCESS; -} - void test_mod_scmi_clock_process_notification_rate_change_requested(void) { int status; @@ -1555,11 +1485,11 @@ void test_mod_scmi_clock_process_notification_rate_change_requested(void) fwk_id_get_notification_idx_ExpectAnyArgsAndReturn( MOD_CLOCK_NOTIFICATION_IDX_RATE_CHANGE_REQUESTED); - fwk_id_get_element_idx_ExpectAnyArgsAndReturn(CLOCK_DEV_IDX_FAKE3); - fwk_id_get_element_idx_ExpectAnyArgsAndReturn(CLOCK_DEV_IDX_FAKE3); - scmi_notification_notify_Stub( - scmi_notification_notify_rate_change_requested_callback); + fwk_id_get_element_idx_Stub(get_element_idx_callback); + fwk_id_is_equal_ExpectAnyArgsAndReturn(true); + fwk_id_is_equal_ExpectAnyArgsAndReturn(true); + fwk_id_is_equal_ExpectAnyArgsAndReturn(true); status = scmi_clock_process_notification(¬ification_event, &resp_event); @@ -1583,17 +1513,6 @@ void test_mod_scmi_clock_start() module_id, FWK_SUCCESS); - mod_scmi_from_protocol_api_get_agent_count_ExpectAndReturn( - (unsigned int *) &scmi_clock_ctx.agent_count, - FWK_SUCCESS); - - scmi_notification_init_ExpectAndReturn( - MOD_SCMI_PROTOCOL_ID_CLOCK, - scmi_clock_ctx.agent_count, - scmi_clock_ctx.phy_device_count, - MOD_SCMI_CLOCK_NOTIFICATION_COUNT, - FWK_SUCCESS); - status = scmi_clock_start(module_id); TEST_ASSERT_EQUAL(status, FWK_SUCCESS); @@ -1611,10 +1530,6 @@ void test_mod_scmi_clock_bind(void) FWK_ID_API(FWK_MODULE_IDX_SCMI, MOD_SCMI_API_IDX_PROTOCOL); - fwk_id_t mod_scmi_api_notification = - FWK_ID_API(FWK_MODULE_IDX_SCMI, - MOD_SCMI_API_IDX_NOTIFICATION); - fwk_id_t mod_clock_api = FWK_ID_API(FWK_MODULE_IDX_CLOCK, 0); @@ -1624,11 +1539,6 @@ void test_mod_scmi_clock_bind(void) &scmi_clock_ctx.scmi_api, FWK_SUCCESS); - fwk_module_bind_ExpectAndReturn(mod_scmi_id, - mod_scmi_api_notification, - &scmi_clock_ctx.scmi_notification_api, - FWK_SUCCESS); - fwk_module_bind_ExpectAndReturn(mod_clock_id, mod_clock_api, &scmi_clock_ctx.clock_api, @@ -1662,11 +1572,43 @@ void test_scmi_clock_init(void) sizeof(uint8_t), dev_clock_ref_count_table_return); +#ifdef BUILD_HAS_SCMI_NOTIFICATIONS + fwk_mm_calloc_ExpectAndReturn(SCMI_CLOCK_NOTIFICATION_COUNT, + sizeof(fwk_id_t **), + operation_table); + + for (unsigned int op_idx = 0; op_idx < SCMI_CLOCK_NOTIFICATION_COUNT; op_idx++) { + fwk_mm_calloc_ExpectAndReturn(scmi_clock_ctx.phy_device_count, + sizeof(fwk_id_t *), + resource_table); + + for (unsigned int res_idx = 0; res_idx < scmi_clock_ctx.phy_device_count; res_idx++) { + fwk_mm_calloc_ExpectAndReturn(scmi_clock_ctx.agent_count, + sizeof(fwk_id_t), + subscriber_table); + } + } + +#endif + status = scmi_clock_init(scmi_clock_module_id, FAKE_SCMI_AGENT_IDX_COUNT, config_scmi_clock.data); TEST_ASSERT_EQUAL(MAX_PENDING_TRANSACTION, scmi_clock_ctx.max_pending_transactions); TEST_ASSERT_EQUAL(FAKE_SCMI_AGENT_IDX_COUNT, scmi_clock_ctx.agent_count); TEST_ASSERT_EQUAL(CLOCK_DEV_IDX_COUNT, scmi_clock_ctx.phy_device_count); + +#ifdef BUILD_HAS_SCMI_NOTIFICATIONS + for (unsigned int op_idx = 0; op_idx < SCMI_CLOCK_NOTIFICATION_COUNT; op_idx++) { + for (unsigned int res_idx = 0; res_idx < scmi_clock_ctx.phy_device_count; res_idx++) { + for (unsigned int sub_idx = 0; sub_idx < scmi_clock_ctx.agent_count; sub_idx++) { + fwk_id_t expected_subscriber_id = FWK_ID_NONE; + TEST_ASSERT_EQUAL( + expected_subscriber_id.value, + scmi_clock_ctx.notification_table[op_idx][res_idx][sub_idx].value); + } + } + } +#endif TEST_ASSERT_EQUAL(FWK_SUCCESS, status); } @@ -1728,37 +1670,35 @@ void test_scmi_clock_element_init(void) void test_find_agent_scmi_clock_idx(void) { int status; - fwk_id_t clock_id = FWK_ID_ELEMENT_INIT(FAKE_MODULE_IDX, CLOCK_DEV_IDX_FAKE3); unsigned int scmi_clock_idx; fwk_id_get_element_idx_Stub(get_element_idx_callback); /* agent id is 0, i.e. platform*/ - status = find_agent_scmi_clock_idx(0, clock_id, &scmi_clock_idx); + status = find_agent_scmi_clock_idx(0, CLOCK_DEV_IDX_FAKE3, &scmi_clock_idx); TEST_ASSERT_EQUAL(status, FWK_E_DATA); /* agent id is FAKE_SCMI_AGENT_IDX_PSCI */ - status = find_agent_scmi_clock_idx(FAKE_SCMI_AGENT_IDX_PSCI, clock_id, &scmi_clock_idx); + status = find_agent_scmi_clock_idx(FAKE_SCMI_AGENT_IDX_PSCI, CLOCK_DEV_IDX_FAKE3, &scmi_clock_idx); TEST_ASSERT_EQUAL(status, FWK_E_DATA); /* agent id is FAKE_SCMI_AGENT_IDX_OSPM0 */ - status = find_agent_scmi_clock_idx(FAKE_SCMI_AGENT_IDX_OSPM0, clock_id, &scmi_clock_idx); + status = find_agent_scmi_clock_idx(FAKE_SCMI_AGENT_IDX_OSPM0, CLOCK_DEV_IDX_FAKE3, &scmi_clock_idx); TEST_ASSERT_EQUAL(status, FWK_SUCCESS); TEST_ASSERT_EQUAL(scmi_clock_idx, SCMI_CLOCK_OSPM0_IDX3); /* agent id is FAKE_SCMI_AGENT_IDX_OSPM1 */ - status = find_agent_scmi_clock_idx(FAKE_SCMI_AGENT_IDX_OSPM1, clock_id, &scmi_clock_idx); + status = find_agent_scmi_clock_idx(FAKE_SCMI_AGENT_IDX_OSPM1, CLOCK_DEV_IDX_FAKE3, &scmi_clock_idx); TEST_ASSERT_EQUAL(status, FWK_SUCCESS); TEST_ASSERT_EQUAL(scmi_clock_idx, SCMI_CLOCK_OSPM1_IDX0); /* agent id is FAKE_SCMI_AGENT_IDX_OSPM1 but the clock is not accessible by the agent */ - clock_id = FWK_ID_ELEMENT(FAKE_MODULE_IDX, CLOCK_DEV_IDX_FAKE0); - status = find_agent_scmi_clock_idx(FAKE_SCMI_AGENT_IDX_OSPM1, clock_id, &scmi_clock_idx); + status = find_agent_scmi_clock_idx(FAKE_SCMI_AGENT_IDX_OSPM1, CLOCK_DEV_IDX_FAKE0, &scmi_clock_idx); TEST_ASSERT_EQUAL(status, FWK_E_DATA); }