45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
/*
|
|
* Usb.hpp
|
|
* Generic userspace USB interface syscall layer.
|
|
* Copyright (c) 2026 Daniel Hammer
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <Drivers/USB/UserUsb.hpp>
|
|
|
|
namespace montauk::abi {
|
|
|
|
static int64_t Sys_UsbList(UsbInterfaceInfo* out, int maxCount) {
|
|
return Drivers::USB::UserUsb::List(out, maxCount);
|
|
}
|
|
|
|
static int64_t Sys_UsbClaim(uint8_t slotId, uint8_t interfaceNumber) {
|
|
return Drivers::USB::UserUsb::Claim(slotId, interfaceNumber);
|
|
}
|
|
|
|
static int64_t Sys_UsbClose(int handle) {
|
|
return Drivers::USB::UserUsb::Close(handle);
|
|
}
|
|
|
|
static int64_t Sys_UsbControl(int handle, const UsbControlRequest* request,
|
|
void* data, uint32_t dataLen) {
|
|
if (!request) return USB_ERR_INVALID;
|
|
return Drivers::USB::UserUsb::Control(handle, *request, data, dataLen);
|
|
}
|
|
|
|
static int64_t Sys_UsbBulkInStart(int handle, uint32_t transferBytes,
|
|
uint32_t bufferCount) {
|
|
return Drivers::USB::UserUsb::StartBulkIn(handle, transferBytes, bufferCount);
|
|
}
|
|
|
|
static int64_t Sys_UsbBulkInStop(int handle) {
|
|
return Drivers::USB::UserUsb::StopBulkIn(handle);
|
|
}
|
|
|
|
static int64_t Sys_UsbBulkInRead(int handle, uint8_t* out, uint32_t maxLen) {
|
|
return Drivers::USB::UserUsb::ReadBulkIn(handle, out, maxLen);
|
|
}
|
|
|
|
}
|