//! Find an directory entry by name
struct sVFS_Node *(*FindDir)(struct sVFS_Node *Node, char *Name);
- //! Read from a directory
+ //! Read from a directory - MUST return a heap address
char *(*ReadDir)(struct sVFS_Node *Node, int Pos);
//! Create a node in a directory
int (*MkNod)(struct sVFS_Node *Node, char *Name, Uint Flags);
typedef struct sVFS_Driver {
char *Name;
Uint Flags;
- tVFS_Node *(*InitDevice)(char *Device, char *Options);
+ tVFS_Node *(*InitDevice)(char *Device, char **Options);
void (*Unmount)(tVFS_Node *Node);
struct sVFS_Driver *Next;
} tVFS_Driver;
// === GLOBALS ===
+#define VFS_MAXSKIP ((void*)1024)
#define VFS_SKIP ((void*)1)
#define VFS_SKIPN(n) ((void*)(n))
extern tVFS_Node NULLNode;
// === FUNCTIONS ===
extern int VFS_AddDriver(tVFS_Driver *Info);
extern tVFS_Driver *VFS_GetFSByName(char *Name);
+extern tVFS_ACL *VFS_UnixToAcessACL(Uint Mode, Uint Owner, Uint Group);
// --- Node Cache --
extern int Inode_GetHandle();