From 12f5f1d5caca8223b6dcadddae7ab8605fed1d0d Mon Sep 17 00:00:00 2001
From: Bah Thierno-Souleymane <thiernosouleymane.bah.etu@univ-lille.fr>
Date: Wed, 3 Mar 2021 02:17:55 +0100
Subject: [PATCH] fix(mi_kernel.c file updated, swap disk functions deleted)

---
 .DS_Store   | Bin 8196 -> 0 bytes
 Makefile    |   2 +-
 mi_kernel.c |  74 +---------------------------------------------------
 swap.c      |  43 ------------------------------
 swap.h      |  10 -------
 5 files changed, 2 insertions(+), 127 deletions(-)
 delete mode 100644 .DS_Store
 delete mode 100644 swap.c
 delete mode 100644 swap.h

diff --git a/.DS_Store b/.DS_Store
deleted file mode 100644
index 5285db6ab1e23e070ee5d16891fbd9f9ad6949b0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 8196
zcmZQzU|@7AO)+F(kYHe7;9!8z0^AH(0Z1N%F(jFwA|fF37#IW?7;+dA87dj#8HyQ7
zpmL+sXb6mkz-S1JhQMeDjE2DA3IRrlb2xC+`w-btax?@+LtsRP0H}OWfVAxy9H4Xq
zga%15FfuTJy8w&~3@oq!Vg&aC7(j9$tsokt6-0xyGBAQzU^Bp485p5j8NuBUkUjyh
zQH%^=?F@`yn?d4W?F@`yn;94wA=()jp*Ax@dnk+$?F@_%?F@`y+rdVT5~Cq78Ukn`
z0P4H*Go&zNG88iup!DAp8Il>Y8T1&EJ#+GtlXCKt7$8~Ok%56h^*<PZ&EjFmU`S*r
zVn|^q2h*txdJLHic?_9o`qrcA<6!V*NMy)nNM%T4$YjW2NJUl8D2t|^n<1AWlOZ0g
zqlh7oA(bHq({+s9MCr;vv+F0CE*_{|#SE1U#SF;|i3~Yl+tBnerK9QNgz770C}v1y
zD8h6f11R*G!GZT59D0~K(ClCUg&VRCZU$clUxrWyXNG)+JaE{hGw3m(=>mryvMye%
zy0F9(I0TV(axoNu<1?M10Bj@3HncRs2ns)BJ$x8?3K$X@@))q_1&1NBUQUJ}23H10
z1{Vfj23H0>hFpde)Yt-t;X|Y_WMwE}C}OC@3~g{IU{{GAUZ8Y?tdbLIW;{bKLn%1!
z(fkaK7i1l53>6F(3}y_v3}y@_s4fPF4^Fj7<;4Zi{B<&^ASbi9#K7P>BNH<VD;qlp
zCnpCdFK29UMt*s4Nn%N9u~TAEG>8|FSdx(hWryVF=fK&CNnx3(<?#X{&iQ#IiJ5t+
zMIhzDnJKABiA6EtnRzMs<xcsfc`3zUbD$Dni{b?&s;iAnEOiu&4J~VR6sj$a40IGs
zjLm9mIXT2t4Q)LWax1H<YijFef)g*iHfG?5@Zsbv1_lO{0Le@)gL;y23e1!D;GX2-
z=Hcbz7ZBtZ;ujVc5fu}c5RVrSPD)J9PA>vE)j2;WzsM=4G&MTCC^IFvATc>JFFm3p
zwW1_Avnn-SKnP7~P-;pXLMWuNAT?e<1R(%6&b=r#H4ki_e_C2`YDokVJ2Iv?Bfs3U
zBsJGFFD*Y_K&UJ;wcNj;Br`v+I4rfOI5R&lGO?&AF)uyUsWLVvF)202KhG(@q$EE#
zA~QKZ58^6*up!C$c>zVKAOn=`KR^OV*})se(10)m7?dFl1_lmLkqqO2XvUDd{Jd07
zWd{!skAZ=cfrCMn!J5IHA%G#3p@gBEVLHQNh7Aly8O}4@Wq8K$gOQPui&2<Slu?dR
zp3#8Ol+ldQ9-@^A+InJ;g79G^xRrzwUuD5Xc{%xcpaKr22c~$G9ws5c4Dp8qsQ>TE
zz<_J~AEIiM91Vfd5Ezyrz{uhf?BWFOlw<cFsILv`PbWa7K{W!XJI)B|mqYY{lz_VS
s;O;mhWKt2Vnvnt0lV@ar^yC>C7(iMFZXlpEFJ-j;AFcnviE{)K0CZjLnE(I)

diff --git a/Makefile b/Makefile
index e28cf0d..9512dba 100644
--- a/Makefile
+++ b/Makefile
@@ -15,7 +15,7 @@ pingpong : try.o pingpong.o
 pingpongpang : try.o pingpongpang.o
 	gcc -o $@ $^ $(LIB)
 
-mi_kernel : swap.o mi_user.o mi_kernel.o
+mi_kernel : mi_user.o mi_kernel.o
 	gcc -o $@ $^ $(LIB)
 
 %.o:%.c
diff --git a/mi_kernel.c b/mi_kernel.c
index b8fdabc..50a4b45 100644
--- a/mi_kernel.c
+++ b/mi_kernel.c
@@ -1,18 +1,13 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-
 #include "hardware.h"
 #include "mi_kernel.h"
 #include "mi_user.h"
 #include "MMUConfig.h"
 #include "mi_syscall.h"
-#include "swap.h"
 
-int VM_MAPPING[VM_SIZE];
-int PM_MAPPING[PM_SIZE];
 int current_process = 0;
-int first_pm_free = 0;
 
 void mmu_handler()
 {
@@ -37,73 +32,6 @@ void mmu_handler()
     //_out(TLB_ADD_ENTRY, *(int *)(&tlb));
 }
 
-int simple_swap_mmu_handler()
-{
-    tlb_entry_t tlb;
-    int ppage = 1;
-    long int vaddr = ((long int)_in(MMU_FAULT_ADDR_HI) << 32) | (_in(MMU_FAULT_ADDR_LO) & 0xFFFFFFFF);
-    long int vpage = (vaddr >> 12) & 0xFFF;
-
-    if (vaddr < ((long int)virtual_memory) || vaddr > ((long int)virtual_memory) + VM_SIZE)
-    {
-        fprintf(stderr, "Adresse virtuelle incorrecte");
-        exit(EXIT_FAILURE);
-    }
-
-    // Sauvegarder la vpage dans le fichier swap
-    store_to_swap(vpage, ppage);
-
-    // Vider la MMU
-    _out(MMU_CMD, MMU_RESET);
-
-    // Rajouter l'entree dans la tlb
-    tlb.s.tlb_vpage = vpage;
-    tlb.s.tlb_ppage = ppage;
-    tlb.s.tlb_rwx = 7;
-    tlb.s.tlb_used = 1;
-
-    _out(TLB_ADD_ENTRY, tlb.i);
-}
-
-int swap_mmu_handler()
-{
-    tlb_entry_t tlb;
-    long int vaddr = ((long int)_in(MMU_FAULT_ADDR_HI) << 32) | (_in(MMU_FAULT_ADDR_LO) & 0xFFFFFFFF);
-    long int vpage = (vaddr >> 12) & 0xFFF;
-
-    if (vaddr < ((long int)virtual_memory) || vaddr > ((long int)virtual_memory) + VM_SIZE)
-    {
-        fprintf(stderr, "Adresse virtuelle incorrecte");
-        exit(EXIT_FAILURE);
-    }
-
-    // Liaison de la vpage à la ppage
-    if (VM_MAPPING[vpage] == NULL)
-        VM_MAPPING[vpage] = (first_pm_free % PM_SIZE) + 1;
-
-    int ppage = VM_MAPPING[vpage];
-    int old_vpage = PM_MAPPING[ppage];
-
-    if (old_vpage == NULL)
-    {
-        PM_MAPPING[ppage] = vpage;
-        first_pm_free++;
-    }
-    else if (old_vpage != vpage)
-    {
-        store_to_swap(old_vpage, ppage);
-        fetch_from_swap(vpage, ppage);
-    }
-
-    // Rajouter l'entree dans la tlb
-    tlb.s.tlb_vpage = vpage;
-    tlb.s.tlb_ppage = ppage;
-    tlb.s.tlb_rwx = 7;
-    tlb.s.tlb_used = 1;
-
-    _out(TLB_ADD_ENTRY, tlb.i);
-}
-
 void switch_to_process0(void)
 {
     current_process = 0;
@@ -154,4 +82,4 @@ int main(int argc, char **argv)
     main_master();
     _mask(0x1001); // Basculer mode utilisateur
     main_user();
-}
+}
\ No newline at end of file
diff --git a/swap.c b/swap.c
deleted file mode 100644
index a70afd0..0000000
--- a/swap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* functions return non null value on error */
-
-#include <stdio.h>
-#include <stdint.h>
-
-#include "hardware.h"
-#include "hw_config.h"
-#include "swap.h"
-
-static FILE *swap_file = NULL;
-
-static int
-init_swap(void)
-{
-    swap_file = fopen(".swap_file", "w+"); /* w+: create, read, write*/
-    return swap_file == NULL;
-}
-
-int store_to_swap(int vpage, int ppage)
-{
-    if (swap_file == NULL)
-        if (init_swap())
-            return -2;
-    if (fseek(swap_file, vpage << 12, SEEK_SET) == -1)
-        return -1;
-    if (fwrite((void *)((ppage << 12) | (uintptr_t)physical_memory),
-               1, PAGE_SIZE, swap_file) == 0)
-        return -1;
-    return 0;
-}
-
-int fetch_from_swap(int vpage, int ppage)
-{
-    if (swap_file == NULL)
-        if (init_swap())
-            return -2;
-    if (fseek(swap_file, vpage << 12, SEEK_SET) == -1)
-        return -1;
-    if (fread((void *)((ppage << 12) | (uintptr_t)physical_memory),
-              1, PAGE_SIZE, swap_file) == 0)
-        return -1;
-    return 0;
-}
diff --git a/swap.h b/swap.h
deleted file mode 100644
index ecaf286..0000000
--- a/swap.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#if !defined(SWAP)
-#define SWAP
-
-#define PAGE_SIZE 4000
-
-int store_to_swap(int vpage, int ppage);
-
-int fetch_from_swap(int vpage, int ppage);
-
-#endif // SWAP
-- 
GitLab