dope_sys/ring/create/
acquire.rs1use std::num;
2
3use o3::base::num::bounded;
4
5use crate::{engine::ring::create::Failure, memory, ring::create::Create};
6
7type Resources<S, L, P, R> =
8 Failure<<S as Create>::Setup, <S as Create>::Map, P, <S as Acquire<L, P>>::Resources, R>;
9
10type Acquired<S, L, P, R> = Result<(S, Option<<S as Acquire<L, P>>::Range>), Resources<S, L, P, R>>;
11
12pub trait Acquire<L, P: Copy>: Create {
14 type Range;
15 type Resources: memory::Cleanup<P>;
16
17 fn acquire<const FILES: u32, R>(
18 submit: num::NonZero<u32>,
19 complete: num::NonZero<u32>,
20 defer: bool,
21 files: bounded::U32<1, FILES>,
22 range: Option<bounded::U32<1, { 1 << 24 }>>,
23 ) -> Acquired<Self, L, P, R>;
24}