X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fproc.c;h=60bf4dd8f11ec7127888f8f3636de96e05b8d2fd;hb=2a17e7ae7dab0ac8ba8c434bc3b409f20d378e46;hp=930616aecbf5112a903215d8469c66390cf4de4f;hpb=c18c6fea968e72403f9a7b75d6f7f8e3f9e8757f;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/proc.c b/KernelLand/Kernel/drv/proc.c index 930616ae..60bf4dd8 100644 --- a/KernelLand/Kernel/drv/proc.c +++ b/KernelLand/Kernel/drv/proc.c @@ -32,8 +32,8 @@ typedef struct sSysFS_Ent #endif int SysFS_Comm_ReadDir(tVFS_Node *Node, int Id, char Dest[FILENAME_MAX]); -tVFS_Node *SysFS_Comm_FindDir(tVFS_Node *Node, const char *Filename); -size_t SysFS_Comm_ReadFile(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer); +tVFS_Node *SysFS_Comm_FindDir(tVFS_Node *Node, const char *Filename, Uint Flags); +size_t SysFS_Comm_ReadFile(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags); void SysFS_Comm_CloseFile(tVFS_Node *Node); // === GLOBALS === @@ -50,9 +50,8 @@ tVFS_NodeType gSysFS_DirNodeType = { .FindDir = SysFS_Comm_FindDir }; tSysFS_Ent gSysFS_Version_Kernel = { - NULL, NULL, // Nexts - &gSysFS_Version, // Parent - { + .Parent = &gSysFS_Version, // Parent + .Node = { .Inode = 1, // File #1 .ImplPtr = NULL, .ImplInt = (Uint)&gSysFS_Version_Kernel, // Self-Link @@ -61,12 +60,11 @@ tSysFS_Ent gSysFS_Version_Kernel = { .ACLs = &gVFS_ACL_EveryoneRO, .Type = &gSysFS_FileNodeType }, - "Kernel" + .Name = {"Kernel"} }; tSysFS_Ent gSysFS_Version = { - NULL, NULL, - &gSysFS_Root, - { + .Parent = &gSysFS_Root, + .Node = { .Size = 1, .ImplPtr = &gSysFS_Version_Kernel, .ImplInt = (Uint)&gSysFS_Version, // Self-Link @@ -75,7 +73,7 @@ tSysFS_Ent gSysFS_Version = { .Flags = VFS_FFLAG_DIRECTORY, .Type = &gSysFS_DirNodeType }, - "Version" + .Name = {"Version"} }; // Root of the SysFS tree (just used to keep the code clean) tSysFS_Ent gSysFS_Root = { @@ -86,7 +84,7 @@ tSysFS_Ent gSysFS_Root = { .ImplPtr = &gSysFS_Version, .ImplInt = (Uint)&gSysFS_Root // Self-Link }, - "/" + {"/"} }; tDevFS_Driver gSysFS_DriverInfo = { NULL, "system", @@ -202,7 +200,7 @@ int SysFS_RegisterFile(const char *Path, const char *Data, int Length) break; } if( child ) { - Log_Warning("SysFS", "'%s' is taken (in '%s')\n", &Path[start], Path); + Log_Warning("SysFS", "'%s' is taken (in '%s')", &Path[start], Path); return 0; } @@ -361,7 +359,7 @@ int SysFS_Comm_ReadDir(tVFS_Node *Node, int Pos, char Dest[FILENAME_MAX]) * \fn tVFS_Node *SysFS_Comm_FindDir(tVFS_Node *Node, const char *Filename) * \brief Find a file in a SysFS directory */ -tVFS_Node *SysFS_Comm_FindDir(tVFS_Node *Node, const char *Filename) +tVFS_Node *SysFS_Comm_FindDir(tVFS_Node *Node, const char *Filename, Uint Flags) { tSysFS_Ent *child = (tSysFS_Ent*)Node->ImplPtr; @@ -377,7 +375,7 @@ tVFS_Node *SysFS_Comm_FindDir(tVFS_Node *Node, const char *Filename) /** * \brief Read from an exposed buffer */ -size_t SysFS_Comm_ReadFile(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer) +size_t SysFS_Comm_ReadFile(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags) { if( Offset > Node->Size ) return -1; if( Length > Node->Size ) Length = Node->Size;