Functionality module dispatch switcher function
This section contains the firmware message dispatch management functions.
FMSW_RegisterDispatch
This function registers a FM API dispatch handler routine to the system. When a request is sent to the FM, the registered function is called.
The type FMSW_DispatchFn_t is a pointer to a function with the following declaration:
void DispatchHandler(uint32 token, void *reqBuffer, uint32 reqLength);
The token is an opaque handle value identifying the request. The same token must be passed to SVC_Xxx() functions.
The pair (reqBuffer, reqLength) defines the concatenated data that has been received on the request. See MD_SendReceive function for the details of request dispatching.
This function is used when an FM exports a custom API. It is usually called from the startup() function.
Synopsis
#include <fmsw.h>
FMSW_STATUS FMSW_RegisterDispatch(
FMSW_FmNumber_t fmNumber,
FMSW_DispatchFn_t dispatch);
Input Parameters
Parameter | Description |
---|---|
fmNumber
|
The FMID of the FM. |
dispatch
|
Pointer on API handler function |
Return Code
FMSW_OK
: The function was registered successfully.
FMSW_BAD_POINTER
: The function pointer is invalid
FMSW_INSUFFICIENT_RESOURCES
: Not enough memory to complete operation
FMSW_BAD_FM_NUMBER
: The FM number is incorrect.
FMSW_ALREADY_REGISTERED
: A dispatch function was already registered.