Skip to content

Commit

Permalink
merged 2.1 (assignment version)
Browse files Browse the repository at this point in the history
  • Loading branch information
praffulr committed Mar 5, 2020
1 parent 5f33755 commit c9a7562
Show file tree
Hide file tree
Showing 40 changed files with 160,287 additions and 0 deletions.
1 change: 1 addition & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Copyrighted material. Do NOT distribute.
99 changes: 99 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
M=./make
include $M/header.mk

I =.#
O =$I/_tmp#
TYPE =exe#
NAME =hoh#
ARCH =linux#
B =release#



SOURCES = \
$I/x86/boot.S \
$I/x86/main.cc \
$I/util/debug.cc \
$I/labs/shell.cc \
$I/labs/coroutine.cc \

ISO_SOURCES = \
$O/iso/boot/$(NAME).exe \
$O/iso/boot/grub/grub.cfg \


CPPFLAGS = -I$I
TARGET_MACH = -m32
TARGET_ARCH = -m32

#options for B=debug
CXXFLAGS.debug=-g
ASFLAGS.debug=-g
#options for B=release
CXXFLAGS.release=-O3

WARNINGS = -Wall -Wextra -pedantic -Wshadow -Wpointer-arith -Wcast-align \
-Wwrite-strings -Wmissing-declarations \
-Wredundant-decls -Winline -Wno-long-long \
-Wuninitialized -Wconversion

WARNINGS=

#-Wmissing-prototypes -Wnested-externs -Wstrict-prototypes

NO_SIMD=-mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow


CXXFLAGS = -std=c++0x \
$(WARNINGS) \
-ffreestanding -fno-rtti -fno-exceptions \
-fstrength-reduce -fomit-frame-pointer -finline-functions \
-mno-red-zone \
$(NO_SIMD)\
-z max-page-size=0x1000 \

#options specific for except.cc
CXXFLAGS.x86/except.cc = $(NO_SIMD)

LINK.script = $I/make/util/linker.t
LDFLAGS = -static -T $(LINK.script) \
-nostdlib -nodefaultlibs -nostartfiles \
-z max-page-size=0x1000 \


QEMU=qemu-system-i386
#QEMU = ~/X/qemu.git/i386-softmmu/qemu-system-i386
QEMUFLAGS = -smp 2 -m 1024
QEMULOG= -D qemu.log -d in_asm,int

all:: exe

qemu:: iso
$(QEMU) $(QEMUFLAGS) $(QEMULOG) -serial stdio -serial null -cdrom $O/$(NAME).iso

qemu-gdb:: iso
$(QEMU) $(QEMUFLAGS) -S -s -serial stdio -serial null -cdrom $O/$(NAME).iso

qemu-direct:: exe
$(QEMU) $(QEMUFLAGS) $(QEMULOG) -serial stdio -serial null -kernel $O/$(NAME).exe -append "/help"

qemu-gdb-direct:: exe
$(QEMU) $(QEMUFLAGS) -S -s -serial stdio -serial null -kernel $O/$(NAME).exe -append "/help"

iso:: $O/$(NAME).iso



$O/$(NAME).iso: $(ISO_SOURCES)
grub-mkrescue -o $@ $O/iso

$O/iso/boot/$(NAME).exe: exe
mkdir -p $O/iso/boot
cp $O/$(NAME).exe $@

$O/iso/boot/grub/grub.cfg: $I/make/util/grub.cfg
mkdir -p $O/iso/boot/grub
cp $< $@


include $M/footer.mk
Binary file added _tmp/hoh.065a8ab7026754e9d5f752582e61b81f.exe
Binary file not shown.
1 change: 1 addition & 0 deletions _tmp/hoh.exe
Binary file added _tmp/hoh.iso
Binary file not shown.
7 changes: 7 additions & 0 deletions _tmp/iso/boot/grub/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
set timeout=3
set default=0

