pub trait Operations: Sized {
const USE_VTABLE_ATTR: ();
const HAS_QUEUE_RQ: bool = false;
const HAS_COMMIT_RQS: bool = false;
const HAS_POLL: bool = false;
// Required methods
fn queue_rq(rq: ARef<Request<Self>>, is_last: bool) -> Result;
fn commit_rqs();
// Provided method
fn poll() -> bool { ... }
}
Expand description
Implement this trait to interface blk-mq as block devices.
To implement a block device driver, implement this trait as described in the
module level documentation. The kernel will use the implementation of the
functions defined in this trait to interface a block device driver. Note:
There is no need for an exit_request() implementation, because the drop
implementation of the Request
type will be invoked by automatically by
the C/Rust glue logic.
Required Associated Constants§
Sourceconst USE_VTABLE_ATTR: ()
const USE_VTABLE_ATTR: ()
A marker to prevent implementors from forgetting to use #[vtable]
attribute when implementing this trait.
Provided Associated Constants§
Sourceconst HAS_QUEUE_RQ: bool = false
const HAS_QUEUE_RQ: bool = false
Indicates if the queue_rq
method is overridden by the implementor.
Sourceconst HAS_COMMIT_RQS: bool = false
const HAS_COMMIT_RQS: bool = false
Indicates if the commit_rqs
method is overridden by the implementor.
Required Methods§
Sourcefn queue_rq(rq: ARef<Request<Self>>, is_last: bool) -> Result
fn queue_rq(rq: ARef<Request<Self>>, is_last: bool) -> Result
Called by the kernel to queue a request with the driver. If is_last
is
false
, the driver is allowed to defer committing the request.
Sourcefn commit_rqs()
fn commit_rqs()
Called by the kernel to indicate that queued requests should be submitted.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.