X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fvfs%2Ffs%2Fdevfs.c;h=ec6c7e2fa29d55b41412c6b08ba99387dc6f0c4b;hb=015f48988e0ff398409d71dfc692005ab439490a;hp=13552260b41ef9e38923ab580beed9f1a91c2a87;hpb=7dcbae6762b50bdd450559ca455f2374a09f1df9;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/vfs/fs/devfs.c b/KernelLand/Kernel/vfs/fs/devfs.c index 13552260..ec6c7e2f 100644 --- a/KernelLand/Kernel/vfs/fs/devfs.c +++ b/KernelLand/Kernel/vfs/fs/devfs.c @@ -14,12 +14,15 @@ void DevFS_DelDevice(tDevFS_Driver *Device); #endif tVFS_Node *DevFS_InitDevice(const char *Device, const char **Options); -char *DevFS_ReadDir(tVFS_Node *Node, int Pos); -tVFS_Node *DevFS_FindDir(tVFS_Node *Node, const char *Name); +void DevFS_Unmount(tVFS_Node *RootNode); + int DevFS_ReadDir(tVFS_Node *Node, int Pos, char Dest[FILENAME_MAX]); +tVFS_Node *DevFS_FindDir(tVFS_Node *Node, const char *Name, Uint Flags); // === GLOBALS === tVFS_Driver gDevFS_Info = { - "devfs", 0, DevFS_InitDevice, NULL, NULL + .Name = "devfs", + .InitDevice = DevFS_InitDevice, + .Unmount = DevFS_Unmount }; tVFS_NodeType gDevFS_DirType = { .TypeName = "DevFS-Dir", @@ -117,31 +120,39 @@ tVFS_Node *DevFS_InitDevice(const char *Device, const char **Options) return &gDevFS_RootNode; } +void DevFS_Unmount(tVFS_Node *RootNode) +{ + +} + /** * \fn char *DevFS_ReadDir(tVFS_Node *Node, int Pos) */ -char *DevFS_ReadDir(tVFS_Node *Node, int Pos) +int DevFS_ReadDir(tVFS_Node *Node, int Pos, char Dest[FILENAME_MAX]) { tDevFS_Driver *dev; - if(Pos < 0) return NULL; + if(Pos < 0) return -EINVAL; for(dev = gDevFS_Drivers; dev && Pos--; dev = dev->Next ); - if(dev) - return strdup(dev->Name); - else - return NULL; + if(dev) { + strncpy(Dest, dev->Name, FILENAME_MAX); + return 0; + } + else { + return -ENOENT; + } } /** * \fn tVFS_Node *DevFS_FindDir(tVFS_Node *Node, const char *Name) * \brief Get an entry from the devices directory */ -tVFS_Node *DevFS_FindDir(tVFS_Node *Node, const char *Name) +tVFS_Node *DevFS_FindDir(tVFS_Node *Node, const char *Name, Uint Flags) { tDevFS_Driver *dev;