kernel: Make SMP support default (and non-optional).
[dragonfly.git] / sys / sys / mplock2.h
CommitLineData
684a93c4
MD
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
684a93c4 9#include <machine/atomic.h>
684a93c4
MD
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
b5d16701
MD
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)
684a93c4 24
684a93c4 25void cpu_get_initial_mplock(void);
684a93c4 26
01672f8c
MD
27#define MP_LOCK_HELD() LWKT_TOKEN_HELD_EXCL(&mp_token)
28#define ASSERT_MP_LOCK_HELD() ASSERT_LWKT_TOKEN_HELD_EXCL(&mp_token)
c5724852 29
684a93c4 30#endif