From: Andrei Tatar Date: Mon, 2 Oct 2023 19:07:40 +0000 (+0200) Subject: lib/uklock: Add static initializer for uk_rwlock X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=3257cbae0bbd7e3aed50c05460a7ad2149df2131;p=unikraft%2Funikraft.git lib/uklock: Add static initializer for uk_rwlock Signed-off-by: Andrei Tatar --- diff --git a/lib/uklock/include/uk/rwlock.h b/lib/uklock/include/uk/rwlock.h index 0ceee2645..140ed7689 100644 --- a/lib/uklock/include/uk/rwlock.h +++ b/lib/uklock/include/uk/rwlock.h @@ -54,6 +54,17 @@ void uk_rwlock_init_config(struct uk_rwlock *rwl, unsigned int config_flags); #define uk_rwlock_init(rwl) uk_rwlock_init_config(rwl, 0) +#define UK_RWLOCK_INITIALIZER(name, flags) \ + ((struct uk_rwlock){ \ + .nactive = 0, \ + .npending_reads = 0, \ + .npending_writes = 0, \ + .config_flags = flags, \ + .sl = UK_SPINLOCK_INITIALIZER(), \ + .shared = UK_WAIT_QUEUE_INITIALIZER((name).shared), \ + .exclusive = UK_WAIT_QUEUE_INITIALIZER((name).exclusive), \ + }) + /** * Acquire the reader-writer lock for reading. Multiple readers can * acquire the lock at the same time