/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __ASM_CSKY_SPINLOCK_TYPES_H #define __ASM_CSKY_SPINLOCK_TYPES_H #ifndef __LINUX_SPINLOCK_TYPES_H # error "please don't include this file directly" #endif #define TICKET_NEXT 16 typedef struct { union { u32 lock; struct __raw_tickets { /* little endian */ u16 owner; u16 next; } tickets; }; } arch_spinlock_t; #define __ARCH_SPIN_LOCK_UNLOCKED { { 0 } } #ifdef CONFIG_QUEUED_RWLOCKS #include <asm-generic/qrwlock_types.h> #else /* CONFIG_NR_CPUS > 2 */ typedef struct { u32 lock; } arch_rwlock_t; #define __ARCH_RW_LOCK_UNLOCKED { 0 } #endif /* CONFIG_QUEUED_RWLOCKS */ #endif /* __ASM_CSKY_SPINLOCK_TYPES_H */