From 96083e7559a16ac0637fd9c88ef6b700f99bf72a Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Mon, 27 Jan 2014 23:01:09 +0100 Subject: [PATCH] Prepare new programs --- Makefile | 10 +++++++++- programs/longone/Makefile | 15 +++++++++++++++ programs/longone/src/main.cpp | 30 ++++++++++++++++++++++++++++++ programs/longtwo/Makefile | 15 +++++++++++++++ programs/longtwo/src/main.cpp | 30 ++++++++++++++++++++++++++++++ 5 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 programs/longone/Makefile create mode 100644 programs/longone/src/main.cpp create mode 100644 programs/longtwo/Makefile create mode 100644 programs/longtwo/src/main.cpp diff --git a/Makefile b/Makefile index 31a4692c..b716801b 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,12 @@ programs/hello/a.out: force_look programs/long/a.out: force_look cd programs/long; ${MAKE} a.out +programs/longone/a.out: force_look + cd programs/longone; ${MAKE} a.out + +programs/longtwo/a.out: force_look + cd programs/longtwo; ${MAKE} a.out + programs/loop/a.out: force_look cd programs/loop; ${MAKE} a.out @@ -27,7 +33,7 @@ hdd.img: dd if=/dev/zero of=hdd.img bs=516096c count=1000 (echo n; echo p; echo 1; echo ""; echo ""; echo t; echo c; echo a; echo 1; echo w;) | sudo fdisk -u -C1000 -S63 -H16 hdd.img -thor.flp: hdd.img bootloader/stage1.bin bootloader/stage2.bin kernel/kernel.bin programs/one/a.out programs/hello/a.out programs/long/a.out programs/loop/a.out +thor.flp: hdd.img bootloader/stage1.bin bootloader/stage2.bin kernel/kernel.bin programs/one/a.out programs/hello/a.out programs/long/a.out programs/loop/a.out programs/longone/a.out programs/longtwo/a.out mkdir -p mnt/fake/ dd if=bootloader/stage1.bin of=hdd.img conv=notrunc dd if=bootloader/stage2.bin of=hdd.img seek=1 conv=notrunc @@ -38,6 +44,8 @@ thor.flp: hdd.img bootloader/stage1.bin bootloader/stage2.bin kernel/kernel.bin sudo /bin/cp programs/one/a.out mnt/fake/one sudo /bin/cp programs/hello/a.out mnt/fake/hello sudo /bin/cp programs/long/a.out mnt/fake/long + sudo /bin/cp programs/longone/a.out mnt/fake/longone + sudo /bin/cp programs/longtwo/a.out mnt/fake/longtwo sudo /bin/cp programs/loop/a.out mnt/fake/loop sleep 0.1 sudo /bin/umount mnt/fake/ diff --git a/programs/longone/Makefile b/programs/longone/Makefile new file mode 100644 index 00000000..be45dace --- /dev/null +++ b/programs/longone/Makefile @@ -0,0 +1,15 @@ +.PHONY: default clean + +default: a.out + +include ../../cpp.mk + +%.cpp.o: src/%.cpp + $(CC) $(PROGRAM_FLAGS) $(CPP_FLAGS_64) $(WARNING_FLAGS) -c $< -o $@ + +a.out: main.cpp.o + $(CC) $(PROGRAM_LINK_FLAGS) $(CPP_FLAGS_64) -o a.out main.cpp.o + +clean: + rm *.cpp.o + rm -rf a.out diff --git a/programs/longone/src/main.cpp b/programs/longone/src/main.cpp new file mode 100644 index 00000000..bb7dae1d --- /dev/null +++ b/programs/longone/src/main.cpp @@ -0,0 +1,30 @@ +//======================================================================= +// Copyright Baptiste Wicht 2013-2014. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +//======================================================================= + +#include +#include + +volatile uint64_t current = 45; + +uint64_t fibonacci_slow(uint64_t s){ + if(s == 1 || s == 2){ + return current; + } + + return fibonacci_slow(s - 1) + fibonacci_slow(s - 2); +} + +auto message = "I'm one"; + +int main(){ + while(true){ + fibonacci_slow(current); + print_line(message); + } + + exit(0); +} \ No newline at end of file diff --git a/programs/longtwo/Makefile b/programs/longtwo/Makefile new file mode 100644 index 00000000..be45dace --- /dev/null +++ b/programs/longtwo/Makefile @@ -0,0 +1,15 @@ +.PHONY: default clean + +default: a.out + +include ../../cpp.mk + +%.cpp.o: src/%.cpp + $(CC) $(PROGRAM_FLAGS) $(CPP_FLAGS_64) $(WARNING_FLAGS) -c $< -o $@ + +a.out: main.cpp.o + $(CC) $(PROGRAM_LINK_FLAGS) $(CPP_FLAGS_64) -o a.out main.cpp.o + +clean: + rm *.cpp.o + rm -rf a.out diff --git a/programs/longtwo/src/main.cpp b/programs/longtwo/src/main.cpp new file mode 100644 index 00000000..9e502473 --- /dev/null +++ b/programs/longtwo/src/main.cpp @@ -0,0 +1,30 @@ +//======================================================================= +// Copyright Baptiste Wicht 2013-2014. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +//======================================================================= + +#include +#include + +volatile uint64_t current = 45; + +uint64_t fibonacci_slow(uint64_t s){ + if(s == 1 || s == 2){ + return current; + } + + return fibonacci_slow(s - 1) + fibonacci_slow(s - 2); +} + +auto message = "I'm two"; + +int main(){ + while(true){ + fibonacci_slow(current); + print_line(message); + } + + exit(0); +} \ No newline at end of file