limine_protocol_for_rust/requests/
executable_address.rs

1//![Executable Address Feature](https://codeberg.org/Limine/limine-protocol/src/branch/trunk/PROTOCOL.md#executable-address-feature)
2
3use crate::requests::LimineRequest;
4use core::mem::MaybeUninit;
5use crate::{impl_limine_req, LimineReqId};
6
7#[repr(C, align(8))]
8pub struct ExecutableAddressRequest {
9    id: LimineReqId,
10    revision: u64,
11    resp: MaybeUninit<usize>
12}
13
14impl ExecutableAddressRequest {
15    pub const fn new(revision: u64) -> Self {
16        Self {
17            id: LimineReqId::new([0x71ba76863cc55f63, 0xb2644a48c516a487]),
18            revision,
19            resp: MaybeUninit::uninit()
20        }
21    }
22}
23
24impl_limine_req!(ExecutableAddressRequest, ExecutableAddressResponse);
25
26#[repr(C, align(8))]
27#[derive(Copy, Clone)]
28pub struct ExecutableAddressResponse {
29    revision: u64,
30    pub physical_base: usize,
31    pub virtual_base: usize
32}