uefi_raw/protocol/
memory_protection.rs

1use crate::table::boot::MemoryAttribute;
2use crate::{guid, Guid, PhysicalAddress, Status};
3
4#[derive(Debug)]
5#[repr(C)]
6pub struct MemoryAttributeProtocol {
7    pub get_memory_attributes: unsafe extern "efiapi" fn(
8        this: *const Self,
9        base_address: PhysicalAddress,
10        length: u64,
11        attributes: *mut MemoryAttribute,
12    ) -> Status,
13
14    pub set_memory_attributes: unsafe extern "efiapi" fn(
15        this: *const Self,
16        base_address: PhysicalAddress,
17        length: u64,
18        attributes: MemoryAttribute,
19    ) -> Status,
20
21    pub clear_memory_attributes: unsafe extern "efiapi" fn(
22        this: *const Self,
23        base_address: PhysicalAddress,
24        length: u64,
25        attributes: MemoryAttribute,
26    ) -> Status,
27}
28
29impl MemoryAttributeProtocol {
30    pub const GUID: Guid = guid!("f4560cf6-40ec-4b4a-a192-bf1d57d0b189");
31}