menuentry "HoH" {
multiboot /boot/hoh.exe
boot
}
Binary file added _tmp/iso/boot/hoh.exe
Binary file not shown.
Binary file not shown.
205 changes: 205 additions & 0 deletions _tmp/labs/shell.cc.065a8ab7026754e9d5f752582e61b81f.dep
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
_tmp/labs/shell.cc.065a8ab7026754e9d5f752582e61b81f.dep ./_tmp/labs/shell.065a8ab7026754e9d5f752582e61b81f.o: \
labs/shell.cc labs/shell.h util/config.h \
/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint.h \
/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint-gcc.h util/debug.h \
util/strong_typedef.hpp /usr/include/boost/config.hpp \
/usr/include/boost/config/user.hpp \
/usr/include/boost/config/detail/select_compiler_config.hpp \
/usr/include/boost/config/compiler/gcc.hpp /usr/include/c++/8/cstddef \
/usr/include/x86_64-linux-gnu/c++/8/32/bits/c++config.h \
/usr/include/x86_64-linux-gnu/c++/8/32/bits/os_defines.h \
/usr/include/features.h /usr/include/stdc-predef.h \
/usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-32.h \
/usr/include/x86_64-linux-gnu/c++/8/32/bits/cpu_defines.h \
/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h \
/usr/include/boost/config/detail/select_stdlib_config.hpp \
/usr/include/boost/config/stdlib/libstdcpp3.hpp /usr/include/unistd.h \
/usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
/usr/include/bits/types.h /usr/include/bits/timesize.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
/usr/include/bits/getopt_core.h /usr/include/bits/unistd.h \
/usr/include/boost/config/detail/select_platform_config.hpp \
/usr/include/boost/config/platform/linux.hpp /usr/include/c++/8/cstdlib \
/usr/include/stdlib.h /usr/include/bits/libc-header-start.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/sys/types.h /usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h /usr/include/bits/stdint-intn.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h /usr/include/bits/select2.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/bits/stdlib.h /usr/include/c++/8/bits/std_abs.h \
/usr/include/boost/config/detail/posix_features.hpp \
/usr/include/boost/config/detail/suffix.hpp \
/usr/include/boost/config/helper_macros.hpp util/operators.hpp \
/usr/include/boost/detail/workaround.hpp \
/usr/include/boost/config/workaround.hpp labs/vgatext.h util/io.h

labs/shell.h:

util/config.h:

/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint.h:

/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint-gcc.h:

util/debug.h:

util/strong_typedef.hpp:

/usr/include/boost/config.hpp:

/usr/include/boost/config/user.hpp:

/usr/include/boost/config/detail/select_compiler_config.hpp:

/usr/include/boost/config/compiler/gcc.hpp:

/usr/include/c++/8/cstddef:

/usr/include/x86_64-linux-gnu/c++/8/32/bits/c++config.h:

/usr/include/x86_64-linux-gnu/c++/8/32/bits/os_defines.h:

/usr/include/features.h:

/usr/include/stdc-predef.h:

/usr/include/sys/cdefs.h:

/usr/include/bits/wordsize.h:

/usr/include/bits/long-double.h:

/usr/include/gnu/stubs.h:

/usr/include/gnu/stubs-32.h:

/usr/include/x86_64-linux-gnu/c++/8/32/bits/cpu_defines.h:

/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h:

/usr/include/boost/config/detail/select_stdlib_config.hpp:

/usr/include/boost/config/stdlib/libstdcpp3.hpp:

/usr/include/unistd.h:

/usr/include/bits/posix_opt.h:

/usr/include/bits/environments.h:

/usr/include/bits/types.h:

/usr/include/bits/timesize.h:

/usr/include/bits/typesizes.h:

/usr/include/bits/time64.h:

/usr/include/bits/confname.h:

/usr/include/bits/getopt_posix.h:

/usr/include/bits/getopt_core.h:

/usr/include/bits/unistd.h:

/usr/include/boost/config/detail/select_platform_config.hpp:

/usr/include/boost/config/platform/linux.hpp:

/usr/include/c++/8/cstdlib:

/usr/include/stdlib.h:

/usr/include/bits/libc-header-start.h:

/usr/include/bits/waitflags.h:

/usr/include/bits/waitstatus.h:

/usr/include/bits/floatn.h:

/usr/include/bits/floatn-common.h:

/usr/include/bits/types/locale_t.h:

/usr/include/bits/types/__locale_t.h:

/usr/include/sys/types.h:

/usr/include/bits/types/clock_t.h:

/usr/include/bits/types/clockid_t.h:

/usr/include/bits/types/time_t.h:

/usr/include/bits/types/timer_t.h:

/usr/include/bits/stdint-intn.h:

/usr/include/endian.h:

/usr/include/bits/endian.h:

/usr/include/bits/byteswap.h:

/usr/include/bits/uintn-identity.h:

/usr/include/sys/select.h:

/usr/include/bits/select.h:

/usr/include/bits/types/sigset_t.h:

/usr/include/bits/types/__sigset_t.h:

/usr/include/bits/types/struct_timeval.h:

/usr/include/bits/types/struct_timespec.h:

/usr/include/bits/select2.h:

/usr/include/bits/pthreadtypes.h:

/usr/include/bits/thread-shared-types.h:

/usr/include/bits/pthreadtypes-arch.h:

/usr/include/alloca.h:

/usr/include/bits/stdlib-bsearch.h:

/usr/include/bits/stdlib-float.h:

/usr/include/bits/stdlib.h:

/usr/include/c++/8/bits/std_abs.h:

/usr/include/boost/config/detail/posix_features.hpp:

/usr/include/boost/config/detail/suffix.hpp:

/usr/include/boost/config/helper_macros.hpp:

util/operators.hpp:

/usr/include/boost/detail/workaround.hpp:

/usr/include/boost/config/workaround.hpp:

labs/vgatext.h:

util/io.h:
Binary file added _tmp/util/debug.065a8ab7026754e9d5f752582e61b81f.o
Binary file not shown.
Loading

0 comments on commit c9a7562

Please sign in to comment.