From d8c6055c8e8c7dd7f575c0f87c1974eb5d6911ab Mon Sep 17 00:00:00 2001 From: Bah Thierno-Souleymane <thiernosouleymane.bah.etu@univ-lille.fr> Date: Thu, 18 Mar 2021 11:18:39 +0100 Subject: [PATCH] feat(save_mbr function done) --- tpfs/vol.c | 19 +++++++++++++++++++ tpfs/vol.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/tpfs/vol.c b/tpfs/vol.c index 9bd36c2..239fe5f 100644 --- a/tpfs/vol.c +++ b/tpfs/vol.c @@ -29,4 +29,23 @@ void load_mbr() mbr.magic = MBR_MAGIC; mbr.nb_vols = 0; +} + +void save_mbr() +{ + int i; + unsigned char buffer[sizeof(mbr_t)]; + + buffer[0] = mbr.magic & 255; + buffer[1] = (mbr.magic >> 8) & 255; + buffer[2] = mbr.nb_vols; + for (i = 0; i < mbr.nb_vols; i++) + { + buffer[3 + (i * 4)] = mbr.vols[i].sector; + buffer[4 + (i * 4)] = mbr.vols[i].cylinder; + buffer[5 + (i * 4)] = mbr.vols[i].nb_sectors; + buffer[6 + (i * 4)] = mbr.vols[i].type; + } + + write_sector(0, 0, buffer); } \ No newline at end of file diff --git a/tpfs/vol.h b/tpfs/vol.h index af09f09..9f01df6 100644 --- a/tpfs/vol.h +++ b/tpfs/vol.h @@ -30,4 +30,6 @@ typedef struct mbr_s void load_mbr(void); +void save_mbr(void); + #endif // VOL_H -- GitLab