examples/mini/mini.c
changeset 226 07247920a7ba
parent 223 daa5e5656b35
child 246 0bf7c769de06
equal deleted inserted replaced
225:9e8150db6fc8 226:07247920a7ba
   106 
   106 
   107 /*****************************************************************************/
   107 /*****************************************************************************/
   108 
   108 
   109 int request_lock(void *data)
   109 int request_lock(void *data)
   110 {
   110 {
   111     unsigned int tries = 0;
   111     spin_lock_bh(&master_lock);
   112     while (1) {
   112     return 0; // access allowed
   113         if (spin_trylock(&master_lock)) {
       
   114             if (tries) printk(KERN_INFO "lock: %i tries needed.\n", tries);
       
   115             return 1;
       
   116         }
       
   117         tries++;
       
   118     }
       
   119 }
   113 }
   120 
   114 
   121 /*****************************************************************************/
   115 /*****************************************************************************/
   122 
   116 
   123 void release_lock(void *data)
   117 void release_lock(void *data)
   124 {
   118 {
   125     spin_unlock(&master_lock);
   119     spin_unlock_bh(&master_lock);
   126 }
   120 }
   127 
   121 
   128 /*****************************************************************************/
   122 /*****************************************************************************/
   129 
   123 
   130 int __init init_mini_module(void)
   124 int __init init_mini_module(void)