99 #ifndef _TN_EVENTGRP_H
100 #define _TN_EVENTGRP_H
170 #if TN_OLD_EVENT_API || defined(DOXYGEN_ACTIVE)
223 #if TN_OLD_EVENT_API || defined(DOXYGEN_ACTIVE)
464 #endif // _TN_EVENTGRP_H
A link to event group: used when event group can be connected to some kernel object, such as queue.
enum TN_RCode tn_eventgrp_create_wattr(struct TN_EventGrp *eventgrp, enum TN_EGrpAttr attr, TN_UWord initial_pattern)
The same as tn_eventgrp_create(), but takes additional argument: attr.
When a task successfully ends waiting for event bit(s), these bits get cleared atomically and automat...
enum TN_RCode tn_eventgrp_iwait_polling(struct TN_EventGrp *eventgrp, TN_UWord wait_pattern, enum TN_EGrpWaitMode wait_mode, TN_UWord *p_flags_pattern)
The same as tn_eventgrp_wait() with zero timeout, but for using in the ISR.
Task waits for all of the event bits from the wait_pattern to be set in the event group...
enum TN_EGrpWaitMode wait_mode
event wait mode: AND or OR
Circular doubly linked list, for internal kernel usage.
TN_EGrpOp
Modify operation: set, clear or toggle.
Clear flags that are set in the given pattern argument.
TN_RCode
Result code returned by kernel services.
#define _TN_INLINE
If compiler does not conform to c99 standard, there's no inline keyword.
TN_ObjId
Magic number for object validity verification.
EventGrp-specific fields related to waiting task, to be included in struct TN_Task.
unsigned long TN_TickCnt
Type for system tick count, it is used by the kernel to represent absolute tick count value as well a...
TN_EGrpWaitMode
Events waiting mode that should be given to tn_eventgrp_wait() and friends.
Definitions used through the whole kernel.
struct TN_EventGrp * eventgrp
event group whose event(s) should be managed by other kernel object
enum TN_RCode tn_eventgrp_imodify(struct TN_EventGrp *eventgrp, enum TN_EGrpOp operation, TN_UWord pattern)
The same as tn_eventgrp_modify(), but for using in the ISR.
Toggle flags that are set in the given pattern argument.
TN_UWord pattern
event pattern to manage
Task waits for any of the event bits from the wait_pattern to be set in the event group...
enum TN_RCode tn_eventgrp_wait(struct TN_EventGrp *eventgrp, TN_UWord wait_pattern, enum TN_EGrpWaitMode wait_mode, TN_UWord *p_flags_pattern, TN_TickCnt timeout)
Wait for specified event(s) in the event group.
enum TN_ObjId id_event
id for object validity verification.
#define TN_OLD_EVENT_API
Whether the old TNKernel events API compatibility mode is active.
enum TN_EGrpAttr attr
Attributes that are given to that events group, available if only TN_OLD_EVENT_API option is non-zero...
TN_EGrpAttr
Attributes that could be given to the event group object.
enum TN_RCode tn_eventgrp_modify(struct TN_EventGrp *eventgrp, enum TN_EGrpOp operation, TN_UWord pattern)
Modify current events bit pattern in the event group.
enum TN_RCode tn_eventgrp_delete(struct TN_EventGrp *eventgrp)
Destruct event group.
TN_UWord wait_pattern
event wait pattern
static _TN_INLINE enum TN_RCode tn_eventgrp_create(struct TN_EventGrp *eventgrp, TN_UWord initial_pattern)
Construct event group.
Kernel system routines: system start, tick processing, time slice managing.
Set flags that are set in given pattern argument.
TN_UWord actual_pattern
pattern that caused task to finish waiting
Circular doubly linked list item, for internal kernel usage.
unsigned int TN_UWord
Unsigned integer type whose size is equal to the size of CPU register.
Dummy attribute that does not change anything.
TN_UWord pattern
current flags pattern
enum TN_RCode tn_eventgrp_wait_polling(struct TN_EventGrp *eventgrp, TN_UWord wait_pattern, enum TN_EGrpWaitMode wait_mode, TN_UWord *p_flags_pattern)
The same as tn_eventgrp_wait() with zero timeout.
struct TN_ListItem wait_queue
task wait queue