DEVFS - Code Cleanup
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 6 Aug 2009 17:09:01 +0000 (10:09 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 6 Aug 2009 17:09:01 +0000 (10:09 -0700)
sys/vfs/devfs/devfs.h

index 23e05f5..473a738 100644 (file)
@@ -77,87 +77,81 @@ struct devfs_dirent {
 };
 
 struct devfs_fid {
-       uint16_t fid_len;       /* Length of structure. */
-       uint16_t fid_pad;       /* Force 32-bit alignment. */
-       uint32_t fid_gen;
-       ino_t     fid_ino;      /* File number (ino). */
+       uint16_t        fid_len;        /* Length of structure. */
+       uint16_t        fid_pad;        /* Force 32-bit alignment. */
+       uint32_t        fid_gen;
+       ino_t           fid_ino;        /* File number (ino). */
 };
 
 struct devfs_node {
-       cdev_t  d_dev;                                  /* device assoicated with this node */
+       cdev_t          d_dev;          /* device assoicated with this node */
 
-       struct mount            *mp;            /* mount point of this node */
-       struct devfs_dirent     d_dir;          /* dirent data (name, inode, ...) */
-       struct vnode            *v_node;        /* assoicated vnode */
-       struct devfs_node       *parent;        /* parent of this node */
-       devfs_nodetype          node_type;      /* devfs node type */
+       struct mount    *mp;            /* mount point of this node */
+       struct devfs_dirent d_dir;      /* dirent data (name, inode, ...) */
+       struct vnode    *v_node;        /* assoicated vnode */
+       struct devfs_node *parent;      /* parent of this node */
+       devfs_nodetype  node_type;      /* devfs node type */
 
        u_int64_t       refs;           /* number of open references */
        size_t          nchildren;      /* number of children of a parent */
        u_int64_t       cookie_jar;     /* cookie pool for children */
        u_int64_t       cookie;         /* directory entry cookie for readdir */
 
-       struct devfs_node       *link_target;   /* target of this autolink-type node */
-       size_t          nlinks;                                 /* number of links that point to this node */
+       struct devfs_node *link_target; /* target of this autolink-type node */
+       size_t          nlinks;         /* hard links */
 
-       char            *symlink_name;          /* symlink name for readlink */
-       size_t          symlink_namelen;        /* symlink name length for readlink */
+       char            *symlink_name;  /* symlink name for readlink */
+       size_t          symlink_namelen; /* symlink name length for readlink */
 
        u_short         mode;           /* files access mode and type */
        uid_t           uid;            /* owner user id */
        gid_t           gid;            /* owner group id */
        u_long          flags;
 
-       struct timespec atime;  /* time of last access */
-       struct timespec mtime;  /* time of last modification */
-       struct timespec ctime;  /* time file changed */
+       struct timespec atime;          /* time of last access */
+       struct timespec mtime;          /* time of last modification */
+       struct timespec ctime;          /* time file changed */
 
-       /* Other members */
-       TAILQ_ENTRY(devfs_node)         link;
-       TAILQ_HEAD(, devfs_node)        list;   /* linked list of children */
+       TAILQ_ENTRY(devfs_node) link;
+       TAILQ_HEAD(, devfs_node) list;  /* linked list of children */
 };
 
 struct devfs_orphan {
-       struct devfs_node       *node;
-
-       TAILQ_ENTRY(devfs_orphan)       link;
+       struct devfs_node *node;
+       TAILQ_ENTRY(devfs_orphan) link;
 };
 
 struct devfs_mnt_data {
-       TAILQ_HEAD(, devfs_orphan)      orphan_list;
-
-       struct devfs_node       *root_node;
-       struct mount            *mp;
+       TAILQ_HEAD(, devfs_orphan) orphan_list;
+       TAILQ_ENTRY(devfs_mnt_data) link;
 
+       struct devfs_node *root_node;
+       struct mount    *mp;
        uint32_t        mnt_type;
        size_t          leak_count;
-
        int             jailed;
-       size_t  mntonnamelen;
-       TAILQ_ENTRY(devfs_mnt_data)     link;
+       size_t          mntonnamelen;
 };
 
 struct devfs_clone_handler {
        char            *name;
        u_char          namlen;
        d_clone_t       *nhandler;
-
-       TAILQ_ENTRY(devfs_clone_handler)        link;
+       TAILQ_ENTRY(devfs_clone_handler) link;
 };
 
 
 struct devfs_alias {
-       char    *name;
-       size_t  namlen;
-       cdev_t  dev_target;
-
-       TAILQ_ENTRY(devfs_alias)        link;
+       char            *name;
+       size_t          namlen;
+       cdev_t          dev_target;
+       TAILQ_ENTRY(devfs_alias) link;
 };
 
 
 typedef struct devfs_msg {
-       struct lwkt_msg hdr;
-       __uint32_t              id;
+       struct lwkt_msg hdr;
+       __uint32_t      id;
 
        union {
                struct {
@@ -215,6 +209,7 @@ typedef struct devfs_msg {
                        struct mount *mp;
                } __m_ino;
        } __m_u;
+} *devfs_msg_t;
 
 #define mdv_chandler   __m_u.__m_chandler
 #define mdv_mnt        __m_u.__m_mnt.mnt
@@ -231,13 +226,11 @@ typedef struct devfs_msg {
 #define mdv_flags      __m_u.__m_flags
 #define mdv_ino                __m_u.__m_ino
 
-} *devfs_msg_t;
 
 typedef struct devfs_core_args {
-    thread_t     td;
+       thread_t     td;
 } *devfs_core_args_t;
 
-
 TAILQ_HEAD(devfs_node_head, devfs_node);
 TAILQ_HEAD(devfs_dev_head, cdev);
 TAILQ_HEAD(devfs_mnt_head, devfs_mnt_data);
@@ -246,58 +239,65 @@ TAILQ_HEAD(devfs_alias_head, devfs_alias);
 
 typedef void (devfs_scan_t)(cdev_t);
 
-
-#define DEVFS_NODE(x)                  ((struct devfs_node *)((x)->v_data))
-#define DEVFS_MNTDATA(x)               ((struct devfs_mnt_data *)((x)->mnt_data))
-#define DEVFS_ORPHANLIST(x)            (&(DEVFS_MNTDATA(x)->orphan_list))
+#define DEVFS_NODE(x)          ((struct devfs_node *)((x)->v_data))
+#define DEVFS_MNTDATA(x)       ((struct devfs_mnt_data *)((x)->mnt_data))
+#define DEVFS_ORPHANLIST(x)    (&(DEVFS_MNTDATA(x)->orphan_list))
 #define DEVFS_DENODE_HEAD(x)   (&((x)->list))
-#define DEVFS_ISDIGIT(x)               ((x >= '0') && (x <= '9'))
+#define DEVFS_ISDIGIT(x)       ((x >= '0') && (x <= '9'))
+
+/*
+ * -rwxr-xr-x
+ */
+#define DEVFS_DEFAULT_MODE     ((VREAD|VWRITE|VEXEC) | ((VREAD|VEXEC)>>3) | \
+                                ((VREAD|VEXEC)>>6));
 
-#define DEVFS_DEFAULT_MODE     ((VREAD|VWRITE|VEXEC) | ((VREAD|VEXEC)>>3) | ((VREAD|VEXEC)>>6)); /* -rwxr-xr-x */
 #define DEVFS_DEFAULT_UID      0       /* root */
 #define DEVFS_DEFAULT_GID      5       /* operator */
 
 /*
  * debug levels
  */
-#define DEVFS_DEBUG_SHOW               0x00
-#define DEVFS_DEBUG_WARNING            0x01
-#define DEVFS_DEBUG_INFO               0x02
-#define DEVFS_DEBUG_DEBUG              0x03
+#define DEVFS_DEBUG_SHOW       0x00
+#define DEVFS_DEBUG_WARNING    0x01
+#define DEVFS_DEBUG_INFO       0x02
+#define DEVFS_DEBUG_DEBUG      0x03
 
 /*
  * Message ids
  */
-#define DEVFS_TERMINATE_CORE   0x01
+#define DEVFS_TERMINATE_CORE           0x01
 #define DEVFS_DEVICE_CREATE            0x02
-#define DEVFS_DEVICE_DESTROY   0x03
+#define DEVFS_DEVICE_DESTROY           0x03
 #define DEVFS_MOUNT_ADD                        0x04
 #define DEVFS_MOUNT_DEL                        0x05
-#define DEVFS_CREATE_ALL_DEV   0x06
-#define DEVFS_DESTROY_SUBNAMES 0x07
-#define DEVFS_DESTROY_DEV_BY_OPS 0x08
+#define DEVFS_CREATE_ALL_DEV           0x06
+#define DEVFS_DESTROY_SUBNAMES         0x07
+#define DEVFS_DESTROY_DEV_BY_OPS       0x08
 #define DEVFS_CHANDLER_ADD             0x09
 #define DEVFS_CHANDLER_DEL             0x0A
-#define DEVFS_FIND_DEVICE_BY_UDEV 0x0B
-#define DEVFS_FIND_DEVICE_BY_NAME 0x0C
+#define DEVFS_FIND_DEVICE_BY_UDEV      0x0B
+#define DEVFS_FIND_DEVICE_BY_NAME      0x0C
 #define DEVFS_MAKE_ALIAS               0x0D
 #define DEVFS_APPLY_RULES              0x0F
 #define        DEVFS_RESET_RULES               0x10
 #define DEVFS_SCAN_CALLBACK            0x11
-#define DEVFS_CLR_SUBNAMES_FLAG        0x12
+#define DEVFS_CLR_SUBNAMES_FLAG                0x12
 #define DEVFS_DESTROY_SUBNAMES_WO_FLAG 0x13
-#define DEVFS_INODE_TO_VNODE   0x14
-#define DEVFS_SYNC                             0x99
+#define DEVFS_INODE_TO_VNODE           0x14
+#define DEVFS_SYNC                     0x99
 
 /*
  * Node flags
+ *
+ * HIDDEN      Makes node inaccessible, apart from already allocated vnodes
+ * INVISIBLE   Makes node invisible in a readdir()
  */
 #define DEVFS_NODE_LINKED              0x01    /* Linked into topology */
 #define        DEVFS_USER_CREATED              0x02    /* Node was user-created */
 #define DEVFS_ORPHANED                 0x04    /* on orphan list */
 #define DEVFS_CLONED                   0x08    /* Created by cloning code */
-#define DEVFS_HIDDEN                   0x10    /* Makes node inaccessible, apart from already allocated vnodes*/
-#define DEVFS_INVISIBLE                        0x20    /* Makes node invisible in a readdir() */
+#define DEVFS_HIDDEN                   0x10    /* Makes node inaccessible */
+#define DEVFS_INVISIBLE                        0x20    /* Makes node invisible */
 #define        DEVFS_PTY                       0x40    /* PTY device */
 #define DEVFS_DESTROYED                        0x80    /* Sanity check */
 
@@ -305,24 +305,21 @@ typedef void (devfs_scan_t)(cdev_t);
 /*
  * Clone helper stuff
  */
-#define DEVFS_UNIT_HSIZE        64     /* power of 2 */
-#define DEVFS_UNIT_HMASK        (DEVFS_UNIT_HSIZE - 1)
-
-#define DEVFS_BITMAP_INITIAL_SIZE 1
+#define DEVFS_BITMAP_INITIAL_SIZE      1
 #define DEVFS_CLONE_BITMAP(name)       devfs_ ## name ## _clone_bitmap
-#define DEVFS_DECLARE_CLONE_BITMAP(name)       struct devfs_bitmap DEVFS_CLONE_BITMAP(name)
-#define devfs_clone_bitmap_put devfs_clone_bitmap_rst
+#define DEVFS_DECLARE_CLONE_BITMAP(name) \
+                               struct devfs_bitmap DEVFS_CLONE_BITMAP(name)
+#define devfs_clone_bitmap_put         devfs_clone_bitmap_rst
 
 struct devfs_bitmap {
-       int     chunks;
-       unsigned long *bitmap;
+       int             chunks;
+       unsigned long   *bitmap;
 };
 
 struct devfs_unit_hash {
-        struct devfs_unit_hash  *next;
-        int     unit_no;
-
-               cdev_t  dev;
+        struct devfs_unit_hash *next;
+        int            unit_no;
+       cdev_t          dev;
 };
 
 void devfs_clone_bitmap_init(struct devfs_bitmap *);
@@ -339,8 +336,10 @@ int devfs_clone_bitmap_chk(struct devfs_bitmap *, int);
  */
 int devfs_debug(int level, char *fmt, ...);
 int devfs_allocv(struct vnode **, struct devfs_node *);
-struct devfs_node *devfs_allocp(devfs_nodetype, char *, struct devfs_node *, struct mount *, cdev_t);
-int devfs_allocvp(struct mount *, struct vnode **, devfs_nodetype, char *, struct devfs_node *, cdev_t);
+struct devfs_node *devfs_allocp(devfs_nodetype, char *, struct devfs_node *,
+                               struct mount *, cdev_t);
+int devfs_allocvp(struct mount *, struct vnode **, devfs_nodetype, char *,
+                               struct devfs_node *, cdev_t);
 
 int devfs_freep(struct devfs_node *);
 int devfs_reaperp(struct devfs_node *);
@@ -375,9 +374,11 @@ int devfs_mount_del(struct devfs_mnt_data *);
 
 int devfs_create_all_dev(struct devfs_node *);
 
-struct devfs_node *devfs_resolve_or_create_path(struct devfs_node *, char *, int);
+struct devfs_node *devfs_resolve_or_create_path(
+                               struct devfs_node *, char *, int);
 int devfs_resolve_name_path(char *, char *, char **, char **);
-struct devfs_node *devfs_create_device_node(struct devfs_node *, cdev_t, char *, char *, ...);
+struct devfs_node *devfs_create_device_node(struct devfs_node *, cdev_t,
+                               char *, char *, ...);
 
 int devfs_destroy_device_node(struct devfs_node *, cdev_t);
 int devfs_destroy_subnames(char *);
@@ -416,4 +417,5 @@ int devfs_reference_ops(struct dev_ops *);
 void devfs_release_ops(struct dev_ops *);
 
 void devfs_config(void *);
+
 #endif /* _VFS_DEVFS_H_ */