| 
             static int globalvar_release(struct inode *inode, struct file *filp) {  globalvar_count--;  return 0; } 
            static ssize_t globalvar_read(struct file *filp, char *buf, size_t len, loff_t *off) {  if (down_interruptible(&sem))  {   return - ERESTARTSYS;  }  if (copy_to_user(buf, &global_var, sizeof(int)))  {   up(&sem);   return - EFAULT;  }  up(&sem);  return sizeof(int); }
  static ssize_t globalvar_write(struct file *filp, const char *buf, size_t len, loff_t *off) {  if (down_interruptible(&sem))  {   return - ERESTARTSYS;  }  if (copy_from_user(&global_var, buf, sizeof(int)))  {   up(&sem);   return - EFAULT;  }  up(&sem);  return sizeof(int); }
  module_init(globalvar_init); module_exit(globalvar_exit); 
             |