X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fvfs%2Ffs%2Fdevfs.c;h=93898226810b9277f0e2d5e4b2e168db9b087dae;hb=bf0187772ecfb475eedf5e0e9b8460b4f1a3f445;hp=9ab2b7b4fc3c33dce9adceaeaa5e4d5d25a477d9;hpb=891868f0b4d64eb274b5810ac0c4f0a53d104114;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/vfs/fs/devfs.c b/KernelLand/Kernel/vfs/fs/devfs.c index 9ab2b7b4..93898226 100644 --- a/KernelLand/Kernel/vfs/fs/devfs.c +++ b/KernelLand/Kernel/vfs/fs/devfs.c @@ -15,7 +15,7 @@ void DevFS_DelDevice(tDevFS_Driver *Device); #endif tVFS_Node *DevFS_InitDevice(const char *Device, const char **Options); void DevFS_Unmount(tVFS_Node *RootNode); -char *DevFS_ReadDir(tVFS_Node *Node, int Pos); + int DevFS_ReadDir(tVFS_Node *Node, int Pos, char Dest[FILENAME_MAX]); tVFS_Node *DevFS_FindDir(tVFS_Node *Node, const char *Name); // === GLOBALS === @@ -128,21 +128,24 @@ 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; + } } /**