linux-2.6.33/mutex
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#d0a9d345]
#backlinks
*説明 [#rdc38b3a]
-パス: [[linux-2.6.33/include/linux/mutex.h]]
-FIXME: これは何?
--説明
**参考 [#ld43aa47]
*実装 [#h88ea8c0]
/*
* Simple, straightforward mutexes with strict semantics:
*
* - only one task can hold the mutex at a time
* - only the owner can unlock the mutex
* - multiple unlocks are not permitted
* - recursive locking is not permitted
* - a mutex object must be initialized via the API
* - a mutex object must not be initialized via memset o...
* - task may not exit with mutex held
* - memory areas where held locks reside must not be fr...
* - held mutexes must not be reinitialized
* - mutexes may not be used in hardware or software int...
* contexts such as tasklets and timers
*
* These semantics are fully enforced when DEBUG_MUTEXES...
* enabled. Furthermore, besides enforcing the above rul...
* debugging code also implements a number of additional...
* that make lock debugging easier and faster:
*
* - uses symbolic names of mutexes, whenever they are p...
* - point-of-acquire tracking, symbolic lookup of funct...
* - list of all locks held in the system, printout of t...
* - owner tracking
* - detects self-recursing locks and prints out all rel...
* - detects multi-task circular deadlocks and prints ou...
* locks and tasks (and only those tasks)
*/
struct mutex {
/* 1: unlocked, 0: locked, negative: locked, possible w...
atomic_t count;
-
--[[linux-2.6.33/atomic_t]]
spinlock_t wait_lock;
-
--[[linux-2.6.33/spinlock_t]]
struct list_head wait_list;
-
--[[linux-2.6.33/list_head]]
#if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_SMP)
-
--[[linux-2.6.33/CONFIG_DEBUG_MUTEXES]]
--[[linux-2.6.33/CONFIG_SMP]]
struct thread_info *owner;
-
--[[linux-2.6.33/thread_info]]
#endif
#ifdef CONFIG_DEBUG_MUTEXES
-
--[[linux-2.6.33/CONFIG_DEBUG_MUTEXES]]
const char *name;
void *magic;
#endif
#ifdef CONFIG_DEBUG_LOCK_ALLOC
-
--[[linux-2.6.33/CONFIG_DEBUG_LOCK_ALLOC]]
struct lockdep_map dep_map;
-
--[[linux-2.6.33/lockdep_map]]
#endif
};
*コメント [#z90d5c63]
終了行:
*参照元 [#d0a9d345]
#backlinks
*説明 [#rdc38b3a]
-パス: [[linux-2.6.33/include/linux/mutex.h]]
-FIXME: これは何?
--説明
**参考 [#ld43aa47]
*実装 [#h88ea8c0]
/*
* Simple, straightforward mutexes with strict semantics:
*
* - only one task can hold the mutex at a time
* - only the owner can unlock the mutex
* - multiple unlocks are not permitted
* - recursive locking is not permitted
* - a mutex object must be initialized via the API
* - a mutex object must not be initialized via memset o...
* - task may not exit with mutex held
* - memory areas where held locks reside must not be fr...
* - held mutexes must not be reinitialized
* - mutexes may not be used in hardware or software int...
* contexts such as tasklets and timers
*
* These semantics are fully enforced when DEBUG_MUTEXES...
* enabled. Furthermore, besides enforcing the above rul...
* debugging code also implements a number of additional...
* that make lock debugging easier and faster:
*
* - uses symbolic names of mutexes, whenever they are p...
* - point-of-acquire tracking, symbolic lookup of funct...
* - list of all locks held in the system, printout of t...
* - owner tracking
* - detects self-recursing locks and prints out all rel...
* - detects multi-task circular deadlocks and prints ou...
* locks and tasks (and only those tasks)
*/
struct mutex {
/* 1: unlocked, 0: locked, negative: locked, possible w...
atomic_t count;
-
--[[linux-2.6.33/atomic_t]]
spinlock_t wait_lock;
-
--[[linux-2.6.33/spinlock_t]]
struct list_head wait_list;
-
--[[linux-2.6.33/list_head]]
#if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_SMP)
-
--[[linux-2.6.33/CONFIG_DEBUG_MUTEXES]]
--[[linux-2.6.33/CONFIG_SMP]]
struct thread_info *owner;
-
--[[linux-2.6.33/thread_info]]
#endif
#ifdef CONFIG_DEBUG_MUTEXES
-
--[[linux-2.6.33/CONFIG_DEBUG_MUTEXES]]
const char *name;
void *magic;
#endif
#ifdef CONFIG_DEBUG_LOCK_ALLOC
-
--[[linux-2.6.33/CONFIG_DEBUG_LOCK_ALLOC]]
struct lockdep_map dep_map;
-
--[[linux-2.6.33/lockdep_map]]
#endif
};
*コメント [#z90d5c63]
ページ名: