From cf4291bc2fc931256c5c0addb701aa1449a25f28 Mon Sep 17 00:00:00 2001
From: Florent Gluck <florent.gluck@hesge.ch>
Date: Mon, 30 Sep 2024 16:43:43 +0200
Subject: [PATCH] Added validation/guests/guest_pv_1.bin Updated
 lab-virtual_game_machine.md Updated skeleton/guest/Makefile to fix a snprintf
 linking error

---
 .../lab-virtual_game_machine.md               |  23 ++++++++++++++++++
 .../skeleton/guest/Makefile                   |   2 +-
 .../validation/guests/guest_pv_1.bin          | Bin 0 -> 8265 bytes
 3 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100755 labs/lab-virtual_game_machine/validation/guests/guest_pv_1.bin

diff --git a/labs/lab-virtual_game_machine/lab-virtual_game_machine.md b/labs/lab-virtual_game_machine/lab-virtual_game_machine.md
index ad497e0..34af85f 100644
--- a/labs/lab-virtual_game_machine/lab-virtual_game_machine.md
+++ b/labs/lab-virtual_game_machine/lab-virtual_game_machine.md
@@ -357,3 +357,26 @@ Pour vous aider à tester votre VMM et vous assurer que son comportement est cor
 
 Le binaire de l'hyperviseur complet à réaliser vous sera également fourni afin que vous puissiez vérifier que le code de votre guest est également correct.
 
+## Guests à disposition
+
+Plusieurs guest OSes sont mis à votre disposition afin que vous puissiez valider que le comportement de votre VMM est correct. Ces guests se trouvent dans le répertoire `validation/guests`. Voici la liste avec une brève description de ce qu'ils réalisent et le comportement attendu par le VMM\ : 
+
+### guest_pv_1.bin
+
+Ce guest réalise 11 hypercalls afin d'afficher du texte sur la console virtuelle. Le texte affiché par le VMM est donné ci-dessous\ :
+
+\footnotesize
+```
+Looping 10 times:
+Hello from Guest OS (0/9)
+Hello from Guest OS (1/9)
+Hello from Guest OS (2/9)
+Hello from Guest OS (3/9)
+Hello from Guest OS (4/9)
+Hello from Guest OS (5/9)
+Hello from Guest OS (6/9)
+Hello from Guest OS (7/9)
+Hello from Guest OS (8/9)
+Hello from Guest OS (9/9)
+```
+\normalsize
diff --git a/labs/lab-virtual_game_machine/skeleton/guest/Makefile b/labs/lab-virtual_game_machine/skeleton/guest/Makefile
index 3cf535c..76f4844 100644
--- a/labs/lab-virtual_game_machine/skeleton/guest/Makefile
+++ b/labs/lab-virtual_game_machine/skeleton/guest/Makefile
@@ -1,4 +1,4 @@
-BAREMETAL_FLAGS=-m32 -ffreestanding -nostdlib -fno-builtin -fno-stack-protector -fno-pie -static -O3
+BAREMETAL_FLAGS=-m32 -march=i386 -ffreestanding -nostdlib -fno-builtin -fno-stack-protector -fno-pie -static
 CC=gcc -std=gnu17 $(BAREMETAL_FLAGS) -Wall -Wextra -MMD -Ishared -I../.. -I..
 CC+=-DPV=$(PV)
 
diff --git a/labs/lab-virtual_game_machine/validation/guests/guest_pv_1.bin b/labs/lab-virtual_game_machine/validation/guests/guest_pv_1.bin
new file mode 100755
index 0000000000000000000000000000000000000000..27a2b278e52964d5d7528e56f73f09380824d75e
GIT binary patch
literal 8265
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
Z2O5_%Ff=kYF*P%{uyk~Cc5!uM001Qm+57+i

literal 0
HcmV?d00001

-- 
GitLab