X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Fvfs.h;h=025a52629b3ad276f6164cf50baa7ed4e4958b8c;hb=a8067bafb36f98612767060db856cd6bf36ef940;hp=12cc8a4105b1c00c3fb61dc10d23555860879eab;hpb=8bc40333b1401d7616b225945fee53d972c2f418;p=tpg%2Facess2.git diff --git a/Kernel/include/vfs.h b/Kernel/include/vfs.h index 12cc8a41..025a5262 100644 --- a/Kernel/include/vfs.h +++ b/Kernel/include/vfs.h @@ -63,7 +63,7 @@ typedef struct sVFS_Node { //! 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); @@ -79,11 +79,13 @@ typedef struct sVFS_Node { 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; @@ -95,6 +97,7 @@ extern tVFS_ACL gVFS_ACL_EveryoneRO; // === 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();