23 #include "pedigree/kernel/Spinlock.h" 24 #include "pedigree/kernel/compiler.h" 25 #include "pedigree/kernel/machine/Device.h" 26 #include "pedigree/kernel/process/Semaphore.h" 27 #include "pedigree/kernel/processor/types.h" 28 #include "pedigree/kernel/utilities/String.h" 37 typedef void (*MouseHandlerFunction)(
void *,
const void *, size_t);
52 EXPORTED_PUBLIC void subscribe(MouseHandlerFunction handler,
void *param);
81 static int readerThreadTrampoline(
void *)
NORETURN;
84 void updateSubscribers(
const void *buffer,
size_t len);
98 Ps2Mouse(
const Ps2Mouse &);
99 void operator=(
const Ps2Mouse &);
101 static const size_t m_nHandlers = 32;
102 MouseHandlerFunction m_Handlers[m_nHandlers];
103 void *m_HandlerParams[m_nHandlers];
size_t m_BufferIndex
Index into the data buffer.
virtual bool initialise(Ps2Controller *pController)
Semaphore m_IrqWait
IRQ wait semaphore.
virtual void getName(String &str)
Spinlock m_BufferLock
Lock for the mouse data buffer.
uint8_t m_Buffer[3]
Mouse data buffer.