use core::ffi::CStr;
use super::uuid::UUID;
#[repr(u32)]
#[derive(Debug, PartialEq, Eq)]
pub enum FileType {
Generic = 0,
Optical = 1,
TFTP = 2,
Unknown,
}
impl From<u32> for FileType {
fn from(v: u32) -> Self {
match v {
0 => Self::Generic,
1 => Self::Optical,
2 => Self::TFTP,
_ => Self::Unknown,
}
}
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq)]
pub struct File<'a> {
pub revision: u64,
pub address: *const u8,
pub size: u64,
pub path: &'a CStr,
pub cmdline: &'a CStr,
pub media_type: FileType,
unused: u32,
pub tftp_ip: u32,
pub tftp_port: u32,
pub partition_index: u32,
pub mbr_disk_id: u32,
pub gpt_disk_uuid: UUID,
pub gpt_part_uuid: UUID,
pub part_uuid: UUID,
}