htc: implement htclow listener thread

This commit is contained in:
Michael Scire
2021-02-08 05:45:23 -08:00
committed by SciresM
parent c9c41e0e8d
commit 2341f18edd
21 changed files with 669 additions and 11 deletions

View File

@@ -20,14 +20,26 @@ namespace ams::htclow::mux {
constexpr inline int MaxTaskCount = 0x80;
enum EventTrigger : u8 {
EventTrigger_Disconnect = 1,
EventTrigger_ConnectReady = 11,
};
class TaskManager {
private:
enum TaskType : u8 {
TaskType_Receive = 0,
TaskType_Send = 1,
TaskType_Flush = 6,
TaskType_Connect = 7,
};
struct Task {
impl::ChannelInternalType channel;
os::EventType event;
u8 _30;
u8 _31;
u8 _32;
bool has_event_trigger;
EventTrigger event_trigger;
TaskType type;
u64 _38;
};
private:
@@ -35,6 +47,11 @@ namespace ams::htclow::mux {
Task m_tasks[MaxTaskCount];
public:
TaskManager() : m_valid() { /* ... */ }
void NotifyDisconnect(impl::ChannelInternalType channel);
void NotifyConnectReady();
private:
void CompleteTask(int index, EventTrigger trigger);
};
}