1 #ifndef __LUNAIX_TWIFS_H
2 #define __LUNAIX_TWIFS_H
4 #include <lunaix/ds/ldga.h>
6 #include <lunaix/fs/twimap.h>
7 #include <lunaix/spike.h>
15 char name_val[VFS_NAME_MAXLEN];
16 struct llist_header children;
17 struct llist_header siblings;
20 int (*write)(struct v_inode* inode,
24 int (*read)(struct v_inode* inode,
31 #define twinode_getdata(inode, type) \
33 struct twifs_node* twinode = (struct twifs_node*)(inode)->data; \
35 (type) twinode->data; \
38 #define EXPORT_TWIFS_PLUGIN(label, plg_init) \
39 export_ldga_el(twiplugin_inits, label, ptr_t, plg_init)
42 twifs_register_plugins();
48 twifs_file_node_vargs(struct twifs_node* parent, const char* fmt, va_list args);
51 twifs_file_node(struct twifs_node* parent, const char* fmt, ...);
54 twifs_dir_node(struct twifs_node* parent, const char* fmt, ...);
57 twifs_rm_node(struct twifs_node* node);
60 twifs_mapping(struct twifs_node* parent, void* data, const char* fmt, ...);
62 #define twimap_entry_simple(parent, name, data, read_cb) \
64 struct twimap* map = twifs_mapping((parent), (data), (name)); \
65 map->read = (read_cb); \
69 #endif /* __LUNAIX_TWIFS_H */