linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

2016-04-01から1日間の記事一覧

ローカルオブジェクト - local_inc()

概要 local_t型の値をインクリメントする 詳細 _ASM_INCで引数として受け取ったlocal_t型の値をインクリメントするアセンブラ命令を実行する

アセンブラ命令 - _ASM_INC

asm

概要 CPUのアーキテクチャに応じたインクリメント命令を生成する 詳細 __ASM_SIZE()にincを渡して実行し、CPUのアーキテクチャに応じたインクリメント命令を生成する

ローカルオブジェクト - local_dec()

概要 local_t型の値をデクリメントする 詳細 _ASM_DECで引数として受け取ったlocal_t型の値をデクリメントするアセンブラ命令を実行する

アセンブラ命令 - _ASM_DEC

asm

概要 CPUのアーキテクチャに応じたデクリメント命令を生成する 詳細 __ASM_SIZE()にdecを渡して実行し、CPUのアーキテクチャに応じたデクリメント命令を生成する

アセンブラ命令 - __ASM_SIZE()

asm

概要 CPUのアーキテクチャに応じて適切なアセンブラ命令を生成する 詳細 アセンブラ命令を示す文字列instを引数として取得するが、可変長引数として複数の引数を取得できる __ASM_SEL()の第一引数にinstとlに可変長引数の値を連結した文字列を、第二引数には…

バッファ操作 - trace_recursive_unlock()

概要 割込みのロックを開放する 詳細 この関数ではstruct ring_buffer_per_cpu構造体へのポインタを引数として受け取り、current_contextメンバの値valを使用する valの値は低いビットから順に マスク不可割込み ハードウェア割込み ソフトウェア割込み プリ…

割り込み処理 - in_nmi()

irq

概要 マスク不可割込みの状態を取得する 詳細 preempt_count()で実行待ちプロセス数を取得し、NMI_MASKでマスクをかけた値が0でなければ1を、0であれば0を返す

割り込み処理 - in_irq()

irq

概要 ハードウェア割込みの状態を取得する 詳細 hardirq_count()で現在ハードウェア割り込みによって割込みされているプロセス数を取得し、取得した値が0でなければ1を、0であれば0を返す

割り込み処理 - hardirq_count()

irq

概要 ハードウェア割込みで実行待ちになっているプロセス数を取得する 詳細 preempt_count()で実行待ちプロセス数を取得するが、HARDIRQ_MASKでマスクをかけるためハードウェア割込みだけのプロセス数を取得する

割り込み処理 - in_interrupt()

irq

概要 割込みの状態を取得する 詳細 irq_count()で現在割込みされているプロセス数を取得し、取得した値が0でなければ1を、0であれば0を返す

割込み処理 - irq_count()

irq

概要 全ての種類の割込みで実行待ちになっているプロセス数を取得する 詳細 preempt_count()で実行待ちプロセス数を取得するが、HARDIRQ_MASK・SOFTIRQ_MASK・NMI_MASKでそれぞれハードウェア割込み・ソフトウェア割込み・マスク不可割込みの3種類全てのプロ…