USBManagement.h 514 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * Copyright (c) 2021, Luke Wilde <lukew@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/NonnullRefPtr.h>
  8. #include <AK/NonnullRefPtrVector.h>
  9. #include <Kernel/Bus/USB/USBController.h>
  10. namespace Kernel::USB {
  11. class USBManagement {
  12. AK_MAKE_ETERNAL;
  13. public:
  14. USBManagement();
  15. static bool initialized();
  16. static void initialize();
  17. static USBManagement& the();
  18. private:
  19. void enumerate_controllers();
  20. USBController::List m_controllers;
  21. };
  22. }