Add a debugger command to refresh the cached pci_infos from PCI config space.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41363 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz 2011-05-07 15:49:13 +00:00
parent 3d2b623f71
commit f8dac47aab
2 changed files with 23 additions and 0 deletions

View File

@ -13,6 +13,7 @@
#include "util/kernel_cpp.h"
#include "pci_fixup.h"
#include "pci_info.h"
#include "pci_private.h"
#include "pci.h"
@ -414,6 +415,15 @@ pcistatus(int argc, char **argv)
}
static int
pcirefresh(int argc, char **argv)
{
gPCI->RefreshDeviceInfo();
pci_print_info();
return 0;
}
// #pragma mark bus manager init/uninit
@ -450,6 +460,7 @@ pci_init(void)
gPCI->InitBus();
add_debugger_command("pcistatus", &pcistatus, "dump and clear pci device status registers");
add_debugger_command("pcirefresh", &pcirefresh, "refresh and print all pci_info");
return B_OK;
}
@ -1319,6 +1330,16 @@ PCI::_ReadHeaderInfo(PCIDev *dev)
}
void
PCI::RefreshDeviceInfo()
{
if (fRootBus == NULL)
return;
_RefreshDeviceInfo(fRootBus);
}
void
PCI::_RefreshDeviceInfo(PCIBus *bus)
{

View File

@ -103,6 +103,8 @@ public:
void ClearDeviceStatus(PCIBus *bus, bool dumpStatus);
void RefreshDeviceInfo();
private:
void _EnumerateBus(int domain, uint8 bus,
uint8 *subordinateBus = NULL);