brintos

brintos / linux-shallow public Read only

0
0
Text · 683 B · 12392c1 Raw
35 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef __ASM_GENERIC_QRWLOCK_TYPES_H3#define __ASM_GENERIC_QRWLOCK_TYPES_H4 5#include <linux/types.h>6#include <asm/byteorder.h>7#include <asm/spinlock_types.h>8 9/*10 * The queued read/write lock data structure11 */12 13typedef struct qrwlock {14	union {15		atomic_t cnts;16		struct {17#ifdef __LITTLE_ENDIAN18			u8 wlocked;	/* Locked for write? */19			u8 __lstate[3];20#else21			u8 __lstate[3];22			u8 wlocked;	/* Locked for write? */23#endif24		};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 */35