X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Fvfs_int.h;h=a8eadb6de40bc67b907f11929c94c982b546b907;hb=a2495c6ea4f4cab16b5d339ae511428e92e89e73;hp=f227b23d6cd42074ff5bbbb663178bd7504cf32d;hpb=8bc40333b1401d7616b225945fee53d972c2f418;p=tpg%2Facess2.git diff --git a/Kernel/include/vfs_int.h b/Kernel/include/vfs_int.h index f227b23d..a8eadb6d 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,33 @@ typedef struct sVFS_Proc { tVFS_Handle Handles[]; } tVFS_Proc; +typedef struct sVFS_MMapPage { + Uint64 FileOffset; + tPAddr PAddr; +} tVFS_MMapPage; + // === GLOBALS === -extern tVFS_Mount *gMounts; +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); +// --- dir.c --- +extern int VFS_MkNod(const char *Path, Uint Flags); + + +// --- VFS Helpers --- +static inline void _CloseNode(tVFS_Node *Node) +{ + if(Node && Node->Type && Node->Type->Close) + Node->Type->Close( Node ); +} + #endif