root/fs/minix/chrdev.c

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. chrdev_open

   1 /*
   2  *  linux/fs/chrdev.c
   3  *
   4  *  (C) 1991  Linus Torvalds
   5  */
   6 
   7 #include <linux/sched.h>
   8 #include <linux/minix_fs.h>
   9 #include <linux/tty.h>
  10 
  11 #include <errno.h>
  12 #include <fcntl.h>
  13 #include <sys/stat.h>
  14 
  15 /*
  16  * Called every time a minix character special file is opened
  17  */
  18 static int chrdev_open(struct inode * inode, struct file * filp)
     /* [previous][next][first][last][top][bottom][index][help] */
  19 {
  20         int i;
  21 
  22         i = MAJOR(inode->i_rdev);
  23         if (i < MAX_CHRDEV) {
  24                 filp->f_op = chrdev_fops[i];
  25                 if (filp->f_op && filp->f_op->open)
  26                         return filp->f_op->open(inode,filp);
  27         }
  28         return 0;
  29 }
  30 
  31 /*
  32  * Dummy default file-operations: the only thing this does
  33  * is contain the open that then fills in the correct operations
  34  * depending on the special file...
  35  */
  36 static struct file_operations def_chr_fops = {
  37         NULL,           /* lseek */
  38         NULL,           /* read */
  39         NULL,           /* write */
  40         NULL,           /* readdir */
  41         NULL,           /* select */
  42         NULL,           /* ioctl */
  43         chrdev_open,    /* open */
  44         NULL,           /* release */
  45 };
  46 
  47 struct inode_operations minix_chrdev_inode_operations = {
  48         &def_chr_fops,          /* default file operations */
  49         NULL,                   /* create */
  50         NULL,                   /* lookup */
  51         NULL,                   /* link */
  52         NULL,                   /* unlink */
  53         NULL,                   /* symlink */
  54         NULL,                   /* mkdir */
  55         NULL,                   /* rmdir */
  56         NULL,                   /* mknod */
  57         NULL,                   /* rename */
  58         NULL,                   /* readlink */
  59         NULL,                   /* follow_link */
  60         minix_bmap,             /* bmap */
  61         minix_truncate          /* truncate */
  62 };
  63 

/* [previous][next][first][last][top][bottom][index][help] */