1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:37:35 +00:00

Kernel/USB: Add UKBuffer variants of certain BulkPipe/Transfer functions

These will be useful for directly accessing the source/destination
buffers, without going through a third buffer first.
This commit is contained in:
Hendiadyoin1 2023-08-31 16:53:00 +02:00 committed by Andrew Kaster
parent 8335803045
commit 4b327bdc95
4 changed files with 43 additions and 0 deletions

View file

@ -94,6 +94,7 @@ public:
static ErrorOr<NonnullOwnPtr<BulkInPipe>> create(USBController const& controller, u8 endpoint_address, u16 max_packet_size, i8 device_address, size_t buffer_size = PAGE_SIZE);
ErrorOr<size_t> submit_bulk_in_transfer(size_t length, void* data);
ErrorOr<size_t> submit_bulk_in_transfer(size_t length, UserOrKernelBuffer data);
private:
BulkInPipe(USBController const& controller, u8 endpoint_address, u16 max_packet_size, i8 device_address, NonnullOwnPtr<Memory::Region> dma_buffer);
@ -104,6 +105,7 @@ public:
static ErrorOr<NonnullOwnPtr<BulkOutPipe>> create(USBController const& controller, u8 endpoint_address, u16 max_packet_size, i8 device_address, size_t buffer_size = PAGE_SIZE);
ErrorOr<size_t> submit_bulk_out_transfer(size_t length, void* data);
ErrorOr<size_t> submit_bulk_out_transfer(size_t length, UserOrKernelBuffer data);
private:
BulkOutPipe(USBController const& controller, u8 endpoint_address, u16 max_packet_size, i8 device_address, NonnullOwnPtr<Memory::Region> dma_buffer);