You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current std has a few basic requirements to function:
256
-
1. Memory Allocation Services (`EFI_BOOT_SERVICES.AllocatePool()` and `EFI_BOOT_SERVICES.FreePool()`) are available. This should be true in in the Driver Execution Environment or later.
257
-
If the above requirement is satisfied, the Rust code will reach `main`.
258
-
Now we will discuss what the different modules of std use in UEFI.
259
-
260
254
### Implemented features
261
255
#### alloc
262
256
- Implemented using `EFI_BOOT_SERVICES.AllocatePool()` and `EFI_BOOT_SERVICES.FreePool()`.
@@ -302,3 +296,8 @@ pub fn main() {
302
296
assert!(!r.is_error())
303
297
}
304
298
```
299
+
300
+
### BootServices
301
+
The current implementation of std make `BootServices` unavailable once `ExitBootServices` is called. Refer to [Runtime Drivers](https://edk2-docs.gitbook.io/edk-ii-uefi-driver-writer-s-guide/7_driver_entry_point/711_runtime_drivers) for more information regarding how to handle switching from using physical addresses to using virtual addresses.
302
+
303
+
Note: It should be noted that it is upto the user to drop all allocated memory before `ExitBootServices` is called.
0 commit comments