dope_core/driver/settings/
errors.rs1use o3::buffer::storage::Zero;
4
5use crate::{
6 driver::{route, route::table, settings, settings::demands::slots},
7 io::datagram::payload,
8};
9
10#[derive(Clone, Copy, Debug, PartialEq, Eq)]
12#[repr(u8)]
13pub enum Config {
14 QueueSubmissionsOutOfRange {
15 actual: u32,
16 minimum: u32,
17 maximum: u32,
18 },
19 ReceiveEntriesOutOfRange {
20 actual: u32,
21 minimum: u32,
22 maximum: u32,
23 },
24 ReceiveEntriesNotPowerOfTwo {
25 actual: u16,
26 },
27 ReceiveBuffer(Zero),
28 DatagramPayload(payload::Error),
29 DescriptorCapacityOutOfRange {
30 accepted: u32,
31 outbound: u32,
32 actual: u64,
33 minimum: u32,
34 maximum: u32,
35 },
36 ReadyCapacity {
37 files: u32,
38 ready: u32,
39 maximum: u32,
40 },
41}
42
43#[derive(Clone, Copy, Debug, Eq, PartialEq)]
44#[repr(u8)]
45pub enum Claim {
46 DuplicateRoute(route::Id),
47 AcceptedDescriptorsOverflow {
48 current: u32,
49 added: u32,
50 },
51 OutboundDescriptorsOverflow {
52 current: u32,
53 added: u32,
54 },
55 DescriptorConnectionsOutOfRange {
56 actual: usize,
57 minimum: usize,
58 maximum: usize,
59 },
60 ReceiveEntriesOverflow {
61 current: u32,
62 added: u32,
63 },
64 ReceiveEntriesPowerOfTwoOverflow {
65 requested: u32,
66 },
67 ReceiveEntriesTooLarge {
68 actual: usize,
69 maximum: usize,
70 },
71 ResidentDomainsOverflow(settings::DomainSum),
72 QueueSubmissionsPowerOfTwoOverflow {
73 requested: u32,
74 },
75 SchedulerReadyOverflow(slots::Sum),
76 SchedulerTimersOverflow(slots::Sum),
77 Layout(Config),
78}
79
80impl From<Config> for Claim {
81 fn from(source: Config) -> Self {
82 Self::Layout(source)
83 }
84}
85
86impl From<settings::DomainSum> for Claim {
87 fn from(source: settings::DomainSum) -> Self {
88 Self::ResidentDomainsOverflow(source)
89 }
90}
91
92impl From<table::Invalid> for Claim {
93 fn from(source: table::Invalid) -> Self {
94 Self::DescriptorConnectionsOutOfRange {
95 actual: source.actual,
96 minimum: source.minimum,
97 maximum: source.maximum,
98 }
99 }
100}