1 #ifndef __LUNAIX_TWIFS_H
2 #define __LUNAIX_TWIFS_H
5 #include <lunaix/spike.h>
13 char name_val[VFS_NAME_MAXLEN];
14 struct llist_header children;
15 struct llist_header siblings;
18 int (*write)(struct v_inode* inode,
22 int (*read)(struct v_inode* inode,
35 void (*read)(struct twimap* mapping);
36 int (*go_next)(struct twimap* mapping);
37 void (*reset)(struct twimap* mapping);
40 #define twinode_getdata(inode, type) \
42 struct twifs_node* twinode = (struct twifs_node*)(inode)->data; \
44 (type) twinode->data; \
51 twifs_file_node_vargs(struct twifs_node* parent, const char* fmt, va_list args);
54 twifs_file_node(struct twifs_node* parent, const char* fmt, ...);
57 twifs_dir_node(struct twifs_node* parent, const char* fmt, ...);
60 twifs_rm_node(struct twifs_node* node);
62 #define twimap_index(twimap, type) ((type)((twimap)->index))
63 #define twimap_data(twimap, type) ((type)((twimap)->data))
66 twifs_mapping(struct twifs_node* parent, void* data, const char* fmt, ...);
69 twimap_printf(struct twimap* mapping, const char* fmt, ...);
72 twimap_memcpy(struct twimap* mapping, const void* src, const size_t len);
75 twimap_memappend(struct twimap* mapping, const void* src, const size_t len);
77 #endif /* __LUNAIX_TWIFS_H */