dev.c 829 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <linux/init.h>
  2. #include <linux/module.h>
  3. #include <linux/device.h>
  4. #include <linux/types.h>
  5. #include <linux/cdev.h>
  6. #include <linux/fs.h>
  7. #include <linux/slab.h>
  8. #include "mod.h"
  9. #include "dev.h"
  10. #include "debug.h"
  11. int kmm_device_open(struct inode *inode, struct file *filp)
  12. {
  13. kmm_dev_t *dev;
  14. dev = container_of( inode->i_cdev, kmm_dev_t, cdev);
  15. filp->private_data = dev;
  16. mod_info("open\n");
  17. return 0;
  18. }
  19. int kmm_device_release(struct inode *inode, struct file *filp)
  20. {
  21. mod_info("close\n");
  22. return 0;
  23. }
  24. static struct file_operations kmm_fops = {
  25. .owner = THIS_MODULE,
  26. // .unlocked_ioctl = pcidriver_ioctl,
  27. // .mmap = pcidriver_mmap,
  28. .open = kmm_device_open,
  29. .release = kmm_device_release,
  30. };
  31. const struct file_operations *kmm_get_fops(void)
  32. {
  33. return &kmm_fops;
  34. }