#ifndef _LINUX_DEVFS_FS_KERNEL_H #define _LINUX_DEVFS_FS_KERNEL_H #include #include #include #include #include #include #define DEVFS_SUPER_MAGIC 0x1373 #define DEVFS_FL_NONE 0x000 /* This helps to make code more readable */ #define DEVFS_FL_WAIT 0x010 /* Wait for devfsd to finish */ #define DEVFS_FL_CURRENT_OWNER 0x020 /* Set initial ownership to current */ #define DEVFS_FL_DEFAULT DEVFS_FL_NONE typedef struct devfs_entry * devfs_handle_t; struct gendisk; #ifdef CONFIG_DEVFS_FS extern devfs_handle_t devfs_register (devfs_handle_t dir, const char *name, unsigned int flags, unsigned int major, unsigned int minor, umode_t mode, void *ops, void *info); extern void devfs_unregister (devfs_handle_t de); extern int devfs_mk_symlink (const char *name, const char *link); extern devfs_handle_t devfs_mk_dir(const char *fmt, ...) __attribute__((format (printf, 1, 2))); extern void devfs_remove(const char *fmt, ...) __attribute__((format (printf, 1, 2))); extern int devfs_generate_path (devfs_handle_t de, char *path, int buflen); extern int devfs_register_tape (devfs_handle_t de); extern void devfs_unregister_tape(int num); extern void devfs_create_partitions(struct gendisk *dev); extern void devfs_create_cdrom(struct gendisk *dev); extern void devfs_remove_partitions(struct gendisk *dev); extern void mount_devfs_fs (void); #else /* CONFIG_DEVFS_FS */ static inline devfs_handle_t devfs_register (devfs_handle_t dir, const char *name, unsigned int flags, unsigned int major, unsigned int minor, umode_t mode, void *ops, void *info) { return NULL; } static inline void devfs_unregister (devfs_handle_t de) { return; } static inline int devfs_mk_symlink (const char *name, const char *link) { return 0; } static inline devfs_handle_t devfs_mk_dir(const char *fmt, ...) { return NULL; } static inline void devfs_remove(const char *fmt, ...) { } static inline int devfs_generate_path (devfs_handle_t de, char *path, int buflen) { return -ENOSYS; } static inline int devfs_register_tape (devfs_handle_t de) { return -1; } static inline void devfs_unregister_tape(int num) { } static inline void devfs_create_partitions(struct gendisk *dev) { } static inline void devfs_create_cdrom(struct gendisk *dev) { } static inline void devfs_remove_partitions(struct gendisk *dev) { } static inline void mount_devfs_fs (void) { return; } #endif /* CONFIG_DEVFS_FS */ #endif /* _LINUX_DEVFS_FS_KERNEL_H */