libgui 2.01
libgui is a GUI library for the GameCube, Wii, and Wii U
 
Loading...
Searching...
No Matches
WiiUsbMulti.h
1/****************************************************************************
2 * Platform Abstraction Layer (OGC driver)
3 * Daryl Borth 2026
4 * WiiUsbMulti.h
5 *
6 * Multiple concurrent USB mass storage devices via IOS58's official USB2
7 *
8 * Stock libogc/libogc2's __io_usbstorage only ever mounts a single device:
9 * its mount loop breaks as soon as it successfully mounts one LUN on one
10 * device. USBStorage_Open/Close/GetMaxLUN/MountLUN/Read/Write
11 * themselves are plain per-handle functions with no hidden shared state
12 * beyond a scratch heap and a wait queue.
13 *
14 * Exposes three independent DISC_INTERFACEs, one per WiiFileSystemDriver
15 * USB slot (DEVICE_USB/USB2/USB3).
16 ***************************************************************************/
17#pragma once
18#include <ogc/disc_io.h>
19
20#define WII_USB_MAX_DEVICES 3
21
22namespace WiiUsbMulti
23{
26 void init();
27
31 void shutdown();
32
36 bool scan();
37
41 DISC_INTERFACE * getInterface(int slot);
42}