20#ifndef POSIX_INPUTFILE_H
21#define POSIX_INPUTFILE_H
23#include "pedigree/kernel/machine/InputManager.h"
24#include "pedigree/kernel/process/Mutex.h"
25#include "pedigree/kernel/utilities/Buffer.h"
27#include "linux-input-abi.h"
28#include "modules/system/vfs/File.h"
40 uint64_t
readBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
41 bool bCanBlock =
true)
override;
42 uint64_t
writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
43 bool bCanBlock =
true)
override;
44 int select(
bool bWriting =
false,
int timeout = 0)
override;
65 const bool m_Endpoint;
68 size_t m_LifetimePins = 0;
69 bool m_Registered =
false;
75 enum DeviceType {
Keyboard, Pointer, AbsolutePointer };
78 bool endpoint =
false);
84 uint64_t
readBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
85 bool bCanBlock =
true)
override;
86 uint64_t
writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
87 bool bCanBlock =
true)
override;
88 int select(
bool bWriting =
false,
int timeout = 0)
override;
93 bool supports(
size_t command)
const override;
94 int command(
size_t command,
void* buffer)
override;
112 const DeviceType m_Type;
113 const bool m_Endpoint;
116 uint8_t m_KeyState[96];
117 bool m_ButtonState[5];
118 uint32_t m_AbsoluteX = 0;
119 uint32_t m_AbsoluteY = 0;
120 bool m_HaveAbsolute =
false;
121 size_t m_LifetimePins = 0;
122 bool m_Registered =
false;
bool isSeekable() const override
uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true) override
bool supportsReadinessNotifications() const override
bool supports(size_t command) const override
uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true) override
ReadinessGenerations readinessGenerations() override
int select(bool bWriting=false, int timeout=0) override
bool isBytewise() const override
bool retainVfsReference() override
void releaseVfsReference() override