428 lines
21 KiB
C
428 lines
21 KiB
C
/*****************************************************************************
|
|
|
|
(c) Cambridge Silicon Radio Limited 2011
|
|
All rights reserved and confidential information of CSR
|
|
|
|
Refer to LICENSE.txt included with this source for details
|
|
on the license terms.
|
|
|
|
*****************************************************************************/
|
|
|
|
/* Note: this is an auto-generated file. */
|
|
|
|
#ifndef CSR_WIFI_ROUTER_LIB_H__
|
|
#define CSR_WIFI_ROUTER_LIB_H__
|
|
|
|
#include "csr_sched.h"
|
|
#include "csr_macro.h"
|
|
#include "csr_msg_transport.h"
|
|
|
|
#include "csr_wifi_lib.h"
|
|
|
|
#include "csr_wifi_router_prim.h"
|
|
#include "csr_wifi_router_task.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* CsrWifiRouterFreeUpstreamMessageContents
|
|
*
|
|
* DESCRIPTION
|
|
* Free the allocated memory in a CSR_WIFI_ROUTER upstream message. Does not
|
|
* free the message itself, and can only be used for upstream messages.
|
|
*
|
|
* PARAMETERS
|
|
* Deallocates the resources in a CSR_WIFI_ROUTER upstream message
|
|
*----------------------------------------------------------------------------*/
|
|
void CsrWifiRouterFreeUpstreamMessageContents(u16 eventClass, void *message);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* CsrWifiRouterFreeDownstreamMessageContents
|
|
*
|
|
* DESCRIPTION
|
|
* Free the allocated memory in a CSR_WIFI_ROUTER downstream message. Does not
|
|
* free the message itself, and can only be used for downstream messages.
|
|
*
|
|
* PARAMETERS
|
|
* Deallocates the resources in a CSR_WIFI_ROUTER downstream message
|
|
*----------------------------------------------------------------------------*/
|
|
void CsrWifiRouterFreeDownstreamMessageContents(u16 eventClass, void *message);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* Enum to string functions
|
|
*----------------------------------------------------------------------------*/
|
|
const char* CsrWifiRouterAppTypeToString(CsrWifiRouterAppType value);
|
|
const char* CsrWifiRouterEncapsulationToString(CsrWifiRouterEncapsulation value);
|
|
const char* CsrWifiRouterOuiToString(CsrWifiRouterOui value);
|
|
const char* CsrWifiRouterPriorityToString(CsrWifiRouterPriority value);
|
|
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* CsrPrim Type toString function.
|
|
* Converts a message type to the String name of the Message
|
|
*----------------------------------------------------------------------------*/
|
|
const char* CsrWifiRouterPrimTypeToString(CsrPrim msgType);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* Lookup arrays for PrimType name Strings
|
|
*----------------------------------------------------------------------------*/
|
|
extern const char *CsrWifiRouterUpstreamPrimNames[CSR_WIFI_ROUTER_PRIM_UPSTREAM_COUNT];
|
|
extern const char *CsrWifiRouterDownstreamPrimNames[CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_COUNT];
|
|
|
|
/*******************************************************************************
|
|
|
|
NAME
|
|
CsrWifiRouterMaPacketCancelReqSend
|
|
|
|
DESCRIPTION
|
|
This primitive is used to request cancellation of a previously send
|
|
CsrWifiRouterMaPacketReq.
|
|
The frame may already have been transmitted so there is no guarantees
|
|
that the CsrWifiRouterMaPacketCancelReq actually cancels the transmission
|
|
of the frame in question.
|
|
If the cancellation fails, the Router will send, if required,
|
|
CsrWifiRouterMaPacketCfm.
|
|
If the cancellation succeeds, the Router will not send
|
|
CsrWifiRouterMaPacketCfm.
|
|
|
|
PARAMETERS
|
|
queue - Message Source Task Queue (Cfm's will be sent to this Queue)
|
|
interfaceTag - Interface Identifier; unique identifier of an interface
|
|
hostTag - The hostTag for the frame, which should be cancelled.
|
|
priority - Priority of the frame, which should be cancelled
|
|
peerMacAddress - Destination MAC address of the frame, which should be
|
|
cancelled
|
|
|
|
*******************************************************************************/
|
|
#define CsrWifiRouterMaPacketCancelReqCreate(msg__, dst__, src__, interfaceTag__, hostTag__, priority__, peerMacAddress__) \
|
|
msg__ = kmalloc(sizeof(CsrWifiRouterMaPacketCancelReq), GFP_KERNEL); \
|
|
CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_PRIM, CSR_WIFI_ROUTER_MA_PACKET_CANCEL_REQ, dst__, src__); \
|
|
msg__->interfaceTag = (interfaceTag__); \
|
|
msg__->hostTag = (hostTag__); \
|
|
msg__->priority = (priority__); \
|
|
msg__->peerMacAddress = (peerMacAddress__);
|
|
|
|
#define CsrWifiRouterMaPacketCancelReqSendTo(dst__, src__, interfaceTag__, hostTag__, priority__, peerMacAddress__) \
|
|
{ \
|
|
CsrWifiRouterMaPacketCancelReq *msg__; \
|
|
CsrWifiRouterMaPacketCancelReqCreate(msg__, dst__, src__, interfaceTag__, hostTag__, priority__, peerMacAddress__); \
|
|
CsrMsgTransport(dst__, CSR_WIFI_ROUTER_PRIM, msg__); \
|
|
}
|
|
|
|
#define CsrWifiRouterMaPacketCancelReqSend(src__, interfaceTag__, hostTag__, priority__, peerMacAddress__) \
|
|
CsrWifiRouterMaPacketCancelReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, hostTag__, priority__, peerMacAddress__)
|
|
|
|
/*******************************************************************************
|
|
|
|
NAME
|
|
CsrWifiRouterMaPacketReqSend
|
|
|
|
DESCRIPTION
|
|
A task sends this primitive to transmit a frame.
|
|
|
|
PARAMETERS
|
|
queue - Message Source Task Queue (Cfm's will be sent to this Queue)
|
|
interfaceTag - Interface Identifier; unique identifier of an interface
|
|
subscriptionHandle - The handle of the subscription
|
|
frameLength - Length of the frame to be sent in bytes
|
|
frame - Pointer to the frame to be sent
|
|
freeFunction - Pointer to function to be used to free the frame
|
|
priority - Priority of the frame, which should be sent
|
|
hostTag - An application shall set the bits b31..b28 using one of
|
|
the CSR_WIFI_ROUTER_APP_TYPE_* masks. Bits b0..b27 can
|
|
be used by the requestor without any restrictions, but
|
|
the hostTag shall be unique so the hostTag for
|
|
CSR_WIFI_ROUTER_APP _TYPE_OTHER should be constructured
|
|
in the following way [ CSR_WIFI_ROUTER_APP_TYPE_OTHER
|
|
(4 bits) | SubscriptionHandle (8 bits) | Sequence no.
|
|
(20 bits) ]. If the hostTag is not unique, the
|
|
behaviour of the system is unpredicatable with respect
|
|
to data/management frame transfer.
|
|
cfmRequested - Indicates if the requestor needs a confirm for packet
|
|
requests sent under this subscription. If set to TRUE,
|
|
the router will send a confirm, else it will not send
|
|
any confirm
|
|
|
|
*******************************************************************************/
|
|
#define CsrWifiRouterMaPacketReqCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__, frameLength__, frame__, freeFunction__, priority__, hostTag__, cfmRequested__) \
|
|
msg__ = kmalloc(sizeof(CsrWifiRouterMaPacketReq), GFP_KERNEL); \
|
|
CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_PRIM, CSR_WIFI_ROUTER_MA_PACKET_REQ, dst__, src__); \
|
|
msg__->interfaceTag = (interfaceTag__); \
|
|
msg__->subscriptionHandle = (subscriptionHandle__); \
|
|
msg__->frameLength = (frameLength__); \
|
|
msg__->frame = (frame__); \
|
|
msg__->freeFunction = (freeFunction__); \
|
|
msg__->priority = (priority__); \
|
|
msg__->hostTag = (hostTag__); \
|
|
msg__->cfmRequested = (cfmRequested__);
|
|
|
|
#define CsrWifiRouterMaPacketReqSendTo(dst__, src__, interfaceTag__, subscriptionHandle__, frameLength__, frame__, freeFunction__, priority__, hostTag__, cfmRequested__) \
|
|
{ \
|
|
CsrWifiRouterMaPacketReq *msg__; \
|
|
CsrWifiRouterMaPacketReqCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__, frameLength__, frame__, freeFunction__, priority__, hostTag__, cfmRequested__); \
|
|
CsrMsgTransport(dst__, CSR_WIFI_ROUTER_PRIM, msg__); \
|
|
}
|
|
|
|
#define CsrWifiRouterMaPacketReqSend(src__, interfaceTag__, subscriptionHandle__, frameLength__, frame__, freeFunction__, priority__, hostTag__, cfmRequested__) \
|
|
CsrWifiRouterMaPacketReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, subscriptionHandle__, frameLength__, frame__, freeFunction__, priority__, hostTag__, cfmRequested__)
|
|
|
|
/*******************************************************************************
|
|
|
|
NAME
|
|
CsrWifiRouterMaPacketIndSend
|
|
|
|
DESCRIPTION
|
|
The router sends the primitive to a subscribed task when it receives a
|
|
frame matching the subscription.
|
|
|
|
PARAMETERS
|
|
queue - Destination Task Queue
|
|
interfaceTag - Interface Identifier; unique identifier of an interface
|
|
subscriptionHandle - The handle of the subscription
|
|
result - Status of the operation
|
|
frameLength - Length of the received frame in bytes
|
|
frame - Pointer to the received frame
|
|
freeFunction - Pointer to function to be used to free the frame
|
|
rssi - Received signal strength indication in dBm
|
|
snr - Signal to Noise Ratio
|
|
rate - Transmission/Reception rate
|
|
|
|
*******************************************************************************/
|
|
#define CsrWifiRouterMaPacketIndCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__, result__, frameLength__, frame__, freeFunction__, rssi__, snr__, rate__) \
|
|
msg__ = kmalloc(sizeof(CsrWifiRouterMaPacketInd), GFP_KERNEL); \
|
|
CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_PRIM, CSR_WIFI_ROUTER_MA_PACKET_IND, dst__, src__); \
|
|
msg__->interfaceTag = (interfaceTag__); \
|
|
msg__->subscriptionHandle = (subscriptionHandle__); \
|
|
msg__->result = (result__); \
|
|
msg__->frameLength = (frameLength__); \
|
|
msg__->frame = (frame__); \
|
|
msg__->freeFunction = (freeFunction__); \
|
|
msg__->rssi = (rssi__); \
|
|
msg__->snr = (snr__); \
|
|
msg__->rate = (rate__);
|
|
|
|
#define CsrWifiRouterMaPacketIndSendTo(dst__, src__, interfaceTag__, subscriptionHandle__, result__, frameLength__, frame__, freeFunction__, rssi__, snr__, rate__) \
|
|
{ \
|
|
CsrWifiRouterMaPacketInd *msg__; \
|
|
CsrWifiRouterMaPacketIndCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__, result__, frameLength__, frame__, freeFunction__, rssi__, snr__, rate__); \
|
|
CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_PRIM, msg__); \
|
|
}
|
|
|
|
#define CsrWifiRouterMaPacketIndSend(dst__, interfaceTag__, subscriptionHandle__, result__, frameLength__, frame__, freeFunction__, rssi__, snr__, rate__) \
|
|
CsrWifiRouterMaPacketIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, interfaceTag__, subscriptionHandle__, result__, frameLength__, frame__, freeFunction__, rssi__, snr__, rate__)
|
|
|
|
/*******************************************************************************
|
|
|
|
NAME
|
|
CsrWifiRouterMaPacketResSend
|
|
|
|
DESCRIPTION
|
|
A task send this primitive to confirm the reception of the received
|
|
frame.
|
|
|
|
PARAMETERS
|
|
interfaceTag - Interface Identifier; unique identifier of an interface
|
|
subscriptionHandle - The handle of the subscription
|
|
result - Status of the operation
|
|
|
|
*******************************************************************************/
|
|
#define CsrWifiRouterMaPacketResCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__, result__) \
|
|
msg__ = kmalloc(sizeof(CsrWifiRouterMaPacketRes), GFP_KERNEL); \
|
|
CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_PRIM, CSR_WIFI_ROUTER_MA_PACKET_RES, dst__, src__); \
|
|
msg__->interfaceTag = (interfaceTag__); \
|
|
msg__->subscriptionHandle = (subscriptionHandle__); \
|
|
msg__->result = (result__);
|
|
|
|
#define CsrWifiRouterMaPacketResSendTo(dst__, src__, interfaceTag__, subscriptionHandle__, result__) \
|
|
{ \
|
|
CsrWifiRouterMaPacketRes *msg__; \
|
|
CsrWifiRouterMaPacketResCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__, result__); \
|
|
CsrMsgTransport(dst__, CSR_WIFI_ROUTER_PRIM, msg__); \
|
|
}
|
|
|
|
#define CsrWifiRouterMaPacketResSend(src__, interfaceTag__, subscriptionHandle__, result__) \
|
|
CsrWifiRouterMaPacketResSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, subscriptionHandle__, result__)
|
|
|
|
/*******************************************************************************
|
|
|
|
NAME
|
|
CsrWifiRouterMaPacketCfmSend
|
|
|
|
DESCRIPTION
|
|
The router sends the primitive to confirm the result of the transmission
|
|
of the packet of the corresponding CSR_WIFI_ROUTER MA_PACKET_REQ request.
|
|
|
|
PARAMETERS
|
|
queue - Destination Task Queue
|
|
interfaceTag - Interface Identifier; unique identifier of an interface
|
|
result - Status of the operation
|
|
hostTag - The hostTrag will match the hostTag sent in the request.
|
|
rate - Transmission/Reception rate
|
|
|
|
*******************************************************************************/
|
|
#define CsrWifiRouterMaPacketCfmCreate(msg__, dst__, src__, interfaceTag__, result__, hostTag__, rate__) \
|
|
msg__ = kmalloc(sizeof(CsrWifiRouterMaPacketCfm), GFP_KERNEL); \
|
|
CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_PRIM, CSR_WIFI_ROUTER_MA_PACKET_CFM, dst__, src__); \
|
|
msg__->interfaceTag = (interfaceTag__); \
|
|
msg__->result = (result__); \
|
|
msg__->hostTag = (hostTag__); \
|
|
msg__->rate = (rate__);
|
|
|
|
#define CsrWifiRouterMaPacketCfmSendTo(dst__, src__, interfaceTag__, result__, hostTag__, rate__) \
|
|
{ \
|
|
CsrWifiRouterMaPacketCfm *msg__; \
|
|
CsrWifiRouterMaPacketCfmCreate(msg__, dst__, src__, interfaceTag__, result__, hostTag__, rate__); \
|
|
CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_PRIM, msg__); \
|
|
}
|
|
|
|
#define CsrWifiRouterMaPacketCfmSend(dst__, interfaceTag__, result__, hostTag__, rate__) \
|
|
CsrWifiRouterMaPacketCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, interfaceTag__, result__, hostTag__, rate__)
|
|
|
|
/*******************************************************************************
|
|
|
|
NAME
|
|
CsrWifiRouterMaPacketSubscribeReqSend
|
|
|
|
DESCRIPTION
|
|
A task can use this primitive to subscribe for a particular OUI/protocol
|
|
and transmit and receive frames matching the subscription.
|
|
NOTE: Multiple subscriptions for a given protocol and OUI will result in
|
|
the first subscription receiving the data and not the subsequent
|
|
subscriptions.
|
|
|
|
PARAMETERS
|
|
queue - Message Source Task Queue (Cfm's will be sent to this Queue)
|
|
interfaceTag - Interface Identifier; unique identifier of an interface
|
|
encapsulation - Specifies the encapsulation type, which will be used for the
|
|
subscription
|
|
protocol - Together with the OUI, specifies the protocol, which a task
|
|
wants to subscribe to
|
|
oui - Specifies the OUI for the protocol, which a task wants to
|
|
subscribe to
|
|
|
|
*******************************************************************************/
|
|
#define CsrWifiRouterMaPacketSubscribeReqCreate(msg__, dst__, src__, interfaceTag__, encapsulation__, protocol__, oui__) \
|
|
msg__ = kmalloc(sizeof(CsrWifiRouterMaPacketSubscribeReq), GFP_KERNEL); \
|
|
CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_PRIM, CSR_WIFI_ROUTER_MA_PACKET_SUBSCRIBE_REQ, dst__, src__); \
|
|
msg__->interfaceTag = (interfaceTag__); \
|
|
msg__->encapsulation = (encapsulation__); \
|
|
msg__->protocol = (protocol__); \
|
|
msg__->oui = (oui__);
|
|
|
|
#define CsrWifiRouterMaPacketSubscribeReqSendTo(dst__, src__, interfaceTag__, encapsulation__, protocol__, oui__) \
|
|
{ \
|
|
CsrWifiRouterMaPacketSubscribeReq *msg__; \
|
|
CsrWifiRouterMaPacketSubscribeReqCreate(msg__, dst__, src__, interfaceTag__, encapsulation__, protocol__, oui__); \
|
|
CsrMsgTransport(dst__, CSR_WIFI_ROUTER_PRIM, msg__); \
|
|
}
|
|
|
|
#define CsrWifiRouterMaPacketSubscribeReqSend(src__, interfaceTag__, encapsulation__, protocol__, oui__) \
|
|
CsrWifiRouterMaPacketSubscribeReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, encapsulation__, protocol__, oui__)
|
|
|
|
/*******************************************************************************
|
|
|
|
NAME
|
|
CsrWifiRouterMaPacketSubscribeCfmSend
|
|
|
|
DESCRIPTION
|
|
The router sends this primitive to confirm the result of the
|
|
subscription.
|
|
|
|
PARAMETERS
|
|
queue - Destination Task Queue
|
|
interfaceTag - Interface Identifier; unique identifier of an interface
|
|
subscriptionHandle - Handle to the subscription
|
|
This handle must be used in all subsequent requests
|
|
status - Status of the operation
|
|
allocOffset - Size of the offset for the frames of the subscription
|
|
|
|
*******************************************************************************/
|
|
#define CsrWifiRouterMaPacketSubscribeCfmCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__, status__, allocOffset__) \
|
|
msg__ = kmalloc(sizeof(CsrWifiRouterMaPacketSubscribeCfm), GFP_KERNEL); \
|
|
CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_PRIM, CSR_WIFI_ROUTER_MA_PACKET_SUBSCRIBE_CFM, dst__, src__); \
|
|
msg__->interfaceTag = (interfaceTag__); \
|
|
msg__->subscriptionHandle = (subscriptionHandle__); \
|
|
msg__->status = (status__); \
|
|
msg__->allocOffset = (allocOffset__);
|
|
|
|
#define CsrWifiRouterMaPacketSubscribeCfmSendTo(dst__, src__, interfaceTag__, subscriptionHandle__, status__, allocOffset__) \
|
|
{ \
|
|
CsrWifiRouterMaPacketSubscribeCfm *msg__; \
|
|
CsrWifiRouterMaPacketSubscribeCfmCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__, status__, allocOffset__); \
|
|
CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_PRIM, msg__); \
|
|
}
|
|
|
|
#define CsrWifiRouterMaPacketSubscribeCfmSend(dst__, interfaceTag__, subscriptionHandle__, status__, allocOffset__) \
|
|
CsrWifiRouterMaPacketSubscribeCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, interfaceTag__, subscriptionHandle__, status__, allocOffset__)
|
|
|
|
/*******************************************************************************
|
|
|
|
NAME
|
|
CsrWifiRouterMaPacketUnsubscribeReqSend
|
|
|
|
DESCRIPTION
|
|
A task sends this primitive to unsubscribe a subscription
|
|
|
|
PARAMETERS
|
|
queue - Message Source Task Queue (Cfm's will be sent to this Queue)
|
|
interfaceTag - Interface Identifier; unique identifier of an interface
|
|
subscriptionHandle - The handle of the subscription
|
|
|
|
*******************************************************************************/
|
|
#define CsrWifiRouterMaPacketUnsubscribeReqCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__) \
|
|
msg__ = kmalloc(sizeof(CsrWifiRouterMaPacketUnsubscribeReq), GFP_KERNEL); \
|
|
CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_PRIM, CSR_WIFI_ROUTER_MA_PACKET_UNSUBSCRIBE_REQ, dst__, src__); \
|
|
msg__->interfaceTag = (interfaceTag__); \
|
|
msg__->subscriptionHandle = (subscriptionHandle__);
|
|
|
|
#define CsrWifiRouterMaPacketUnsubscribeReqSendTo(dst__, src__, interfaceTag__, subscriptionHandle__) \
|
|
{ \
|
|
CsrWifiRouterMaPacketUnsubscribeReq *msg__; \
|
|
CsrWifiRouterMaPacketUnsubscribeReqCreate(msg__, dst__, src__, interfaceTag__, subscriptionHandle__); \
|
|
CsrMsgTransport(dst__, CSR_WIFI_ROUTER_PRIM, msg__); \
|
|
}
|
|
|
|
#define CsrWifiRouterMaPacketUnsubscribeReqSend(src__, interfaceTag__, subscriptionHandle__) \
|
|
CsrWifiRouterMaPacketUnsubscribeReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, subscriptionHandle__)
|
|
|
|
/*******************************************************************************
|
|
|
|
NAME
|
|
CsrWifiRouterMaPacketUnsubscribeCfmSend
|
|
|
|
DESCRIPTION
|
|
The router sends this primitive to confirm the result of the
|
|
unsubscription.
|
|
|
|
PARAMETERS
|
|
queue - Destination Task Queue
|
|
interfaceTag - Interface Identifier; unique identifier of an interface
|
|
status - Status of the operation
|
|
|
|
*******************************************************************************/
|
|
#define CsrWifiRouterMaPacketUnsubscribeCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
|
|
msg__ = kmalloc(sizeof(CsrWifiRouterMaPacketUnsubscribeCfm), GFP_KERNEL); \
|
|
CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_PRIM, CSR_WIFI_ROUTER_MA_PACKET_UNSUBSCRIBE_CFM, dst__, src__); \
|
|
msg__->interfaceTag = (interfaceTag__); \
|
|
msg__->status = (status__);
|
|
|
|
#define CsrWifiRouterMaPacketUnsubscribeCfmSendTo(dst__, src__, interfaceTag__, status__) \
|
|
{ \
|
|
CsrWifiRouterMaPacketUnsubscribeCfm *msg__; \
|
|
CsrWifiRouterMaPacketUnsubscribeCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
|
|
CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_PRIM, msg__); \
|
|
}
|
|
|
|
#define CsrWifiRouterMaPacketUnsubscribeCfmSend(dst__, interfaceTag__, status__) \
|
|
CsrWifiRouterMaPacketUnsubscribeCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, interfaceTag__, status__)
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* CSR_WIFI_ROUTER_LIB_H__ */
|