summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c29
1 files changed, 8 insertions, 21 deletions
diff --git a/main.c b/main.c
index 457cf6a7..62e440d4 100644
--- a/main.c
+++ b/main.c
@@ -4,32 +4,19 @@
#include <hurd/netfs.h>
#include "procfs.h"
#include "procfs_file.h"
+#include "procfs_dir.h"
-static error_t get_entries (void *hook, void **contents, size_t *contents_len)
+static struct node *make_file (void *dir_hook, void *ent_hook)
{
- static const char entries[] = "hello";
- *contents = (void *) entries;
- *contents_len = sizeof entries;
- return 0;
-}
-
-static error_t lookup (void *hook, const char *name, struct node **np)
-{
- if (strcmp (name, "hello"))
- return ENOENT;
-
- *np = procfs_file_make_node ("Hello, World!\n", -1, NULL);
- if (! *np)
- return ENOMEM;
-
- return 0;
+ return procfs_file_make_node (ent_hook, -1, NULL);
}
int main (int argc, char **argv)
{
- static const struct procfs_node_ops ops = {
- .get_contents = get_entries,
- .lookup = lookup,
+ static const struct procfs_dir_entry entries[] = {
+ { "hello", make_file, "Hello, World!\n" },
+ { "goodbye", make_file, "Goodbye, cruel World!\n" },
+ { }
};
mach_port_t bootstrap;
@@ -40,7 +27,7 @@ int main (int argc, char **argv)
error (1, 0, "Must be started as a translator");
netfs_init ();
- netfs_root_node = procfs_make_node (&ops, NULL);
+ netfs_root_node = procfs_dir_make_node (entries, NULL);
netfs_startup (bootstrap, 0);
for (;;)