ユーティリティー - static_branch_unlikely()
概要
struct static_key型の値が0であるか確認する
詳細
比較する値xを引数として取得し、HAVE_JUMP_LABELの値によって処理が以下のように変わります
定義済み
- __builtin_types_compatible_p()でxの型を比較し、型がstruct static_key_trueと一致したらarch_static_branch_jump()を、struct static_key_falseと一致したらarch_static_branch()をそれぞれxのkeyメンバへのポインタと1を引数として実行するが、いずれの型とも一致しない場合は____wrong_branch_error()を実行する
- 返り値はいづれかのマクロを実行した返り値となる
未定義
- static_key_enabled()でstruct static_key型の値を取得し、取得した値をunlikely()で比較する