FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
linux/kernel/mutex-debug.h at master · fabgithub/linux · GitHub
fabgithub
linux
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
linux
/
kernel
/
mutex-debug.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
55 lines (50 loc) · 1.66 KB
Breadcrumbs
linux
/
kernel
/
mutex-debug.h
Copy path
File metadata and controls
55 lines (50 loc) · 1.66 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
* Mutexes: blocking mutual exclusion locks
*
* started by Ingo Molnar:
*
* Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
*
* This file contains mutex debugging related internal declarations,
* prototypes and inline functions, for the CONFIG_DEBUG_MUTEXES case.
* More details are in kernel/mutex-debug.c.
*/
/*
* This must be called with lock->wait_lock held.
*/
extern
void
debug_mutex_lock_common
(
struct
mutex
*
lock
,
struct
mutex_waiter
*
waiter
);
extern
void
debug_mutex_wake_waiter
(
struct
mutex
*
lock
,
struct
mutex_waiter
*
waiter
);
extern
void
debug_mutex_free_waiter
(
struct
mutex_waiter
*
waiter
);
extern
void
debug_mutex_add_waiter
(
struct
mutex
*
lock
,
struct
mutex_waiter
*
waiter
,
struct
thread_info
*
ti
);
extern
void
mutex_remove_waiter
(
struct
mutex
*
lock
,
struct
mutex_waiter
*
waiter
,
struct
thread_info
*
ti
);
extern
void
debug_mutex_unlock
(
struct
mutex
*
lock
);
extern
void
debug_mutex_init
(
struct
mutex
*
lock
,
const
char
*
name
,
struct
lock_class_key
*
key
);
static
inline
void
mutex_set_owner
(
struct
mutex
*
lock
)
{
lock
->
owner
=
current
;
}
static
inline
void
mutex_clear_owner
(
struct
mutex
*
lock
)
{
lock
->
owner
=
NULL
;
}
#define
spin_lock_mutex
(
lock
,
flags
) \
do { \
struct mutex *l = container_of(lock, struct mutex, wait_lock); \
\
DEBUG_LOCKS_WARN_ON(in_interrupt()); \
local_irq_save(flags); \
arch_spin_lock(&(lock)->rlock.raw_lock);\
DEBUG_LOCKS_WARN_ON(l->magic != l); \
} while (0)
#define
spin_unlock_mutex
(
lock
,
flags
) \
do { \
arch_spin_unlock(&(lock)->rlock.raw_lock); \
local_irq_restore(flags); \
preempt_check_resched(); \
} while (0)
Back
|
FazBrowse Home
|
New Git URL