# WM_SetMPData

## Syntax

      #include <nitro/wm.h>

      WMErrCode WM_SetMPData(
              WMCallbackFunc  callback ,
              const u16*      sendData ,
              u16             sendDataSize ,
              u16             tmptt ,
              u16             pollbmp
      );

## Arguments

`callback` | Designates the callback function to call when the asynchronous process completes. This callback is called from within the interrupt handler.
`sendData` | Pointer to the data to be send-reserved. Note that this data is forcibly cached.
`sendDataSize` | The size of the send-reserved data.
`tmptt` | Kept to maintain backward-compatibility — now it is ignored.
`pollbmp` | Bitmap that indicates the AID of the send destination child. (enabled only for the parent).

## Return Values

Returns the results of the `WMErrCode` enumerated type process.

## Description

Sets the data to be sent by the MP This function is only executable when the WM is in either the `MP PARENT` or `MP CHILD` state. If the return value is `WM_ERRCODE_OPERATING`, a callback is generated after the MP completes the data transmission process. Do not rewrite the buffer identified by `sendData` until the callback is called. Unlike the asynchronous functions of other wireless APIs, processing continues normally even if different function pointers are specified for callbacks when this API is called repeatedly without waiting for callbacks. However, you can call this function a maximum of 10 consecutive times without waiting for a callback; if this function is called more than 10 consecutive times, the API returns an error.

This function was retained from previous versions to maintain backward-compatibility and is equivalent to specifying `WM_PORT_RAWDATA` for port and `WM_PRIORITY_NORMAL` for prio in `WM_SetMPDataToPort`.

## Notes

The `sendData` argument is forcibly stored in the internal cache. To avoid overwriting surrounding memory regions, be sure to pass data that is 32-byte aligned.
See the Wireless Communication Library Manual (AboutWirelessManager.pdf) for additional details.

## See Also

`WM_StartMP
WM_EndMP
WM_SetMPDataToPort
WM_SetPortCallback`

## Revision History

2008/12/17 Added a note about how data passed in arguments is forcibly cached internally.
2005/07/08 Added a description of the limit on number of times this function can be repeatedly called asynchronously.
2005/06/08 Added the fact that the callback is called from the interrupt handler.
2004/10/22 Changed the type of return values.
2004/09/25 Added to and revised Description.
2004/08/02 Standardized structure names.
2004/07/29 Added to Description.
2004/07/23 Initial version.

CONFIDENTIAL