MBR.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /**
  2. * @file MBR.h
  3. * @author fslongjin (longjin@RinGoTek.cn)
  4. * @brief MBR分区表
  5. * @version 0.1
  6. * @date 2022-04-19
  7. *
  8. * @copyright Copyright (c) 2022
  9. *
  10. */
  11. #pragma once
  12. #include <common/glib.h>
  13. /**
  14. * @brief MBR硬盘分区表项的结构
  15. *
  16. */
  17. struct MBR_disk_partition_table_entry_t
  18. {
  19. uint8_t flags; // 引导标志符,标记此分区为活动分区
  20. uint8_t starting_head; // 起始磁头号
  21. uint16_t starting_sector : 6, // 起始扇区号
  22. starting_cylinder : 10; // 起始柱面号
  23. uint8_t type; // 分区类型ID
  24. uint8_t ending_head; // 结束磁头号
  25. uint16_t ending_sector:6, // 结束扇区号
  26. ending_cylinder:10; // 结束柱面号
  27. uint32_t starting_LBA; // 起始逻辑扇区
  28. uint32_t total_sectors; // 分区占用的磁盘扇区数
  29. }__attribute__((packed));
  30. /**
  31. * @brief MBR磁盘分区表结构体
  32. *
  33. */
  34. struct MBR_disk_partition_table_t
  35. {
  36. uint8_t reserved[446];
  37. struct MBR_disk_partition_table_entry_t DPTE[4]; // 磁盘分区表项
  38. uint16_t BS_TrailSig;
  39. }__attribute__((packed));