@@ -54,7 +54,7 @@ impl AcpiTableWriter<'_> {
54
54
/// buffer. It returns the address in which it wrote the table.
55
55
fn write_acpi_table < S > (
56
56
& mut self ,
57
- resource_allocator : & ResourceAllocator ,
57
+ resource_allocator : & mut ResourceAllocator ,
58
58
table : & mut S ,
59
59
) -> Result < u64 , AcpiError >
60
60
where
@@ -83,7 +83,7 @@ impl AcpiTableWriter<'_> {
83
83
fn build_dsdt (
84
84
& mut self ,
85
85
device_manager : & mut DeviceManager ,
86
- resource_allocator : & ResourceAllocator ,
86
+ resource_allocator : & mut ResourceAllocator ,
87
87
) -> Result < u64 , AcpiError > {
88
88
let mut dsdt_data = Vec :: new ( ) ;
89
89
@@ -111,7 +111,7 @@ impl AcpiTableWriter<'_> {
111
111
/// This includes a pointer with the location of the DSDT in guest memory
112
112
fn build_fadt (
113
113
& mut self ,
114
- resource_allocator : & ResourceAllocator ,
114
+ resource_allocator : & mut ResourceAllocator ,
115
115
dsdt_addr : u64 ,
116
116
) -> Result < u64 , AcpiError > {
117
117
let mut fadt = Fadt :: new ( OEM_ID , * b"FCVMFADT" , OEM_REVISION ) ;
@@ -129,7 +129,7 @@ impl AcpiTableWriter<'_> {
129
129
/// This includes information about the interrupt controllers supported in the platform
130
130
fn build_madt (
131
131
& mut self ,
132
- resource_allocator : & ResourceAllocator ,
132
+ resource_allocator : & mut ResourceAllocator ,
133
133
nr_vcpus : u8 ,
134
134
) -> Result < u64 , AcpiError > {
135
135
let mut madt = Madt :: new (
@@ -147,7 +147,7 @@ impl AcpiTableWriter<'_> {
147
147
/// Currently, we pass to the guest just FADT and MADT tables.
148
148
fn build_xsdt (
149
149
& mut self ,
150
- resource_allocator : & ResourceAllocator ,
150
+ resource_allocator : & mut ResourceAllocator ,
151
151
fadt_addr : u64 ,
152
152
madt_addr : u64 ,
153
153
mcfg_addr : u64 ,
@@ -164,7 +164,7 @@ impl AcpiTableWriter<'_> {
164
164
/// Build the MCFG table for the guest.
165
165
fn build_mcfg (
166
166
& mut self ,
167
- resource_allocator : & ResourceAllocator ,
167
+ resource_allocator : & mut ResourceAllocator ,
168
168
pci_mmio_config_addr : u64 ,
169
169
) -> Result < u64 , AcpiError > {
170
170
let mut mcfg = Mcfg :: new ( OEM_ID , * b"FCMVMCFG" , OEM_REVISION , pci_mmio_config_addr) ;
@@ -197,7 +197,7 @@ impl AcpiTableWriter<'_> {
197
197
pub ( crate ) fn create_acpi_tables (
198
198
mem : & GuestMemoryMmap ,
199
199
device_manager : & mut DeviceManager ,
200
- resource_allocator : & ResourceAllocator ,
200
+ resource_allocator : & mut ResourceAllocator ,
201
201
vcpus : & [ Vcpu ] ,
202
202
) -> Result < ( ) , AcpiError > {
203
203
let mut writer = AcpiTableWriter { mem } ;
@@ -249,18 +249,19 @@ mod tests {
249
249
let mut writer = AcpiTableWriter {
250
250
mem : vmm. vm . guest_memory ( ) ,
251
251
} ;
252
+ let mut resource_allocator = vmm. vm . resource_allocator ( ) ;
252
253
253
254
// This should succeed
254
255
let mut sdt = MockSdt ( vec ! [ 0 ; 4096 ] ) ;
255
256
let addr = writer
256
- . write_acpi_table ( & vmm . vm . common . resource_allocator , & mut sdt)
257
+ . write_acpi_table ( & mut resource_allocator, & mut sdt)
257
258
. unwrap ( ) ;
258
259
assert_eq ! ( addr, SYSTEM_MEM_START ) ;
259
260
260
261
// Let's try to write two 4K pages plus one byte
261
262
let mut sdt = MockSdt ( vec ! [ 0 ; usize :: try_from( SYSTEM_MEM_SIZE + 1 ) . unwrap( ) ] ) ;
262
263
let err = writer
263
- . write_acpi_table ( & vmm . vm . common . resource_allocator , & mut sdt)
264
+ . write_acpi_table ( & mut resource_allocator, & mut sdt)
264
265
. unwrap_err ( ) ;
265
266
assert ! (
266
267
matches!(
@@ -275,27 +276,27 @@ mod tests {
275
276
// succeed.
276
277
let mut sdt = MockSdt ( vec ! [ 0 ; 5 ] ) ;
277
278
let addr = writer
278
- . write_acpi_table ( & vmm . vm . common . resource_allocator , & mut sdt)
279
+ . write_acpi_table ( & mut resource_allocator, & mut sdt)
279
280
. unwrap ( ) ;
280
281
assert_eq ! ( addr, SYSTEM_MEM_START + 4096 ) ;
281
282
let mut sdt = MockSdt ( vec ! [ 0 ; 2 ] ) ;
282
283
let addr = writer
283
- . write_acpi_table ( & vmm . vm . common . resource_allocator , & mut sdt)
284
+ . write_acpi_table ( & mut resource_allocator, & mut sdt)
284
285
. unwrap ( ) ;
285
286
assert_eq ! ( addr, SYSTEM_MEM_START + 4101 ) ;
286
287
let mut sdt = MockSdt ( vec ! [ 0 ; 4 ] ) ;
287
288
let addr = writer
288
- . write_acpi_table ( & vmm . vm . common . resource_allocator , & mut sdt)
289
+ . write_acpi_table ( & mut resource_allocator, & mut sdt)
289
290
. unwrap ( ) ;
290
291
assert_eq ! ( addr, SYSTEM_MEM_START + 4103 ) ;
291
292
let mut sdt = MockSdt ( vec ! [ 0 ; 8 ] ) ;
292
293
let addr = writer
293
- . write_acpi_table ( & vmm . vm . common . resource_allocator , & mut sdt)
294
+ . write_acpi_table ( & mut resource_allocator, & mut sdt)
294
295
. unwrap ( ) ;
295
296
assert_eq ! ( addr, SYSTEM_MEM_START + 4107 ) ;
296
297
let mut sdt = MockSdt ( vec ! [ 0 ; 16 ] ) ;
297
298
let addr = writer
298
- . write_acpi_table ( & vmm . vm . common . resource_allocator , & mut sdt)
299
+ . write_acpi_table ( & mut resource_allocator, & mut sdt)
299
300
. unwrap ( ) ;
300
301
assert_eq ! ( addr, SYSTEM_MEM_START + 4115 ) ;
301
302
}
@@ -312,11 +313,11 @@ mod tests {
312
313
let mut writer = AcpiTableWriter {
313
314
mem : vm. guest_memory ( ) ,
314
315
} ;
315
- let resource_allocator = ResourceAllocator :: new ( ) . unwrap ( ) ;
316
+ let mut resource_allocator = ResourceAllocator :: new ( ) ;
316
317
317
318
let mut sdt = MockSdt ( vec ! [ 0 ; usize :: try_from( SYSTEM_MEM_SIZE ) . unwrap( ) ] ) ;
318
319
let err = writer
319
- . write_acpi_table ( & resource_allocator, & mut sdt)
320
+ . write_acpi_table ( & mut resource_allocator, & mut sdt)
320
321
. unwrap_err ( ) ;
321
322
assert ! (
322
323
matches!(
0 commit comments