1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __ASM_SPINLOCK_TYPES_H 3#define __ASM_SPINLOCK_TYPES_H 4 5#ifndef __LINUX_SPINLOCK_TYPES_H 6# error "please don't include this file directly" 7#endif 8 9#define TICKET_SHIFT 16 10 11typedef struct { 12 union { 13 u32 slock; 14 struct __raw_tickets { 15#ifdef __ARMEB__ 16 u16 next; 17 u16 owner; 18#else 19 u16 owner; 20 u16 next; 21#endif 22 } tickets; 23 }; 24} arch_spinlock_t; 25 26#define __ARCH_SPIN_LOCK_UNLOCKED { { 0 } } 27 28typedef struct { 29 u32 lock; 30} arch_rwlock_t; 31 32#define __ARCH_RW_LOCK_UNLOCKED { 0 } 33 34#endif 35