48 #ifndef __DEV_ARM_PL050_HH__
49 #define __DEV_ARM_PL050_HH__
55 #include "params/Pl050.hh"
67 Bitfield<0> force_clock_low;
105 InterruptReg rawInterrupts;
131 InterruptReg tmp_interrupt(0);
132 tmp_interrupt.tx = rawInterrupts.tx & control.txint_enable;
133 tmp_interrupt.rx = rawInterrupts.rx & control.rxint_enable;
134 return tmp_interrupt;
161 void mouseAt(uint16_t
x, uint16_t y, uint8_t buttons)
override;
168 #endif // __DEV_ARM_PL050_HH__
Bitfield< 3 > txint_enable
void serialize(CheckpointOut &cp) const override
Serialize an object.
bool shiftDown
is the shift key currently down
AmbaPioDeviceParams Params
const Params * params() const
static const int kmiClkDiv
int ackNext
If the controller should ignore the next data byte and acknowledge it.
std::list< uint8_t > rxQueue
Receive queue.
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
VncInput * vnc
The vnc server we're connected to (if any)
void updateIntStatus()
Update the status of the interrupt registers and schedule an interrupt if required.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
This is a base class for AMBA devices that have to respond to Device and Implementer ID calls...
uint64_t Tick
Tick count type.
EndBitUnion(ControlReg) ControlReg control
control register
Bitfield< 4 > rxint_enable
void generateInterrupt()
Function to generate interrupt.
Bitfield< 1 > force_data_low
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
void keyPress(uint32_t key, bool down) override
Called when the vnc server receives a key press event from the client.
InterruptReg getInterrupt() const
Get interrupt value.
EventWrapper< Pl050,&Pl050::generateInterrupt > intEvent
Wrapper to create an event out of the thing.
std::ostream CheckpointOut
A device that expects to receive input from the vnc server should derrive (through mulitple inheriten...
void processCommand(uint8_t byte)
Handle a command sent to the kmi and respond appropriately.
const SimObjectParams * _params
Cached copy of the object parameters.
uint8_t clkdiv
clock divisor register This register is just kept around to satisfy reads after driver does writes...
bool driverInitialized
If the linux driver has initialized the device yet and thus can we send mouse data.
BitUnion8(ControlReg) Bitfield< 0 > force_clock_low
void mouseAt(uint16_t x, uint16_t y, uint8_t buttons) override
called whenever the mouse moves or it's button state changes buttons is a simple mask with each butto...