diff --git a/include/kernel/object.h b/include/kernel/object.h index 6672d8b..a20e7c4 100644 --- a/include/kernel/object.h +++ b/include/kernel/object.h @@ -33,6 +33,18 @@ extern "C" { { \ object_unlock_irqrestore(&p->base, flags); \ } \ + static inline void object_name##_lock_pair( \ + struct object_name *a, \ + struct object_name *b) \ + { \ + object_lock_pair(&a->base, &b->base); \ + } \ + static inline void object_name##_unlock_pair( \ + struct object_name *a, \ + struct object_name *b) \ + { \ + object_unlock_pair(&a->base, &b->base); \ + } \ static inline void object_name##_lock_pair_irqsave( \ struct object_name *a, \ struct object_name *b, \ @@ -109,6 +121,9 @@ extern void object_unlock(struct object *obj); extern void object_lock_irqsave(struct object *obj, unsigned long *flags); extern void object_unlock_irqrestore(struct object *obj, unsigned long flags); +extern void object_lock_pair(struct object *a, struct object *b); +extern void object_unlock_pair(struct object *a, struct object *b); + extern void object_lock_pair_irqsave( struct object *a, struct object *b,