標準ライブラリ
リンク・リスト
機能単位 | 主なヘッダやソース | 備考 |
リスト操作 | include/linux/list.h | リンク・リスト・メンバーからそれを保持する構造体へ変換するマクロ list_entry() は container_of() と同じです。リスト操作に関連するならば list_entry() を使用して下さい。 |
アトミック操作
機能単位 | 主なヘッダやソース | 備考 |
整数 | include/linux/atomic.h asm/atomic.h | asm/atomic.h はプロセッサ毎に定義されています。asm/atomic.h は linux/atomic.h で include されます。直接 include しない方が良いでしょう。 |
ビット |
排他制御
機能単位 | 主なヘッダやソース | 備考 |
Spin Lock | ||
Semaphore |
同期制御、状態変化待ち
機能単位 | 主なヘッダやソース |
Event |
割り込み処理
機能単位 | 主なヘッダやソース | 備考 |
IRQ class |
時間待ち、タイマー
機能単位 | 主なヘッダやソース | 備考 |
Sleep | ||
Timer |
時刻
機能単位 | 主なヘッダやソース | 備考 |
jiffies | ||
Time |
メモリ確保
機能単位 | 主なヘッダやソース | 備考 |
任意サイズ | include/linux/slab.h | |
ページ単位 | include/linux/gfp.h include/linux/mm.h | ページ確保: gfp.h alloc_page() 、ページ・アドレス取得: mm.h page_address() となっています。 |
論理-物理マップ、DMA 転送、コピー
機能単位 | 主なヘッダやソース |
User - Kernel Copy | |
Virt - Phy map convert | |
DMA map Scatter Gather |
スレッド・軽量処理
機能単位 | 主なヘッダやソース |
kthread | |
work queue | |
tasklet |
接続切断通知
機能単位 | 主なヘッダやソース |
UEvent | |
switch (Android) |
リファレンスカウンタ
機能単位 | 主なヘッダやソース |
kref |
Kernel Object
機能単位 | 主なヘッダやソース | 備考 |
KObject | ||
KSet |
ノード形成
機能単位 | 主なヘッダやソース | 備考 |
VFS(character) | ||
VFS(block) | ||
procfs | ||
sysfs | ||
debugfs |
モジュールロード、アンロード、シンボル解決
機能単位 | 主なヘッダやソース | 備考 |
Module insmod rmmod | ||
Symbol lookup |
基本的なドライバ
機能単位 | 主なヘッダやソース |
Null, Zero, Full, Mem drivers |
基本的なファイルシステムノード
機能単位 | 主なヘッダやソース | 備考 |
pipe | ||
eventfd | ||
signalfd | ||
timerfd |