/* * Usb.hpp * Generic userspace USB interface syscall layer. * Copyright (c) 2026 Daniel Hammer */ #pragma once #include 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); } }