summaryrefslogtreecommitdiff
path: root/lib9p/include
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2024-10-08 12:01:03 -0600
committerLuke T. Shumaker <lukeshu@lukeshu.com>2024-10-08 12:01:03 -0600
commita7a64e15987ddbb7feae6cf2ff1aaaeb71dbed82 (patch)
treecd96f2fe551984802824c75bacfe8ed1a8f58af1 /lib9p/include
parent9c7f19c46d8fb58b6bcfe0d1d026c05657ffba96 (diff)
wip
Diffstat (limited to 'lib9p/include')
-rw-r--r--lib9p/include/lib9p/srv.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib9p/include/lib9p/srv.h b/lib9p/include/lib9p/srv.h
index 11c1fac..d79e7db 100644
--- a/lib9p/include/lib9p/srv.h
+++ b/lib9p/include/lib9p/srv.h
@@ -38,16 +38,19 @@ struct lib9p_srv_file;
struct lib9p_srv_io;
struct lib9p_srv_file_vtable {
- /* all */
+ /* all - resource management */
+ struct lib9p_srv_file *(*clone )(struct lib9p_srv_ctx *, struct lib9p_srv_file *);
+ void (*free )(struct lib9p_srv_ctx *, struct lib9p_srv_file *);
+
+ /* all - syscalls */
struct lib9p_srv_io *(*io )(struct lib9p_srv_ctx *, struct lib9p_srv_file *,
lib9p_o_t flags);
struct lib9p_stat (*stat )(struct lib9p_srv_ctx *, struct lib9p_srv_file *);
void (*wstat )(struct lib9p_srv_ctx *, struct lib9p_srv_file *,
struct lib9p_stat new);
void (*remove )(struct lib9p_srv_ctx *, struct lib9p_srv_file *);
- void (*free )(struct lib9p_srv_ctx *, struct lib9p_srv_file *); /* optional */
- /* dir */
+ /* directories */
struct lib9p_srv_file *(*dopen )(struct lib9p_srv_ctx *, struct lib9p_srv_file *,
char *childname);
struct lib9p_srv_file *(*dcreate)(struct lib9p_srv_ctx *, struct lib9p_srv_file *,
@@ -77,7 +80,6 @@ struct lib9p_srv_file {
/* Managed by srv.c */
struct lib9p_srv_file *_parent_dir;
- struct lib9p_srv_file *_refcount;
/* This is where your implementation data goes. */
char data[0];