From a64484d0b828f95226cc8e89c3721bf800d1666e Mon Sep 17 00:00:00 2001 From: Stepan Usatiuk Date: Sun, 26 Nov 2023 20:51:02 +0100 Subject: [PATCH] run.sh --- run.sh | 73 ++++++++++++++++++++++++++++++++++++++++++++++ src/kernel/VMA.cpp | 1 + 2 files changed, 74 insertions(+) create mode 100755 run.sh diff --git a/run.sh b/run.sh new file mode 100755 index 000000000..d1fc1b31b --- /dev/null +++ b/run.sh @@ -0,0 +1,73 @@ +#!/bin/bash + + +POSITIONAL_ARGS=() + +QEMU_OPTS="" + +while [[ $# -gt 0 ]]; do + case $1 in + -c) + CLEAN=true + shift + ;; + -r) + MODE="relwithdebinfo" + shift # past argument + ;; + -d) + MODE="debug" + shift + ;; + -gw) + # wait for gdb + QEMU_OPTS="$QEMU_OPTS -S" + shift + ;; + -s) + if [ $TERM_USED ]; then + echo "Conflicting options!"; # (todo: there must be a way to use both...) + exit 1 + fi + TERM_USED=true + # serial + QEMU_OPTS="$QEMU_OPTS -serial stdio" + shift + ;; + -int) + if [ $TERM_USED ]; then + echo "Conflicting options!"; # (todo: there must be a way to use both...) + exit 1 + fi + TERM_USED=true + # serial + QEMU_OPTS="$QEMU_OPTS -d int" + shift + ;; + -*|--*) + echo "Unknown option $1" + exit 1 + ;; + *) + POSITIONAL_ARGS+=("$1") # save positional arg + shift # past argument + ;; + esac +done + +set -- "${POSITIONAL_ARGS[@]}" # restore positional parameters + +set -exo pipefail + +if [[ $BASH_SOURCE = */* ]]; then + cd -- "${BASH_SOURCE%/*}/" || exit +fi + +if [ $CLEAN ]; then + cmake --build cmake-build-$MODE --target clean +fi + +cmake --build cmake-build-$MODE --target iso + +qemu-system-x86_64 -s $QEMU_OPTS -cdrom cmake-build-relwithdebinfo/src/iso/os2.iso + diff --git a/src/kernel/VMA.cpp b/src/kernel/VMA.cpp index b5a40b65c..ac2d31e8c 100644 --- a/src/kernel/VMA.cpp +++ b/src/kernel/VMA.cpp @@ -55,6 +55,7 @@ void *VMA::mmap_mem(void *v_addr, size_t length, int prot, int flags) { for (auto &n: regions) { if (n.data.available && n.data.length >= length) { found = n.data; + break; } } }