XHCI get device config
All checks were successful
Build ISO image / build-and-deploy (push) Successful in 3m29s
Build documentation / build-and-deploy (push) Successful in 3m53s

This commit is contained in:
2026-04-01 22:10:14 +02:00
parent d8f2f033d2
commit cd7d2d5d7d
6 changed files with 182 additions and 145 deletions

View File

@@ -3,6 +3,7 @@
#include <aux/compiler.h>
#include <device/def_device_op.h>
#include <device/usb/usb.h>
#include <libk/list.h>
#include <libk/std.h>
#include <proc/proc.h>
@@ -58,16 +59,21 @@ struct xhci_port {
int type;
};
struct xhci_ring {
struct xhci_trb* trbs;
uintptr_t phys;
uint32_t idx;
uint32_t size;
uint8_t cycle_bit;
};
struct xhci_pdevice {
struct list_node_link pdevices_link;
uint8_t port_value;
struct xhci_port* xhci_port;
int slot_id;
struct xhci_trb* endpoint0_ring;
uintptr_t endpoint0_ring_phys;
uint32_t endpoint0_ring_idx;
uint32_t endpoint0_ring_size;
uint8_t endpoint0_cycle_bit;
struct xhci_ring endpoint0_ring;
struct usb_device_desc device_desc;
};
struct xhci_port_status_change {
@@ -96,17 +102,8 @@ struct xhci {
uint32_t max_slots;
struct xhci_trb* cmd_ring;
uintptr_t cmd_ring_phys;
uint32_t cmd_ring_idx;
uint32_t cmd_ring_size;
uint8_t cmd_cycle_bit;
struct xhci_trb* event_ring;
uintptr_t event_ring_phys;
uint32_t event_ring_idx;
uint32_t event_ring_size;
uint8_t event_cycle_bit;
struct xhci_ring cmd_ring;
struct xhci_ring event_ring;
struct xhci_erst_entry* erst;
uintptr_t erst_phys;