usb_queue: Add completion_cb arguments
This commit is contained in:
@ -131,10 +131,12 @@ static usb_transfer_t* endpoint_pop_transfer(
|
||||
void usb_transfer_schedule_wait(
|
||||
const usb_endpoint_t* const endpoint,
|
||||
void* const data,
|
||||
const uint32_t maximum_length
|
||||
const uint32_t maximum_length,
|
||||
const transfer_completion_cb completion_cb
|
||||
) {
|
||||
usb_transfer_t* const transfer = allocate_transfer();
|
||||
fill_in_transfer(transfer, data, maximum_length);
|
||||
transfer->completion_cb = completion_cb;
|
||||
endpoint_add_transfer(endpoint, transfer);
|
||||
usb_endpoint_schedule_wait(endpoint, &transfer->td);
|
||||
}
|
||||
@ -142,11 +144,13 @@ void usb_transfer_schedule_wait(
|
||||
void usb_transfer_schedule_append(
|
||||
const usb_endpoint_t* const endpoint,
|
||||
void* const data,
|
||||
const uint32_t maximum_length
|
||||
const uint32_t maximum_length,
|
||||
const transfer_completion_cb completion_cb
|
||||
) {
|
||||
usb_transfer_t* const transfer = allocate_transfer();
|
||||
uint_fast8_t index = USB_ENDPOINT_INDEX(endpoint->address);
|
||||
fill_in_transfer(transfer, data, maximum_length);
|
||||
transfer->completion_cb = completion_cb;
|
||||
// TODO: disable_interrupts();
|
||||
usb_transfer_t* tail = endpoint_transfers[index];
|
||||
for (; tail->next != NULL; tail = tail->next);
|
||||
@ -158,7 +162,7 @@ void usb_transfer_schedule_append(
|
||||
void usb_transfer_schedule_ack(
|
||||
const usb_endpoint_t* const endpoint
|
||||
) {
|
||||
usb_transfer_schedule_wait(endpoint, 0, 0);
|
||||
usb_transfer_schedule_wait(endpoint, 0, 0, NULL);
|
||||
}
|
||||
|
||||
void usb_queue_transfer_complete(usb_endpoint_t* const endpoint)
|
||||
|
@ -40,13 +40,15 @@ void usb_endpoint_schedule(
|
||||
void usb_transfer_schedule_wait(
|
||||
const usb_endpoint_t* const endpoint,
|
||||
void* const data,
|
||||
const uint32_t maximum_length
|
||||
const uint32_t maximum_length,
|
||||
const transfer_completion_cb completion_cb
|
||||
);
|
||||
|
||||
void usb_transfer_schedule_append(
|
||||
const usb_endpoint_t* const endpoint,
|
||||
void* const data,
|
||||
const uint32_t maximum_length
|
||||
const uint32_t maximum_length,
|
||||
const transfer_completion_cb completion_cb
|
||||
);
|
||||
|
||||
void usb_transfer_schedule_ack(
|
||||
|
Reference in New Issue
Block a user