X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Fvfs_int.h;h=75de88bf6464d6d519ca46df4e9073f5f85f7ca1;hb=5f2024e5977e0cca0993a20dad5ab794c94d5711;hp=e54806235a72138fab158cf7fbc9a154e05c832f;hpb=243bdab4e7acc8516d9b1c138f45dc1195f97767;p=tpg%2Facess2.git diff --git a/Kernel/include/vfs_int.h b/Kernel/include/vfs_int.h index e5480623..75de88bf 100644 --- a/Kernel/include/vfs_int.h +++ b/Kernel/include/vfs_int.h @@ -10,7 +10,8 @@ typedef struct sVFS_Mount { struct sVFS_Mount *Next; char *MountPoint; - int MountPointLen; + size_t MountPointLen; + Uint32 Identifier; char *Device; char *Options; tVFS_Driver *Filesystem; @@ -35,15 +36,31 @@ typedef struct sVFS_Proc { tVFS_Handle Handles[]; } tVFS_Proc; +typedef struct sVFS_MMapPage { + Uint64 FileOffset; + tPAddr PAddr; +} tVFS_MMapPage; + // === GLOBALS === extern tVFS_Mount *gVFS_Mounts; // === PROTOTYPES === -// --- OPEN.C --- -extern char *VFS_GetAbsPath(char *Path); -extern tVFS_Node *VFS_ParsePath(char *Path, char **TruePath); +// --- open.c --- +extern char *VFS_GetAbsPath(const char *Path); +extern tVFS_Node *VFS_ParsePath(const char *Path, char **TruePath, tVFS_Mount **MountPoint); extern tVFS_Handle *VFS_GetHandle(int FD); -// --- ACLS.C --- +// --- acls.c --- extern int VFS_CheckACL(tVFS_Node *Node, Uint Permissions); +// --- mount.c --- +extern tVFS_Mount *VFS_GetMountByIdent(Uint32 MountID); + + +// --- VFS Helpers --- +static inline void _CloseNode(tVFS_Node *Node) +{ + if(Node && Node->Type && Node->Type->Close) + Node->Type->Close( Node ); +} + #endif