diff --git a/include/mbr.h b/include/mbr.h index 86cbecb..b73923c 100644 --- a/include/mbr.h +++ b/include/mbr.h @@ -4,6 +4,9 @@ #include #include "chs.h" +// https://wiki.osdev.org/MBR_(x86) +// https://en.wikipedia.org/wiki/Master_boot_record + typedef struct { uint8_t attributes; chs_encoded_t chs_first; diff --git a/src/chs.c b/src/chs.c index 02ecd88..96995e0 100644 --- a/src/chs.c +++ b/src/chs.c @@ -7,6 +7,8 @@ void chs_decode(const chs_encoded_t* enc, chs_t* chs) chs->cylinder = (((uint16_t)enc->b[1]) & 0xC0) << 2 | (uint16_t)enc->b[2]; } +// https://wiki.osdev.org/LBA + uint32_t chs_to_lba(const chs_conf_t* conf, const chs_t* chs) { return (chs->cylinder * conf->num_heads + chs->head) * conf->num_sectors + (chs->sector - 1);