X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Fvfs_ext.h;h=720bcbe0447582453a7707fd75cf7c8645ee70db;hb=4e949acb1c98bc071af2d5d9038b4a3e703bf33d;hp=e2f03447e58ce9d8f26351e9f311e18d286b503a;hpb=775bf8013abe9fe4ef3d4883ea2e43bba2a84da1;p=tpg%2Facess2.git diff --git a/Kernel/include/vfs_ext.h b/Kernel/include/vfs_ext.h index e2f03447..720bcbe0 100644 --- a/Kernel/include/vfs_ext.h +++ b/Kernel/include/vfs_ext.h @@ -109,7 +109,7 @@ typedef struct sFInfo * \brief Initialise the VFS (called by system.c) * \return Boolean Success */ -extern int VFS_Init(); +extern int VFS_Init(void); /** * \brief Open a file @@ -117,7 +117,7 @@ extern int VFS_Init(); * \param Mode Flags defining how to open the file * \return VFS Handle (an integer) or -1 if an error occured */ -extern int VFS_Open(char *Path, Uint Mode); +extern int VFS_Open(const char *Path, Uint Mode); /** * \brief Close a currently open file * \param FD Handle returned by ::VFS_Open @@ -165,10 +165,10 @@ extern int VFS_ChRoot(char *New); * \brief Change the location of the current file pointer * \param FD File handle returned by ::VFS_Open * \param Offset Offset within the file to go to - * \param Direction A direction from ::eVFS_SeekDirs + * \param Whence A direction from ::eVFS_SeekDirs * \return Boolean success */ -extern int VFS_Seek(int FD, Sint64 Offset, int Direction); +extern int VFS_Seek(int FD, Sint64 Offset, int Whence); /** * \brief Returns the current file pointer * \param FD File handle returned by ::VFS_Open @@ -191,7 +191,7 @@ extern Uint64 VFS_Read(int FD, Uint64 Length, void *Buffer); * \param Buffer Source of written data * \return Number of bytes written */ -extern Uint64 VFS_Write(int FD, Uint64 Length, void *Buffer); +extern Uint64 VFS_Write(int FD, Uint64 Length, const void *Buffer); /** * \brief Reads from a specific offset in the file @@ -210,7 +210,7 @@ extern Uint64 VFS_ReadAt(int FD, Uint64 Offset, Uint64 Length, void *Buffer); * \param Buffer Source of written data * \return Number of bytes written */ -extern Uint64 VFS_WriteAt(int FD, Uint64 Offset, Uint64 Length, void *Buffer); +extern Uint64 VFS_WriteAt(int FD, Uint64 Offset, Uint64 Length, const void *Buffer); /** * \brief Sends an IOCtl request to the driver @@ -234,7 +234,7 @@ extern void VFS_GetMemPath(char *Dest, void *Base, Uint Length); * \param Path File path (may contain symlinks, relative elements etc.) * \return Absolute path with no symlinks */ -extern char *VFS_GetTruePath(char *Path); +extern char *VFS_GetTruePath(const char *Path); /** * \brief Mounts a filesystem @@ -244,21 +244,21 @@ extern char *VFS_GetTruePath(char *Path); * \param Options Options string to pass the driver * \return 1 on succes, -1 on error */ -extern int VFS_Mount(char *Device, char *MountPoint, char *Filesystem, char *Options); +extern int VFS_Mount(const char *Device, const char *MountPoint, const char *Filesystem, const char *Options); /** * \brief Create a new directory * \param Path Path to new directory (absolute or relative) * \return Boolean success * \note The parent of the directory must exist */ -extern int VFS_MkDir(char *Path); +extern int VFS_MkDir(const char *Path); /** * \brief Create a symbolic link * \param Name Name of the symbolic link * \param Link File the symlink points to * \return Boolean success (\a Link is not tested for existence) */ -extern int VFS_Symlink(char *Name, char *Link); +extern int VFS_Symlink(const char *Name, const char *Link); /** * \brief Read from a directory * \param FD File handle returned by ::VFS_Open @@ -266,5 +266,15 @@ extern int VFS_Symlink(char *Name, char *Link); * \return Boolean Success */ extern int VFS_ReadDir(int FD, char *Dest); +/** + * \brief Opens a file via an open directory + * \note The file to open must be a direct child of the parent + * \param Errno Error number + * \param FD Parent Directory + * \param Name Child name + * \param Mode Open mode + * \return File handle (same as returned from VFS_Open) + */ +extern int VFS_OpenChild(Uint *Errno, int FD, const char *Name, Uint Mode); #endif