Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
ehci_pipe.hpp
Go to the documentation of this file.
1#ifndef __EHCI__EHCI_PIPE_HPP__
2#define __EHCI__EHCI_PIPE_HPP__
3
4#include "ehci/ehci.hpp"
6
8 public:
9 explicit EHCIPipe(EHCIModule* ehci) : ehci_(ehci) {
10 }
11
12 bool
13 open(const USBInterruptPipeDesc& desc, InterruptCallback cb) override;
14 void close() override;
15 void on_complete(uint8_t* buf, size_t len, bool error) override;
16
19
20 private:
24
30
31 void setup_qh();
32 void arm();
33};
34
35#endif // __EHCI__EHCI_PIPE_HPP__
InterruptCallback cb_
Definition ehci_pipe.hpp:23
uintptr_t buf_phys_
Definition ehci_pipe.hpp:29
void close() override
Definition pipe.cpp:59
uint32_t response_buf_
Definition ehci_pipe.hpp:26
uint8_t * buf_
Definition ehci_pipe.hpp:28
EHCIModule * ehci_
Definition ehci_pipe.hpp:21
void arm()
Definition pipe.cpp:40
bool open(const USBInterruptPipeDesc &desc, InterruptCallback cb) override
Definition pipe.cpp:5
uintptr_t response_
Definition ehci_pipe.hpp:25
USBInterruptPipeDesc desc_
Definition ehci_pipe.hpp:22
void setup_qh()
Definition pipe.cpp:28
uint32_t toggle_
Definition ehci_pipe.hpp:27
EHCIPipe(EHCIModule *ehci)
Definition ehci_pipe.hpp:9
ehci_queue_head_node_t * qh_node_
Definition ehci_pipe.hpp:17
ehci_queue_task_descriptor_node_t * data_node_
Definition ehci_pipe.hpp:18
void on_complete(uint8_t *buf, size_t len, bool error) override
Definition pipe.cpp:66
struct ehci_queue_head_node ehci_queue_head_node_t
Definition ehci.hpp:156
struct ehci_queue_task_descriptor_node ehci_queue_task_descriptor_node_t
Definition ehci.hpp:174
void(*)(const uint8_t *data, size_t len) InterruptCallback
size_t len
Definition oct2bin.h:7
unsigned int uint32_t
Definition type.h:19
unsigned long uintptr_t
Definition type.h:73
unsigned char uint8_t
Definition type.h:7