Achin Gupta | 4f6ad66 | 2013-10-25 09:08:21 +0100 | [diff] [blame] | 1 | /* |
Antonio Nino Diaz | 4b32e62 | 2018-08-16 16:52:57 +0100 | [diff] [blame] | 2 | * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. |
Achin Gupta | 4f6ad66 | 2013-10-25 09:08:21 +0100 | [diff] [blame] | 3 | * |
dp-arm | fa3cf0b | 2017-05-03 09:38:09 +0100 | [diff] [blame] | 4 | * SPDX-License-Identifier: BSD-3-Clause |
Achin Gupta | 4f6ad66 | 2013-10-25 09:08:21 +0100 | [diff] [blame] | 5 | */ |
6 | |||||
Antonio Nino Diaz | 519248b | 2018-10-31 15:55:57 +0000 | [diff] [blame] | 7 | #ifndef SPINLOCK_H |
8 | #define SPINLOCK_H | ||||
Achin Gupta | 4f6ad66 | 2013-10-25 09:08:21 +0100 | [diff] [blame] | 9 | |
Julius Werner | 53456fc | 2019-07-09 13:49:11 -0700 | [diff] [blame] | 10 | #ifndef __ASSEMBLER__ |
Jeenu Viswambharan | 54ec86a | 2017-01-19 14:23:36 +0000 | [diff] [blame] | 11 | |
Antonio Nino Diaz | 4b32e62 | 2018-08-16 16:52:57 +0100 | [diff] [blame] | 12 | #include <stdint.h> |
Jeenu Viswambharan | 54ec86a | 2017-01-19 14:23:36 +0000 | [diff] [blame] | 13 | |
Dan Handley | e2712bc | 2014-04-10 15:37:22 +0100 | [diff] [blame] | 14 | typedef struct spinlock { |
Jeenu Viswambharan | 54ec86a | 2017-01-19 14:23:36 +0000 | [diff] [blame] | 15 | volatile uint32_t lock; |
Achin Gupta | 4f6ad66 | 2013-10-25 09:08:21 +0100 | [diff] [blame] | 16 | } spinlock_t; |
17 | |||||
18 | void spin_lock(spinlock_t *lock); | ||||
19 | void spin_unlock(spinlock_t *lock); | ||||
20 | |||||
Jeenu Viswambharan | 54ec86a | 2017-01-19 14:23:36 +0000 | [diff] [blame] | 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 | |||||
Antonio Nino Diaz | 519248b | 2018-10-31 15:55:57 +0000 | [diff] [blame] | 29 | #endif /* SPINLOCK_H */ |