summaryrefslogtreecommitdiff
path: root/src/dev/arm/kmi.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/arm/kmi.hh')
-rw-r--r--src/dev/arm/kmi.hh23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/dev/arm/kmi.hh b/src/dev/arm/kmi.hh
index 16a61a181..8a94ff606 100644
--- a/src/dev/arm/kmi.hh
+++ b/src/dev/arm/kmi.hh
@@ -106,18 +106,23 @@ class Pl050 : public AmbaIntDevice
/** raw interrupt register (unmasked) */
InterruptReg rawInterrupts;
- /** Update the status of the interrupt registers and schedule an interrupt
- * if required */
- void updateIntStatus();
+ /** Set or clear the TX interrupt */
+ void setTxInt(bool value);
- /** Function to generate interrupt */
- void generateInterrupt();
+ /** Update the RX interrupt using PS/2 device state */
+ void updateRxInt();
- /** Get interrupt value */
- InterruptReg getInterrupt() const;
+ /**
+ * Update the status of the interrupt and control registers and
+ * deliver an interrupt if required.
+ */
+ void updateIntCtrl(InterruptReg ints, ControlReg ctrl);
- /** Wrapper to create an event out of the thing */
- EventFunctionWrapper intEvent;
+ void setInterrupts(InterruptReg ints) { updateIntCtrl(ints, control); }
+ void setControl(ControlReg ctrl) { updateIntCtrl(rawInterrupts, ctrl); }
+
+ /** Get current interrupt value */
+ InterruptReg getInterrupt() const;
/** PS2 device connected to this KMI interface */
PS2Device *ps2;