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_NUMBER_CUSTOM_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 FM identification number
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.