14ecca339SDan Handley /* 2*93c78ed2SAntonio Nino Diaz * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. 34ecca339SDan Handley * 482cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause 54ecca339SDan Handley */ 64ecca339SDan Handley 74ecca339SDan Handley #ifndef __SPINLOCK_H__ 84ecca339SDan Handley #define __SPINLOCK_H__ 94ecca339SDan Handley 10b38bc68bSJeenu Viswambharan #ifndef __ASSEMBLY__ 11b38bc68bSJeenu Viswambharan 12*93c78ed2SAntonio Nino Diaz #include <stdint.h> 13b38bc68bSJeenu Viswambharan 14fb037bfbSDan Handley typedef struct spinlock { 15b38bc68bSJeenu Viswambharan volatile uint32_t lock; 164ecca339SDan Handley } spinlock_t; 174ecca339SDan Handley 184ecca339SDan Handley void spin_lock(spinlock_t *lock); 194ecca339SDan Handley void spin_unlock(spinlock_t *lock); 204ecca339SDan Handley 21b38bc68bSJeenu Viswambharan #else 22b38bc68bSJeenu Viswambharan 23b38bc68bSJeenu Viswambharan /* Spin lock definitions for use in assembly */ 24b38bc68bSJeenu Viswambharan #define SPINLOCK_ASM_ALIGN 2 25b38bc68bSJeenu Viswambharan #define SPINLOCK_ASM_SIZE 4 26b38bc68bSJeenu Viswambharan 27b38bc68bSJeenu Viswambharan #endif 28b38bc68bSJeenu Viswambharan 294ecca339SDan Handley #endif /* __SPINLOCK_H__ */ 30