kernel: implement a generic object signalling system
This commit is contained in:
@@ -88,9 +88,11 @@ struct object {
|
||||
koid_t ob_id;
|
||||
struct object_type *ob_type;
|
||||
spin_lock_t ob_lock;
|
||||
uint32_t ob_signals;
|
||||
unsigned int ob_refcount;
|
||||
unsigned int ob_handles;
|
||||
struct queue_entry ob_list;
|
||||
struct waitqueue ob_wq;
|
||||
} __aligned(sizeof(long));
|
||||
|
||||
extern kern_status_t object_bootstrap(void);
|
||||
@@ -116,6 +118,13 @@ extern void object_unlock_pair_irqrestore(
|
||||
struct object *b,
|
||||
unsigned long flags);
|
||||
|
||||
extern void object_assert_signal(struct object *obj, uint32_t signals);
|
||||
extern void object_clear_signal(struct object *obj, uint32_t signals);
|
||||
extern void object_wait_signal(
|
||||
struct object *obj,
|
||||
uint32_t signals,
|
||||
unsigned long *irq_flags);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user