aboutsummaryrefslogtreecommitdiff
path: root/rmidevice/rmidevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rmidevice/rmidevice.cpp')
-rw-r--r--rmidevice/rmidevice.cpp6
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;
}