bitree的单元测试以及bug修复

This commit is contained in:
fslongjin
2022-07-26 15:44:01 +08:00
parent 992f292f89
commit 494bcc1811
7 changed files with 167 additions and 19 deletions

View File

@ -9,7 +9,7 @@
#include <exception/irq.h>
#include <driver/interrupt/apic/apic.h>
spinlock_t xhci_controller_init_lock; // xhci控制器初始化锁(在usb_init中被初始化)
spinlock_t xhci_controller_init_lock = {0}; // xhci控制器初始化锁(在usb_init中被初始化)
static int xhci_ctrl_count = 0; // xhci控制器计数
@ -123,7 +123,6 @@ hardware_intr_controller xhci_hc_intr_controller =
ptr->cycle = 1; \
} while (0)
// Common TRB types
enum
{
@ -381,7 +380,7 @@ static int xhci_hc_pair_ports(int id)
uint32_t next_off = xhci_hc[id].ext_caps_off;
uint32_t offset, cnt;
uint16_t protocol_flags;
uint16_t protocol_flags = 0;
// 寻找所有的usb2端口
while (next_off)
@ -554,12 +553,12 @@ uint64_t xhci_hc_irq_install(uint64_t irq_num, void *arg)
struct msi_desc_t msi_desc;
memset(&msi_desc, 0, sizeof(struct msi_desc_t));
msi_desc.pci_dev = (struct pci_device_structure_header_t*)xhci_hc[cid].pci_dev_hdr;
msi_desc.pci_dev = (struct pci_device_structure_header_t *)xhci_hc[cid].pci_dev_hdr;
msi_desc.assert = info->assert;
msi_desc.edge_trigger = info->edge_trigger;
msi_desc.processor = info->processor;
msi_desc.pci.msi_attribute.is_64 = 1;
// todo: QEMU是使用msix的因此要先在pci中实现msix
// todo: QEMU是使用msix的因此要先在pci中实现msix
int retval = pci_enable_msi(&msi_desc);
kdebug("pci retval = %d", retval);
kdebug("xhci irq %d installed.", irq_num);
@ -637,7 +636,7 @@ static int xhci_reset_port(const int id, const int port)
break;
else if (val & (1 << 21))
break;
--timeout;
usleep(500);
}