Hi, This referes to the file include/linux/cdev.h whose contents are listed below: #ifndef _LINUX_CDEV_H #define _LINUX_CDEV_H #ifdef __KERNEL__ struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; struct list_head list; dev_t dev; unsigned int count; }; void cdev_init(struct cdev *, const struct file_operations *); struct cdev *cdev_alloc(void); void cdev_put(struct cdev *p); int cdev_add(struct cdev *, dev_t, unsigned); void cdev_del(struct cdev *); void cd_forget(struct inode *); #endif #endif It is a little strange to me that it uses certain kernel structure types like kobject, module, list_head etc without #including appropriate headers. The result is that when I try to use struct cdev in my module by simply #including cdev.h, it flags an error. As a result I need to manually figure out which all headers do I need to (additionally) #include and in what order. Is this OK? Dan -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/