Skip to main content

UringCommand

Trait UringCommand 

Source
pub unsafe trait UringCommand {
    type Output;

    // Required methods
    fn cmd_op(&self) -> u32;
    fn cmd_len(&self) -> usize;
    fn encode(&self, out: &mut [u8]);
    fn interpret(&self, completion: &Completion) -> Result<Self::Output, Errno>;
}
Expand description

Une commande passthrough d’un sous-système, sérialisable dans la zone cmd[] d’URING_CMD.

§Safety

L’implémenteur garantit que encode produit une commande valide pour le gestionnaire uring_cmd du fd ciblé, que cmd_op est l’opération correcte du sous-système, et que tout buffer externe référencé par la commande reste valide jusqu’à la complétion. io_uring ne peut pas vérifier ces invariants (la zone cmd[] lui est opaque) — d’où le unsafe trait.

Required Associated Types§

Source

type Output

Type de la valeur interprétée à la complétion.

Required Methods§

Source

fn cmd_op(&self) -> u32

Opération propre au sous-système (cmd_op, posée en off).

Source

fn cmd_len(&self) -> usize

Taille requise de la zone de commande, en octets (≤ 16, ou ≤ 80 si le ring a SETUP_SQE128).

Source

fn encode(&self, out: &mut [u8])

Sérialise la commande dans out (de longueur exacte cmd_len()).

Source

fn interpret(&self, completion: &Completion) -> Result<Self::Output, Errno>

Interprétation typée de la complétion (appelée par le consommateur, qui conserve une instance de la commande).

§Errors

L’[Errno] décodé de la complétion, ou toute erreur d’interprétation propre au sous-système.

Implementors§