Files
banan-os/kernel/include/kernel/USB/USBManager.h
Bananymous 14dce1abac Kernel: Start work on USB stack
Current code can enumerate all xHCI devices and detect their type based
on the class code on device or interface descriptors.
2024-07-10 12:06:00 +03:00

31 lines
512 B
C++

#pragma once
#include <kernel/PCI.h>
#include <kernel/USB/Controller.h>
#include <kernel/USB/Definitions.h>
namespace Kernel
{
class USBManager
{
BAN_NON_COPYABLE(USBManager);
BAN_NON_MOVABLE(USBManager);
public:
static BAN::ErrorOr<void> initialize();
static USBManager& get();
BAN::ErrorOr<void> add_controller(PCI::Device& pci_device);
private:
USBManager() = default;
private:
BAN::Vector<BAN::UniqPtr<USBController>> m_controllers;
friend class BAN::UniqPtr<USBManager>;
};
}