From b331ec01c48f4ad8f999782d1b1766516add6118 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Sun, 7 Dec 2003 17:41:19 +0000 Subject: [PATCH] Constify, and add an API function to find a named node in a directory. --- sys/fs/pseudofs/pseudofs.c | 20 +++++++++++++++++--- sys/fs/pseudofs/pseudofs.h | 7 ++++--- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/sys/fs/pseudofs/pseudofs.c b/sys/fs/pseudofs/pseudofs.c index 8297ef6af3f..4db02b46a5f 100644 --- a/sys/fs/pseudofs/pseudofs.c +++ b/sys/fs/pseudofs/pseudofs.c @@ -118,7 +118,7 @@ _pfs_fixup_dir(struct pfs_node *parent) * Create a directory */ struct pfs_node * -pfs_create_dir(struct pfs_node *parent, char *name, +pfs_create_dir(struct pfs_node *parent, const char *name, pfs_attr_t attr, pfs_vis_t vis, int flags) { struct pfs_node *dir; @@ -151,7 +151,7 @@ pfs_create_dir(struct pfs_node *parent, char *name, * Create a file */ struct pfs_node * -pfs_create_file(struct pfs_node *parent, char *name, pfs_fill_t fill, +pfs_create_file(struct pfs_node *parent, const char *name, pfs_fill_t fill, pfs_attr_t attr, pfs_vis_t vis, int flags) { struct pfs_node *node; @@ -180,7 +180,7 @@ pfs_create_file(struct pfs_node *parent, char *name, pfs_fill_t fill, * Create a symlink */ struct pfs_node * -pfs_create_link(struct pfs_node *parent, char *name, pfs_fill_t fill, +pfs_create_link(struct pfs_node *parent, const char *name, pfs_fill_t fill, pfs_attr_t attr, pfs_vis_t vis, int flags) { struct pfs_node *node; @@ -192,6 +192,20 @@ pfs_create_link(struct pfs_node *parent, char *name, pfs_fill_t fill, return (node); } +/* + * Locate a node by name + */ +struct pfs_node * +pfs_find_node(struct pfs_node *parent, const char *name) +{ + struct pfs_node *node; + + for (node = parent->pn_nodes; node != NULL; node = node->pn_next) + if (strcmp(node->pn_name, name) == 0) + return (node); + return (NULL); +} + /* * Destroy a node or a tree of nodes */ diff --git a/sys/fs/pseudofs/pseudofs.h b/sys/fs/pseudofs/pseudofs.h index 021ea3f9313..2d448111f55 100644 --- a/sys/fs/pseudofs/pseudofs.h +++ b/sys/fs/pseudofs/pseudofs.h @@ -210,14 +210,15 @@ int pfs_uninit (struct pfs_info *pi, struct vfsconf *vfc); /* * Directory structure construction and manipulation */ -struct pfs_node *pfs_create_dir (struct pfs_node *parent, char *name, +struct pfs_node *pfs_create_dir (struct pfs_node *parent, const char *name, pfs_attr_t attr, pfs_vis_t vis, int flags); -struct pfs_node *pfs_create_file(struct pfs_node *parent, char *name, +struct pfs_node *pfs_create_file(struct pfs_node *parent, const char *name, pfs_fill_t fill, pfs_attr_t attr, pfs_vis_t vis, int flags); -struct pfs_node *pfs_create_link(struct pfs_node *parent, char *name, +struct pfs_node *pfs_create_link(struct pfs_node *parent, const char *name, pfs_fill_t fill, pfs_attr_t attr, pfs_vis_t vis, int flags); +struct pfs_node *pfs_find_node (struct pfs_node *parent, const char *name); int pfs_disable (struct pfs_node *pn); int pfs_enable (struct pfs_node *pn); int pfs_destroy (struct pfs_node *pn); -- 2.45.2