20#include "modules/subsys/posix/PsAuxFile.h"
22#include "modules/drivers/x86/ps2mouse/Ps2Mouse.h"
24PsAuxFile::~PsAuxFile() {
25 m_MouseRegistration.
reset();
28bool PsAuxFile::initialise() {
35 return g_Ps2Mouse->subscribe(subscriber,
this, m_MouseRegistration);
40 return m_Buffer.
read(
reinterpret_cast<uint8_t*
>(buffer), size, bCanBlock);
45 g_Ps2Mouse->write(
reinterpret_cast<const char*
>(buffer), size);
51 return m_Buffer.
canWrite(timeout == 1) ? 1 : 0;
53 return m_Buffer.
canRead(timeout == 1) ? 1 : 0;
57void PsAuxFile::subscriber(
void* param,
const void* buffer,
size_t len) {
58 reinterpret_cast<PsAuxFile*
>(param)->handleIncoming(buffer, len);
61void PsAuxFile::handleIncoming(
const void* buffer,
size_t len) {
62 if (m_Buffer.
write(
reinterpret_cast<const uint8_t*
>(buffer), len,
false)) {
size_t write(const T *buffer, size_t count, bool block=true)
bool canWrite(bool block)
size_t read(T *buffer, size_t count, bool block=true)
uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual int select(bool bWriting=false, int timeout=0)
uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)