use hadris_common::types::{
endian::LittleEndian,
number::{U16, U64},
};
#[repr(C)]
#[derive(Clone, Copy)]
pub struct RawNtfsBootSector {
pub jump: [u8; 3],
pub oem_id: [u8; 8],
pub bytes_per_sector: U16<LittleEndian>,
pub sectors_per_cluster: u8,
pub _reserved: [u8; 2],
pub _zero1: [u8; 5],
pub media_descriptor: u8,
pub _zero2: [u8; 2],
pub sectors_per_track: [u8; 2],
pub num_heads: [u8; 2],
pub hidden_sectors: [u8; 4],
pub _zero3: [u8; 8],
pub total_sectors: U64<LittleEndian>,
pub mft_lcn: U64<LittleEndian>,
pub mft_mirr_lcn: U64<LittleEndian>,
pub clusters_per_mft_record: u8,
pub _unused1: [u8; 3],
pub clusters_per_index_record: u8,
pub _unused2: [u8; 3],
pub volume_serial: U64<LittleEndian>,
pub checksum: [u8; 4],
pub bootstrap: [u8; 426],
pub signature: U16<LittleEndian>,
}
unsafe impl bytemuck::NoUninit for RawNtfsBootSector {}
unsafe impl bytemuck::Zeroable for RawNtfsBootSector {}
unsafe impl bytemuck::AnyBitPattern for RawNtfsBootSector {}
const _: () = assert!(core::mem::size_of::<RawNtfsBootSector>() == 512);