usb: make ControlPipe accept, reject async.

This commit is contained in:
Dario Nieuwenhuis
2022-05-30 00:35:27 +02:00
parent 883e28a0fb
commit a7383840e7
3 changed files with 24 additions and 12 deletions

View File

@ -142,6 +142,12 @@ pub trait ControlPipe {
where
Self: 'a;
type DataInFuture<'a>: Future<Output = Result<(), EndpointError>> + 'a
where
Self: 'a;
type AcceptFuture<'a>: Future<Output = ()> + 'a
where
Self: 'a;
type RejectFuture<'a>: Future<Output = ()> + 'a
where
Self: 'a;
@ -171,12 +177,12 @@ pub trait ControlPipe {
/// Accepts a control request.
///
/// Causes the STATUS packet for the current request to be ACKed.
fn accept(&mut self);
fn accept<'a>(&'a mut self) -> Self::AcceptFuture<'a>;
/// Rejects a control request.
///
/// Sets a STALL condition on the pipe to indicate an error.
fn reject(&mut self);
fn reject<'a>(&'a mut self) -> Self::RejectFuture<'a>;
}
pub trait EndpointIn: Endpoint {