m2mb API docs  25.30.004.0
m2mb API sets documentation
m2mb_os_ev.h
Go to the documentation of this file.
1 /* $version: 252203 */
2 /*===============================================================================================*/
3 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
27 #ifndef M2MB_OS_EV_H
28 #define M2MB_OS_EV_H
29 
30 
31 
32 /* GLOBAL DECLARATIONS ----------------------------------------------------------- */
33 #define M2MB_OS_EV_INVALID 0
34 #define M2MB_OS_EV_INVALID_ATTR 0
35 
36 
37 
38 /* Global declarations ==========================================================================*/
39 /*-----------------------------------------------------------------------------------------------
40 
41  can be called directly without specify CMDS_ARGS
42  osRes = m2mb_os_ev_setAttrItem_( &evAttrHandle,
43  M2MB_OS_EV_SEL_CMD_CREATE_ATTR, NULL,
44  M2MB_OS_EV_SEL_CMD_NAME, "event_1",
45  M2MB_OS_EV_SEL_CMD_USRNAME, "myevent1"
46  );
47  -----------------------------------------------------------------------------------------------*/
48 #ifdef _WIN32
49 #define m2mb_os_ev_setAttrItem_( h, ... ) m2mb_os_ev_setAttrItem( h, CMDS_ARGS( __VA_ARGS__ ) )
50 #else
51 #define m2mb_os_ev_setAttrItem_( h, args... ) m2mb_os_ev_setAttrItem( h, CMDS_ARGS( args ) )
52 #endif
53 
54 
55 
56 /* Global typedefs --------------------------------------------------------------- */
57 
58 typedef enum
59 {
60  M2MB_OS_EV_SEL_CMD_CREATE_ATTR,
61  M2MB_OS_EV_SEL_CMD_DEL_ATTR,
62  /* use as Os name , can be used during creation */
63  M2MB_OS_EV_SEL_CMD_NAME,
64  /* if set, usr name could be different from Os used in creation */
65  M2MB_OS_EV_SEL_CMD_USRNAME,
66  /* number of task suspended on this resource */
67  M2MB_OS_EV_SEL_CMD_SUSPENDED_COUNT,
68  /* first task (M2MB_OS_TASK_HANDLE) to be served when its required resources will be available */
69  M2MB_OS_EV_SEL_CMD_1ST_SUSP,
70  /* to get the status of current bits event */
71  M2MB_OS_EV_SEL_CMD_CURRENT_BITS_EVENT,
72 
73  /* ---- */
74  M2MB_OS_EV_SEL_CMD_END,
75  ENUM_TO_INT( M2MB_OS_EV_SEL_CMD_E )
76 } M2MB_OS_EV_SEL_CMD_E;
77 
78 /* options for setting event bits: set or clear specified ones */
79 typedef enum
80 {
81  M2MB_OS_EV_SET = 0,
82  M2MB_OS_EV_CLEAR = 2,
83 
84  /* ---- */
85  M2MB_OS_EV_SET_OPT_END,
86  ENUM_TO_INT( M2MB_OS_EV_SET_OPT_E )
87 } M2MB_OS_EV_SET_OPT_E;
88 
89 /* options for getting event bits: get all selected (and clear) or get any of selected (and clear matches) */
90 typedef enum
91 {
92  /* get the event if any of the selected event bits are set ...*/
93  M2MB_OS_EV_GET_ANY = 0,
94  /* ... then clear all the set bit in selected event bits */
95  M2MB_OS_EV_GET_ANY_AND_CLEAR,
96  /* get the event if all the selected event bits are set ...*/
97  M2MB_OS_EV_GET_ALL,
98  /* ... then clear all the set bit in selected event bits */
99  M2MB_OS_EV_GET_ALL_AND_CLEAR,
100 
101  /* ---- */
102  M2MB_OS_EV_GET_OPT_END,
103  ENUM_TO_INT( M2MB_OS_EV_GET_OPT_E )
104 } M2MB_OS_EV_GET_OPT_E;
105 
106 typedef struct M2MB_OS_EV_HANDLE_TAG *M2MB_OS_EV_HANDLE;
107 typedef struct M2MB_OS_EV_ATTR_HANDLE_TAG *M2MB_OS_EV_ATTR_HANDLE;
108 
109 
110 /* Global functions =============================================================================*/
111 
112 /*-----------------------------------------------------------------------------------------------*/
174 /*-----------------------------------------------------------------------------------------------*/
175 M2MB_OS_RESULT_E m2mb_os_ev_init( M2MB_OS_EV_HANDLE *pEvHandle, M2MB_OS_EV_ATTR_HANDLE *pEvAttrHandle );
176 
177 /*-----------------------------------------------------------------------------------------------*/
214 /*-----------------------------------------------------------------------------------------------*/
215 M2MB_OS_RESULT_E m2mb_os_ev_deinit( M2MB_OS_EV_HANDLE evHandle );
216 
217 /*-----------------------------------------------------------------------------------------------*/
268 /*-----------------------------------------------------------------------------------------------*/
269 M2MB_OS_RESULT_E m2mb_os_ev_set(
270  M2MB_OS_EV_HANDLE evHandle,
271  UINT32 evBits,
272  M2MB_OS_EV_SET_OPT_E optSet
273 );
274 
275 /*-----------------------------------------------------------------------------------------------*/
347 /*-----------------------------------------------------------------------------------------------*/
348 M2MB_OS_RESULT_E m2mb_os_ev_get(
349  M2MB_OS_EV_HANDLE evHandle,
350  UINT32 reqEvBits,
351  M2MB_OS_EV_GET_OPT_E optGet,
352  UINT32 *pCurEvBits,
353  UINT32 timeout
354 );
355 
356 /*-----------------------------------------------------------------------------------------------*/
430 /*-----------------------------------------------------------------------------------------------*/
431 M2MB_OS_RESULT_E m2mb_os_ev_setAttrItem( M2MB_OS_EV_ATTR_HANDLE *pEvAttrHandle, UINT8 nCmds, ... );
432 
433 /*-----------------------------------------------------------------------------------------------*/
511 /*-----------------------------------------------------------------------------------------------*/
512 M2MB_OS_RESULT_E m2mb_os_ev_getItem(
513  M2MB_OS_EV_HANDLE evHandle,
514  M2MB_OS_EV_SEL_CMD_E selCmd,
515  MEM_W *pOut,
516  void *pIn
517 );
518 
519 /*-----------------------------------------------------------------------------------------------*/
559 /*-----------------------------------------------------------------------------------------------*/
560 M2MB_OS_RESULT_E m2mb_os_ev_setItem(
561  M2MB_OS_EV_HANDLE evHandle,
562  M2MB_OS_EV_SEL_CMD_E selCmd,
563  void *pIn
564 );
565 
566 
567 #endif /* M2MB_OS_EV_H */
m2mb_os_ev_set
M2MB_OS_RESULT_E m2mb_os_ev_set(M2MB_OS_EV_HANDLE evHandle, UINT32 evBits, M2MB_OS_EV_SET_OPT_E optSet)
Set bits of event in a specified event.
m2mb_os_ev_setItem
M2MB_OS_RESULT_E m2mb_os_ev_setItem(M2MB_OS_EV_HANDLE evHandle, M2MB_OS_EV_SEL_CMD_E selCmd, void *pIn)
Set specific properties of the event.
m2mb_os_ev_getItem
M2MB_OS_RESULT_E m2mb_os_ev_getItem(M2MB_OS_EV_HANDLE evHandle, M2MB_OS_EV_SEL_CMD_E selCmd, MEM_W *pOut, void *pIn)
Get specific properties of the event.
m2mb_os_ev_setAttrItem
M2MB_OS_RESULT_E m2mb_os_ev_setAttrItem(M2MB_OS_EV_ATTR_HANDLE *pEvAttrHandle, UINT8 nCmds,...)
Set specific attribute for event init or creation.
m2mb_os_ev_get
M2MB_OS_RESULT_E m2mb_os_ev_get(M2MB_OS_EV_HANDLE evHandle, UINT32 reqEvBits, M2MB_OS_EV_GET_OPT_E optGet, UINT32 *pCurEvBits, UINT32 timeout)
Get an application event.
m2mb_os_ev_init
M2MB_OS_RESULT_E m2mb_os_ev_init(M2MB_OS_EV_HANDLE *pEvHandle, M2MB_OS_EV_ATTR_HANDLE *pEvAttrHandle)
Application Event Set Creation.
m2mb_os_ev_deinit
M2MB_OS_RESULT_E m2mb_os_ev_deinit(M2MB_OS_EV_HANDLE evHandle)
Application Event deinit or deletion.