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