*参照元 [#rd168395] #backlinks *説明 [#yea7af67] -パス: [[linux-2.6.33/arch/x86/include/asm/bitops.h]] -unsigned long 値の指定されたビット位置に ビットが立っているかどうかテストする。 **引数 [#p7b325ae] -int nr --ビット位置 -const volatile unsigned long *addr --評価対象の unsigned long 値のポインタ **返り値 [#fb855be0] -int --ビットがセットされている場合 0 以外、ビットがセットされていない場合 0 **参考 [#jf6e96ce] *実装 [#i1f88f02] #if 0 /* Fool kernel-doc since it doesn't do macros yet */ /** * test_bit - Determine whether a bit is set * @nr: bit number to test * @addr: Address to start counting from */ static int test_bit(int nr, const volatile unsigned long *addr); #endif #define test_bit(nr, addr) \ (__builtin_constant_p((nr)) \ ? constant_test_bit((nr), (addr)) \ : variable_test_bit((nr), (addr))) -nr が定数ならば、定数用のテスト関数(constant_test_bit)を呼び、 そうでなければ汎用のテスト関数(variable_test_bit)を呼ぶ。 --[[linux-2.6.33/__builtin_constant_p()]] --[[linux-2.6.33/constant_test_bit()(x86)]] --[[linux-2.6.33/variable_test_bit()(x86)]] *コメント [#x23f856c]