IntrOS
Loading...
Searching...
No Matches
Flag

flags (any, all, new) More...

Macros

#define flgAny   0U
 wait for any flags to be set
#define flgAll   1U
 wait for all flags to be set
#define flgNew   2U
 ignore flags in flag object that have been set before
#define flgAnyNew   ( flgAny | flgNew )
 flgAny | flgNew
#define flgAllNew   ( flgAll | flgNew )
 flgAll | flgNew
#define OS_FLG(flg, ...)
 define and initialize a flag object
#define static_FLG(flg, ...)
 static alias of OS_FLG()
#define FLG_INIT(...)
 create and initialize a flag object
#define FLG_CREATE(...)
 create and initialize a flag object
#define FLG_NEW   FLG_CREATE
 alias of FLG_CREATE()

Functions

void flg_init (flg_t *flg, unsigned init)
 initialize a flag object
void flg_reset (flg_t *flg)
 reset the flag object and wake up all waiting tasks with 'E_STOPPED' event value
void flg_kill (flg_t *flg)
 alias of flg_reset()
unsigned flg_take (flg_t *flg, unsigned flags, unsigned mode)
 check if required flags have been set in the flag object
unsigned flg_tryWait (flg_t *flg, unsigned flags, unsigned mode)
 alias of flg_take()
int flg_waitFor (flg_t *flg, unsigned flags, unsigned mode, cnt_t delay)
 wait on flag object for given flags for given duration of time
int flg_waitUntil (flg_t *flg, unsigned flags, unsigned mode, cnt_t time)
 wait on flag object for given flags until given timepoint
int flg_wait (flg_t *flg, unsigned flags, unsigned mode)
 wait indefinitely on flag object until required flags have been set
unsigned flg_give (flg_t *flg, unsigned flags)
 set given flags in flag object
unsigned flg_set (flg_t *flg, unsigned flags)
 alias of flg_give()
unsigned flg_clear (flg_t *flg, unsigned flags)
 clear given flags in flag object
unsigned flg_get (flg_t *flg)
 get current flags from flag object

Detailed Description

flags (any, all, new)

Macro Definition Documentation

◆ OS_FLG

#define OS_FLG ( flg,
... )
Value:
flg_t flg[] = { _FLG_INIT( _VA_FLG(__VA_ARGS__) ) }

define and initialize a flag object

Parameters
flgname of a pointer to flag object
...init: (optional) initial value of flag; default: 0

◆ static_FLG

#define static_FLG ( flg,
... )
Value:
static flg_t flg[] = { _FLG_INIT( _VA_FLG(__VA_ARGS__) ) }

static alias of OS_FLG()

◆ FLG_INIT

#define FLG_INIT ( ...)
Value:
_FLG_INIT( _VA_FLG(__VA_ARGS__) )

create and initialize a flag object

Parameters
...init: (optional) initial value of flag; default: 0
Returns
flag object
Note
use only in 'C' code

◆ FLG_CREATE

#define FLG_CREATE ( ...)
Value:
{ FLG_INIT ( _VA_FLG(__VA_ARGS__) ) }
#define FLG_INIT(...)
create and initialize a flag object
Definition osflag.h:121

create and initialize a flag object

Parameters
...init: (optional) initial value of flag; default: 0
Returns
flag object as array (id)
Note
use only in 'C' code

Function Documentation

◆ flg_init()

void flg_init ( flg_t * flg,
unsigned init )

initialize a flag object

Parameters
flgpointer to flag object
initinitial value of flag

◆ flg_reset()

void flg_reset ( flg_t * flg)

reset the flag object and wake up all waiting tasks with 'E_STOPPED' event value

Parameters
flgpointer to flag object
Note
use only in thread mode

◆ flg_take()

unsigned flg_take ( flg_t * flg,
unsigned flags,
unsigned mode )

check if required flags have been set in the flag object

Parameters
flgpointer to flag object
flagsall flags to wait
modewaiting mode
  • flgAny: wait for any flags to be set
  • flgAll: wait for all flags to be set
  • flgNew: ignore flags in flag object that have been set before ( either flgAny or flgAll can be used with flgNew )
Return values
0required flags have been set
anothervalue remaining flags, try again

◆ flg_waitFor()

int flg_waitFor ( flg_t * flg,
unsigned flags,
unsigned mode,
cnt_t delay )

wait on flag object for given flags for given duration of time

Parameters
flgpointer to flag object
flagsall flags to wait
modewaiting mode
  • flgAny: wait for any flags to be set
  • flgAll: wait for all flags to be set
  • flgNew: ignore flags in flag object that have been set before ( either flgAny or flgAll can be used with flgNew )
delayduration of time (maximum number of ticks to wait on flag object for given flags)
  • IMMEDIATE: don't wait until required flags have been set
  • INFINITE: wait indefinitely until required flags have been set
Return values
E_SUCCESSrequired flags have been set
E_STOPPEDflag object was reseted before the specified timeout expired
E_TIMEOUTrequired flags have not been set before the specified timeout expired

◆ flg_waitUntil()

int flg_waitUntil ( flg_t * flg,
unsigned flags,
unsigned mode,
cnt_t time )

wait on flag object for given flags until given timepoint

Parameters
flgpointer to flag object
flagsall flags to wait
modewaiting mode
  • flgAny: wait for any flags to be set
  • flgAll: wait for all flags to be set
  • flgNew: ignore flags in flag object that have been set before ( either flgAny or flgAll can be used with flgNew )
timetimepoint value
Return values
E_SUCCESSrequired flags have been set
E_STOPPEDflag object was reseted before the specified timeout expired
E_TIMEOUTrequired flags have not been set before the specified timeout expired

◆ flg_wait()

int flg_wait ( flg_t * flg,
unsigned flags,
unsigned mode )
inline

wait indefinitely on flag object until required flags have been set

Parameters
flgpointer to flag object
flagsall flags to wait
modewaiting mode
  • flgAny: wait for any flags to be set
  • flgAll: wait for all flags to be set
  • flgNew: ignore flags in flag object that have been set before ( either flgAny or flgAll can be used with flgNew )
Return values
E_SUCCESSrequired flags have been set
E_STOPPEDflag object was reseted

◆ flg_give()

unsigned flg_give ( flg_t * flg,
unsigned flags )

set given flags in flag object

Parameters
flgpointer to flag object
flagsall flags to set
Returns
flags after setting

◆ flg_clear()

unsigned flg_clear ( flg_t * flg,
unsigned flags )

clear given flags in flag object

Parameters
flgpointer to flag object
flagsall flags to clear
Returns
flags before clearing

◆ flg_get()

unsigned flg_get ( flg_t * flg)

get current flags from flag object

Parameters
flgpointer to flag object
Returns
current flags in flag object