/* * Copyright (c) 2013-2024, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef SPINLOCK_H #define SPINLOCK_H #ifndef __ASSEMBLER__ #include typedef struct spinlock { volatile uint32_t lock; } spinlock_t; typedef struct bitlock { volatile uint8_t lock; } bitlock_t; void spin_lock(spinlock_t *lock); void spin_unlock(spinlock_t *lock); void bit_lock(bitlock_t *lock, uint8_t mask); void bit_unlock(bitlock_t *lock, uint8_t mask); #else /* Spin lock definitions for use in assembly */ #define SPINLOCK_ASM_ALIGN 2 #define SPINLOCK_ASM_SIZE 4 #endif /* __ASSEMBLER__ */ #endif /* SPINLOCK_H */