34 AllocatorCapability heapCapability,
35 struct EventGroup **outGroup);
59 struct EventGroup *group,
77 struct EventGroup *group,
92 struct EventGroup *group,
94 uint32_t bitsToClear);
110 struct EventGroup *group);
119 struct EventGroup *group);
Macros for interacting with the compartmentalisation model in CHERIoT.
int __cheri_libcall eventgroup_get(struct EventGroup *group, uint32_t *outBits)
Returns the current value of the event bits via outBits.
int __cheri_libcall eventgroup_wait(TimeoutArgument timeout, struct EventGroup *group, uint32_t *outBits, uint32_t bitsWanted, _Bool waitForAll, _Bool clearOnExit)
Wait for events in an event group.
int __cheri_libcall eventgroup_clear(TimeoutArgument timeout, struct EventGroup *group, uint32_t *outBits, uint32_t bitsToClear)
Clear one or more bits in an event group.
int __cheri_libcall eventgroup_destroy_force(AllocatorCapability heapCapability, struct EventGroup *group)
Destroy an event group without tacking the lock.
int __cheri_libcall eventgroup_create(TimeoutArgument timeout, AllocatorCapability heapCapability, struct EventGroup **outGroup)
Create a new event group, allocated using heapCapability.
int __cheri_libcall eventgroup_destroy(AllocatorCapability heapCapability, struct EventGroup *group)
Destroy an event group.
int __cheri_libcall eventgroup_set(TimeoutArgument timeout, struct EventGroup *group, uint32_t *outBits, uint32_t bitsToSet)
Set one or more bits in an event group.
This file contains the types used for timeouts across scheduler APIs.