cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

qrwlock_types.h (683B)


      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 queued read/write lock data structure
     11 */
     12
     13typedef 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 */