     ,   ,  -
      .  -
          
        ,
      .      , -
   ,    
 .

  

       ,   -
  ,       .
 ,         
  <asm/bitops.h>.

      ,  ,   -
 ,     .   -
    .  0      , 
   .  32-   31   
 ,   0      .  
   ,    ,   -
         0  31 (  63 
64- ).

      ,      
 atomic_t,       .  
     .   .

unsigned long word = 0;

set bit (0, Sword);      /*    0 */
set bit(l. Sword);      /*    1 */
printk("%ul\n", word);  /*   "3" */
clear bit(l, sword);    /*    1 */
change bit (0, Sword);   /*     1,
   */

/*       

   () */
if (test_and_set_bit (0, Sword)) {

/*     ... */
}

       . 9.2.
        
.     ,     ,    -
   ,      
  . ,    test_bit ()
   _test_bit ().     ,  
 , ,       ,
    .

    181