diff options
Diffstat (limited to 'roms/opensbi/include/sbi/riscv_locks.h')
-rw-r--r-- | roms/opensbi/include/sbi/riscv_locks.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/roms/opensbi/include/sbi/riscv_locks.h b/roms/opensbi/include/sbi/riscv_locks.h new file mode 100644 index 000000000..55da7c01c --- /dev/null +++ b/roms/opensbi/include/sbi/riscv_locks.h @@ -0,0 +1,34 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2019 Western Digital Corporation or its affiliates. + * + * Authors: + * Anup Patel <anup.patel@wdc.com> + */ + +#ifndef __RISCV_LOCKS_H__ +#define __RISCV_LOCKS_H__ + +typedef struct { + volatile long lock; +} spinlock_t; + +#define __RISCV_SPIN_UNLOCKED 0 + +#define SPIN_LOCK_INIT(_lptr) (_lptr)->lock = __RISCV_SPIN_UNLOCKED + +#define SPIN_LOCK_INITIALIZER \ + { \ + .lock = __RISCV_SPIN_UNLOCKED, \ + } + +int spin_lock_check(spinlock_t *lock); + +int spin_trylock(spinlock_t *lock); + +void spin_lock(spinlock_t *lock); + +void spin_unlock(spinlock_t *lock); + +#endif |