gdb - Local mods (compile)
[dragonfly.git] / sys / sys / mplock2.h
1 /*
2  * SYS/MPLOCK2.H
3  *
4  * Implement the MP lock.  Note that debug operations
5  */
6 #ifndef _SYS_MPLOCK2_H_
7 #define _SYS_MPLOCK2_H_
8
9 #include <machine/atomic.h>
10 #ifndef _SYS_THREAD_H_
11 #include <sys/thread.h>
12 #endif
13 #ifndef _SYS_GLOBALDATA_H_
14 #include <sys/globaldata.h>
15 #endif
16
17 /*
18  * NOTE: try_mplock()/lwkt_trytoken() return non-zero on success.
19  */
20 #define get_mplock()            lwkt_gettoken(&mp_token)
21 #define try_mplock()            lwkt_trytoken(&mp_token)
22 #define rel_mplock()            lwkt_reltoken(&mp_token)
23 #define get_mplock_count(td)    lwkt_cnttoken(&mp_token, td)
24
25 void cpu_get_initial_mplock(void);
26
27 #define MP_LOCK_HELD()          LWKT_TOKEN_HELD_EXCL(&mp_token)
28 #define ASSERT_MP_LOCK_HELD()   ASSERT_LWKT_TOKEN_HELD_EXCL(&mp_token)
29
30 #endif