]> git.karo-electronics.de Git - karo-tx-linux.git/blob - drivers/staging/wilc1000/wilc_msgqueue.h
staging: wilc1000: remove WILC_Uint32
[karo-tx-linux.git] / drivers / staging / wilc1000 / wilc_msgqueue.h
1 #ifndef __WILC_MSG_QUEUE_H__
2 #define __WILC_MSG_QUEUE_H__
3
4 /*!
5  *  @file       wilc_msgqueue.h
6  *  @brief      Message Queue OS wrapper functionality
7  *  @author     syounan
8  *  @sa         wilc_oswrapper.h top level OS wrapper file
9  *  @date       30 Aug 2010
10  *  @version    1.0
11  */
12
13 /*!
14  *  @struct             tstrWILC_MsgQueueAttrs
15  *  @brief              Message Queue API options
16  *  @author             syounan
17  *  @date               30 Aug 2010
18  *  @version            1.0
19  */
20 typedef struct {
21         /* a dummy member to avoid compiler errors*/
22         u8 dummy;
23
24 } tstrWILC_MsgQueueAttrs;
25
26 /*!
27  *  @brief              Creates a new Message queue
28  *  @details            Creates a new Message queue, if the feature
29  *                              CONFIG_WILC_MSG_QUEUE_IPC_NAME is enabled and pstrAttrs->pcName
30  *                              is not Null, then this message queue can be used for IPC with
31  *                              any other message queue having the same name in the system
32  *  @param[in,out]      pHandle handle to the message queue object
33  *  @param[in]  pstrAttrs Optional attributes, NULL for default
34  *  @return             Error code indicating sucess/failure
35  *  @sa                 tstrWILC_MsgQueueAttrs
36  *  @author             syounan
37  *  @date               30 Aug 2010
38  *  @version            1.0
39  */
40 WILC_ErrNo WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle,
41                                tstrWILC_MsgQueueAttrs *pstrAttrs);
42
43
44 /*!
45  *  @brief              Sends a message
46  *  @details            Sends a message, this API will block unil the message is
47  *                              actually sent or until it is timedout (as long as the feature
48  *                              CONFIG_WILC_MSG_QUEUE_TIMEOUT is enabled and pstrAttrs->u32Timeout
49  *                              is not set to WILC_OS_INFINITY), zero timeout is a valid value
50  *  @param[in]  pHandle handle to the message queue object
51  *  @param[in]  pvSendBuffer pointer to the data to send
52  *  @param[in]  u32SendBufferSize the size of the data to send
53  *  @param[in]  pstrAttrs Optional attributes, NULL for default
54  *  @return             Error code indicating sucess/failure
55  *  @sa                 tstrWILC_MsgQueueAttrs
56  *  @author             syounan
57  *  @date               30 Aug 2010
58  *  @version            1.0
59  */
60 WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle,
61                              const void *pvSendBuffer, u32 u32SendBufferSize,
62                              tstrWILC_MsgQueueAttrs *pstrAttrs);
63
64
65 /*!
66  *  @brief              Receives a message
67  *  @details            Receives a message, this API will block unil a message is
68  *                              received or until it is timedout (as long as the feature
69  *                              CONFIG_WILC_MSG_QUEUE_TIMEOUT is enabled and pstrAttrs->u32Timeout
70  *                              is not set to WILC_OS_INFINITY), zero timeout is a valid value
71  *  @param[in]  pHandle handle to the message queue object
72  *  @param[out] pvRecvBuffer pointer to a buffer to fill with the received message
73  *  @param[in]  u32RecvBufferSize the size of the receive buffer
74  *  @param[out] pu32ReceivedLength the length of received data
75  *  @param[in]  pstrAttrs Optional attributes, NULL for default
76  *  @return             Error code indicating sucess/failure
77  *  @sa                 tstrWILC_MsgQueueAttrs
78  *  @author             syounan
79  *  @date               30 Aug 2010
80  *  @version            1.0
81  */
82 WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle,
83                              void *pvRecvBuffer, u32 u32RecvBufferSize,
84                              u32 *pu32ReceivedLength,
85                              tstrWILC_MsgQueueAttrs *pstrAttrs);
86
87
88 /*!
89  *  @brief              Destroys an existing  Message queue
90  *  @param[in]  pHandle handle to the message queue object
91  *  @param[in]  pstrAttrs Optional attributes, NULL for default
92  *  @return             Error code indicating sucess/failure
93  *  @sa                 tstrWILC_MsgQueueAttrs
94  *  @author             syounan
95  *  @date               30 Aug 2010
96  *  @version            1.0
97  */
98 WILC_ErrNo WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle,
99                                 tstrWILC_MsgQueueAttrs *pstrAttrs);
100
101
102
103 #endif