mana_driver/
save_restore.rs1use mesh::payload::Protobuf;
7
8#[derive(Debug, Protobuf, Clone)]
10#[mesh(package = "mana_driver")]
11pub struct ManaSavedState {
12 #[mesh(1)]
14 pub mana_device: ManaDeviceSavedState,
15
16 #[mesh(2)]
18 pub pci_id: String,
19}
20
21#[derive(Debug, Protobuf, Clone)]
23#[mesh(package = "mana_driver")]
24pub struct ManaDeviceSavedState {
25 #[mesh(1)]
27 pub gdma: GdmaDriverSavedState,
28}
29
30#[derive(Protobuf, Clone, Debug)]
32#[mesh(package = "mana_driver")]
33pub struct GdmaDriverSavedState {
34 #[mesh(1)]
36 pub mem: SavedMemoryState,
37
38 #[mesh(2)]
40 pub eq: CqEqSavedState,
41
42 #[mesh(3)]
44 pub cq: CqEqSavedState,
45
46 #[mesh(4)]
48 pub rq: WqSavedState,
49
50 #[mesh(5)]
52 pub sq: WqSavedState,
53
54 #[mesh(6)]
56 pub db_id: u64,
57
58 #[mesh(7)]
60 pub gpa_mkey: u32,
61
62 #[mesh(8)]
64 pub pdid: u32,
65
66 #[mesh(9)]
68 pub hwc_activity_id: u32,
69
70 #[mesh(10)]
72 pub num_msix: u32,
73
74 #[mesh(11)]
76 pub min_queue_avail: u32,
77 #[mesh(12)]
79 pub link_toggle: Vec<(u32, bool)>,
80
81 #[mesh(13)]
83 pub vf_reconfiguration_pending: bool,
84}
85
86#[derive(Clone, Protobuf, Debug)]
89#[mesh(package = "mana_driver")]
90pub struct CqEqSavedState {
91 #[mesh(1)]
93 pub doorbell: DoorbellSavedState,
94
95 #[mesh(2)]
97 pub doorbell_addr: u32,
98
99 #[mesh(3)]
101 pub id: u32,
102
103 #[mesh(4)]
105 pub next: u32,
106
107 #[mesh(5)]
109 pub size: u32,
110
111 #[mesh(6)]
113 pub shift: u32,
114}
115
116#[derive(Clone, Protobuf, Debug)]
118#[mesh(package = "mana_driver")]
119pub struct DoorbellSavedState {
120 #[mesh(1)]
122 pub doorbell_id: u64,
123
124 #[mesh(2)]
126 pub page_count: u32,
127}
128
129#[derive(Debug, Protobuf, Clone)]
131#[mesh(package = "mana_driver")]
132pub struct WqSavedState {
133 #[mesh(1)]
135 pub doorbell: DoorbellSavedState,
136
137 #[mesh(2)]
139 pub doorbell_addr: u32,
140
141 #[mesh(3)]
143 pub id: u32,
144
145 #[mesh(4)]
147 pub head: u32,
148
149 #[mesh(5)]
151 pub tail: u32,
152
153 #[mesh(6)]
155 pub mask: u32,
156}
157
158#[derive(Debug, Protobuf, Clone)]
161#[mesh(package = "mana_driver")]
162pub struct SavedMemoryState {
163 #[mesh(1)]
165 pub base_pfn: u64,
166
167 #[mesh(2)]
169 pub len: usize,
170}