root/include/asm-generic/qrwlock_types.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __ASM_GENERIC_QRWLOCK_TYPES_H
   3 #define __ASM_GENERIC_QRWLOCK_TYPES_H
   4 
   5 #include <linux/types.h>
   6 #include <asm/byteorder.h>
   7 #include <asm/spinlock_types.h>
   8 
   9 /*
  10  * The queue read/write lock data structure
  11  */
  12 
  13 typedef struct qrwlock {
  14         union {
  15                 atomic_t cnts;
  16                 struct {
  17 #ifdef __LITTLE_ENDIAN
  18                         u8 wlocked;     /* Locked for write? */
  19                         u8 __lstate[3];
  20 #else
  21                         u8 __lstate[3];
  22                         u8 wlocked;     /* Locked for write? */
  23 #endif
  24                 };
  25         };
  26         arch_spinlock_t         wait_lock;
  27 } arch_rwlock_t;
  28 
  29 #define __ARCH_RW_LOCK_UNLOCKED {               \
  30         { .cnts = ATOMIC_INIT(0), },            \
  31         .wait_lock = __ARCH_SPIN_LOCK_UNLOCKED, \
  32 }
  33 
  34 #endif /* __ASM_GENERIC_QRWLOCK_TYPES_H */

/* [<][>][^][v][top][bottom][index][help] */