#ifndef __KERNEL_DEVICES_DEVICE_H__ # define __KERNEL_DEVICES_DEVICE_H__ #include #include #include #define dev_get_major(dev) (dev & 0xff00) #define dev_get_minor(dev) (dev & 0x00ff) #define dev_make_major(major) ((major & 0xff) << 8) #define DEVICE(name) \ __attribute__((section(".device"))) \ static struct device name##_dev // Struct used to define device struct device { dev_t major; void *(*open)(dev_t major, dev_t minor); struct file_operations file_op; int (*close)(void *inode); }; #endif /*__KERNEL_DEVICES_DEVICE_H__*/