limine_protocol_for_rust/requests/
bootloader_performance.rs

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