1 /* 2 * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef SPINLOCK_H 8 #define SPINLOCK_H 9 10 #ifndef __ASSEMBLER__ 11 12 #include <stdint.h> 13 14 typedef struct spinlock { 15 volatile uint32_t lock; 16 } spinlock_t; 17 18 void spin_lock(spinlock_t *lock); 19 void spin_unlock(spinlock_t *lock); 20 21 #else 22 23 /* Spin lock definitions for use in assembly */ 24 #define SPINLOCK_ASM_ALIGN 2 25 #define SPINLOCK_ASM_SIZE 4 26 27 #endif 28 29 #endif /* SPINLOCK_H */ 30