diff options
Diffstat (limited to 'rmidevice/rmidevice.cpp')
-rw-r--r-- | rmidevice/rmidevice.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/rmidevice/rmidevice.cpp b/rmidevice/rmidevice.cpp index 6802d8e..454998c 100644 --- a/rmidevice/rmidevice.cpp +++ b/rmidevice/rmidevice.cpp @@ -262,6 +262,7 @@ int RMIDevice::ScanPDT(int endFunc, int endPage) unsigned int maxPage; unsigned int addr; unsigned char entry[RMI_DEVICE_PDT_ENTRY_SIZE]; + unsigned int interruptCount = 0; maxPage = (unsigned int)((endPage < 0) ? RMI_DEVICE_MAX_PAGE : endPage); @@ -282,11 +283,12 @@ int RMIDevice::ScanPDT(int endFunc, int endPage) return rc; } - RMIFunction func(entry, page_start); + RMIFunction func(entry, page_start, interruptCount); if (func.GetFunctionNumber() == 0) break; m_functionList.push_back(func); + interruptCount += func.GetInterruptSourceCount(); found = true; if (func.GetFunctionNumber() == endFunc) @@ -297,6 +299,8 @@ int RMIDevice::ScanPDT(int endFunc, int endPage) break; } + m_numInterruptRegs = (interruptCount + 7) / 8; + return 0; } |