Fixed bug where system would lock if a user task segfaulted (forgot to sti)
[tpg/acess2.git] / Kernel / drv / pci.c
index e0a25b5..43d6d54 100644 (file)
@@ -1,13 +1,13 @@
 /*\r
-AcessOS/AcessBasic v0.1\r
-PCI Bus Driver\r
-*/\r
+ * AcessOS/AcessBasic v0.1\r
+ * PCI Bus Driver\r
+ */\r
+#define DEBUG  0\r
 #include <common.h>\r
 #include <vfs.h>\r
 #include <fs_devfs.h>\r
 #include <drv_pci.h>\r
 \r
-#define DEBUG  0\r
 #define        LIST_DEVICES    1\r
 \r
 // === STRUCTURES ===\r
@@ -61,6 +61,7 @@ tDevFS_Driver gPCI_DriverStruct = {
        NULL, "pci",\r
        {\r
        .Flags = VFS_FFLAG_DIRECTORY,\r
+       .Size = -1,\r
        .NumACLs = 1,\r
        .ACLs = &gVFS_ACL_EveryoneRX,\r
        .ReadDir = PCI_ReadDirRoot,\r
@@ -155,15 +156,19 @@ int PCI_Install(char **Arguments)
 }\r
 \r
 /**\r
- * \fn char *PCI_ReadDirRoot(tVFS_Node *node, int pos)\r
+ * \fn char *PCI_ReadDirRoot(tVFS_Node *Node, int Pos)\r
  * \brief Read from Root of PCI Driver\r
 */\r
-char *PCI_ReadDirRoot(tVFS_Node *node, int pos)\r
-{      \r
-       if(pos < 0 || pos >= giPCI_DeviceCount)\r
+char *PCI_ReadDirRoot(tVFS_Node *Node, int Pos)\r
+{\r
+       ENTER("pNode iPos", Node, Pos);\r
+       if(Pos < 0 || Pos >= giPCI_DeviceCount) {\r
+               LEAVE('n');\r
                return NULL;\r
+       }\r
        \r
-       return gPCI_Devices[pos].Name;\r
+       LEAVE('s', gPCI_Devices[Pos].Name);\r
+       return strdup( gPCI_Devices[Pos].Name );\r
 }\r
 /**\r
  * \fn tVFS_Node *PCI_FindDirRoot(tVFS_Node *node, char *filename)\r
@@ -463,7 +468,7 @@ int PCI_EnumDevice(Uint16 bus, Uint16 slot, Uint16 fcn, t_pciDevice *info)
        info->Name[2] = '.';\r
        info->Name[3] = '0' + slot/10;\r
        info->Name[4] = '0' + slot%10;\r
-       info->Name[5] = '.';\r
+       info->Name[5] = ':';\r
        info->Name[6] = '0' + fcn;\r
        info->Name[7] = '\0';\r
        \r

UCC git Repository :: git.ucc.asn.au