summaryrefslogtreecommitdiffstats
path: root/sys/fs/pseudofs/pseudofs.h
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2001-06-10 18:39:21 +0000
committerdes <des@FreeBSD.org>2001-06-10 18:39:21 +0000
commitda96d2410a9b9a69efa0c6f3ed1087c224061089 (patch)
tree3a102271c7e1fe1e96777fe125c2dcfb57246657 /sys/fs/pseudofs/pseudofs.h
parent081b21dba9aa5d3c70bc54fcf7ae5a1a982d0355 (diff)
downloadFreeBSD-src-da96d2410a9b9a69efa0c6f3ed1087c224061089.zip
FreeBSD-src-da96d2410a9b9a69efa0c6f3ed1087c224061089.tar.gz
Add support for process-dependent directories. This means that save for
the lack of a man page, pseudofs is mostly complete now.
Diffstat (limited to 'sys/fs/pseudofs/pseudofs.h')
-rw-r--r--sys/fs/pseudofs/pseudofs.h22
1 files changed, 10 insertions, 12 deletions
diff --git a/sys/fs/pseudofs/pseudofs.h b/sys/fs/pseudofs/pseudofs.h
index 928d2db..539a04d 100644
--- a/sys/fs/pseudofs/pseudofs.h
+++ b/sys/fs/pseudofs/pseudofs.h
@@ -45,12 +45,9 @@ typedef enum {
pfstype_parent,
pfstype_file,
pfstype_symlink,
- pfstype_procdep
+ pfstype_procdir
} pfs_type_t;
-/* Flags */
-#define PFS_DYNAMIC 1
-
/*
* Data structures
*/
@@ -58,7 +55,11 @@ struct pfs_info;
struct pfs_node;
struct pfs_bitmap;
-typedef int (*pfs_fill_t)(struct pfs_node *, struct proc *, struct sbuf *);
+#define PFS_FILL_ARGS \
+ struct proc *curp, struct proc *p, struct pfs_node *pn, struct sbuf *sb
+#define PFS_FILL_PROTO(name) \
+ int name(PFS_FILL_ARGS);
+typedef int (*pfs_fill_t)(PFS_FILL_ARGS);
struct pfs_bitmap; /* opaque */
@@ -75,7 +76,7 @@ struct pfs_info {
};
/*
- * pfs_node: describes a node (file or directory) within a pseudofs
+ * pfs_node: describes a node (file or directory) within a pseudofs
*/
struct pfs_node {
char pn_name[PFS_NAMELEN];
@@ -94,12 +95,7 @@ struct pfs_node {
#define pn_nodes u1._pn_nodes
/* members below this line aren't initialized */
struct pfs_node *pn_parent;
- union {
- u_int32_t _pn_fileno;
- struct pfs_node *_pn_shadow;
- } u2;
-#define pn_fileno u2._pn_fileno
-#define pn_shadow u2._pn_shadow
+ u_int32_t pn_fileno;
};
#define PFS_NODE(name, type, flags, uid, gid, mode, data) \
@@ -116,6 +112,8 @@ struct pfs_node {
PFS_NODE(name, pfstype_file, flags, uid, gid, mode, func)
#define PFS_SYMLINK(name, flags, uid, gid, mode, func) \
PFS_NODE(name, pfstype_symlink, flags, uid, gid, mode, func)
+#define PFS_PROCDIR(uid, gid, mode, nodes) \
+ PFS_NODE("", pfstype_procdir, 0, uid, gid, mode, nodes)
#define PFS_LASTNODE \
PFS_NODE("", pfstype_none, 0, 0, 0, 0, NULL)
OpenPOWER on IntegriCloud