mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-27 09:12:32 +00:00
45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
|
/*
|
||
|
* \brief Linux kernel API
|
||
|
* \author Norman Feske
|
||
|
* \author Sebastian Sumpf
|
||
|
* \author Josef Soentgen
|
||
|
* \date 2014-08-21
|
||
|
*
|
||
|
* Based on the prototypes found in the Linux kernel's 'include/'.
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* Copyright (C) 2014 Genode Labs GmbH
|
||
|
*
|
||
|
* This file is part of the Genode OS framework, which is distributed
|
||
|
* under the terms of the GNU General Public License version 2.
|
||
|
*/
|
||
|
|
||
|
/**********************
|
||
|
** linux/spinlock.h **
|
||
|
**********************/
|
||
|
|
||
|
typedef struct spinlock { unsigned unused; } spinlock_t;
|
||
|
#define DEFINE_SPINLOCK(name) spinlock_t name
|
||
|
|
||
|
void spin_lock(spinlock_t *lock);
|
||
|
void spin_lock_nested(spinlock_t *lock, int subclass);
|
||
|
void spin_unlock(spinlock_t *lock);
|
||
|
void spin_lock_init(spinlock_t *lock);
|
||
|
void spin_lock_irqsave(spinlock_t *lock, unsigned long flags);
|
||
|
void spin_lock_irqrestore(spinlock_t *lock, unsigned long flags);
|
||
|
void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags);
|
||
|
void spin_lock_irq(spinlock_t *lock);
|
||
|
void spin_unlock_irq(spinlock_t *lock);
|
||
|
void assert_spin_locked(spinlock_t *lock);
|
||
|
void spin_lock_bh(spinlock_t *lock);
|
||
|
void spin_unlock_bh(spinlock_t *lock);
|
||
|
int spin_trylock(spinlock_t *lock);
|
||
|
|
||
|
|
||
|
/****************************
|
||
|
** linux/spinlock_types.h **
|
||
|
****************************/
|
||
|
|
||
|
#define __SPIN_LOCK_UNLOCKED(x) 0
|