123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #pragma once
- #include <common/glib.h>
- #define MBR_MAX_AHCI_CTRL_NUM 4
- #define MBR_MAX_AHCI_PORT_NUM 32
- struct MBR_disk_partition_table_entry_t
- {
- uint8_t flags;
- uint8_t starting_head;
- uint16_t starting_sector : 6,
- starting_cylinder : 10;
- uint8_t type;
- uint8_t ending_head;
- uint16_t ending_sector : 6,
- ending_cylinder : 10;
- uint32_t starting_LBA;
- uint32_t total_sectors;
- } __attribute__((packed));
- struct MBR_disk_partition_table_t
- {
- uint8_t reserved[446];
- struct MBR_disk_partition_table_entry_t DPTE[4];
- uint16_t BS_TrailSig;
- } __attribute__((packed));
- extern struct MBR_disk_partition_table_t MBR_partition_tables[MBR_MAX_AHCI_CTRL_NUM][MBR_MAX_AHCI_PORT_NUM];
- struct MBR_disk_partition_table_t *MBR_read_partition_table(uint8_t ahci_ctrl_num, uint8_t ahci_port_num);
|