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
82#[derive(Clone, Protobuf, Debug)]
85#[mesh(package = "mana_driver")]
86pub struct CqEqSavedState {
87 #[mesh(1)]
89 pub doorbell: DoorbellSavedState,
90
91 #[mesh(2)]
93 pub doorbell_addr: u32,
94
95 #[mesh(3)]
97 pub id: u32,
98
99 #[mesh(4)]
101 pub next: u32,
102
103 #[mesh(5)]
105 pub size: u32,
106
107 #[mesh(6)]
109 pub shift: u32,
110}
111
112#[derive(Clone, Protobuf, Debug)]
114#[mesh(package = "mana_driver")]
115pub struct DoorbellSavedState {
116 #[mesh(1)]
118 pub doorbell_id: u64,
119
120 #[mesh(2)]
122 pub page_count: u32,
123}
124
125#[derive(Debug, Protobuf, Clone)]
127#[mesh(package = "mana_driver")]
128pub struct WqSavedState {
129 #[mesh(1)]
131 pub doorbell: DoorbellSavedState,
132
133 #[mesh(2)]
135 pub doorbell_addr: u32,
136
137 #[mesh(3)]
139 pub id: u32,
140
141 #[mesh(4)]
143 pub head: u32,
144
145 #[mesh(5)]
147 pub tail: u32,
148
149 #[mesh(6)]
151 pub mask: u32,
152}
153
154#[derive(Debug, Protobuf, Clone)]
157#[mesh(package = "mana_driver")]
158pub struct SavedMemoryState {
159 #[mesh(1)]
161 pub base_pfn: u64,
162
163 #[mesh(2)]
165 pub len: usize,
166}