[Voyageurs] Receive keypress information from the usb keyboard.
This commit is contained in:
parent
2cc9c89051
commit
c5f8195255
6 changed files with 77 additions and 5 deletions
31
sys/voyageurs/xhci/endpoint.cpp
Normal file
31
sys/voyageurs/xhci/endpoint.cpp
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
#include "xhci/endpoint.h"
|
||||
|
||||
#include <mammoth/util/debug.h>
|
||||
|
||||
void Endpoint::Initialize(XhciEndpointContext* context) {
|
||||
enabled_ = true;
|
||||
context_ = context;
|
||||
|
||||
trb_ring_ = glcr::MakeUnique<TrbRingWriter>();
|
||||
recv_mem_ = mmth::OwnedMemoryRegion::ContiguousPhysical(0x1000, &recv_phys_);
|
||||
|
||||
context_->tr_dequeue_ptr = trb_ring_->PhysicalAddress() | 1;
|
||||
|
||||
context_->error_and_type = (0x3 << 1) | (0x7 << 3) | (0x8 << 16);
|
||||
trb_ring_->EnqueueTrb({
|
||||
.parameter = recv_phys_,
|
||||
.status = 8,
|
||||
.type_and_cycle = 1 | (1 << 2) | (1 << 5) | (1 << 10),
|
||||
.control = 0,
|
||||
});
|
||||
}
|
||||
|
||||
void Endpoint::TransferComplete(uint64_t trb_phys) {
|
||||
dbgln("Data: {x}", *(uint64_t*)recv_mem_.vaddr());
|
||||
trb_ring_->EnqueueTrb({
|
||||
.parameter = recv_phys_,
|
||||
.status = 8,
|
||||
.type_and_cycle = 1 | (1 << 2) | (1 << 5) | (1 << 10),
|
||||
.control = 0,
|
||||
});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue