14ecca339SDan Handley /* 293c78ed2SAntonio 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 7*f8b30ca8SAntonio Nino Diaz #ifndef SPINLOCK_H 8*f8b30ca8SAntonio Nino Diaz #define SPINLOCK_H 94ecca339SDan Handley 10b38bc68bSJeenu Viswambharan #ifndef __ASSEMBLY__ 11b38bc68bSJeenu Viswambharan 1293c78ed2SAntonio 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 29*f8b30ca8SAntonio Nino Diaz #endif /* SPINLOCK_H */ 30