limine_protocol_for_rust/requests/
efi_system_table.rs

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