diff --git a/redoxer.sh b/redoxer.sh index 3b00c981e56561e7fb2712bd34be2ce1339a94c3..9de24a9690adcd3c869401f35063f345cb4dc647 100755 --- a/redoxer.sh +++ b/redoxer.sh @@ -90,8 +90,6 @@ function redoxfs_mount { done } -name="$(basename "$1")" - if [ ! -f build/bootloader.bin ] then echo "building bootloader" >&2 @@ -139,13 +137,25 @@ mkdir -p "build/${uuid}" redoxfs_mount "build/${uuid}.bin" "build/${uuid}" cp "target/${TARGET}/release/redoxerd" "build/${uuid}/bin/redoxerd" + +if [[ "$1" == */* ]] +then + name="$(basename "$1")" + cp "$1" "build/${uuid}/bin/${name}" + echo "${name}" >> "build/${uuid}/etc/redoxerd" + shift +fi + for arg in "$@" do echo "${arg}" >> "build/${uuid}/etc/redoxerd" done + redoxfs_unmount "build/${uuid}" +set +e + qemu-system-x86_64 \ -enable-kvm \ -cpu host \ @@ -161,7 +171,10 @@ qemu-system-x86_64 \ -nographic \ -vga none \ -drive file="build/${uuid}.bin",format=raw +status="$(("$?" / 2))" echo -echo "## redoxer $@ ##" +echo "## redoxer (${status}) ##" cat "build/${uuid}.log" + +exit "${status}" diff --git a/src/bin/redoxerd.rs b/src/bin/redoxerd.rs index 95f557edc79d52b53adeb9961da4d46ad4c40b02..9acab031417417694e4e3407e602d705bc3405da 100644 --- a/src/bin/redoxerd.rs +++ b/src/bin/redoxerd.rs @@ -147,8 +147,7 @@ pub fn main() { Err(err) => { eprintln!("redoxerd: {}", err); // Exit with error using qemu device - let status = 0x21; - Pio::<u8>::new(0x501).write(status >> 1); + Pio::<u8>::new(0x501).write(1); } } }