comments
This commit is contained in:
12
README.md
12
README.md
@ -9,11 +9,11 @@ Changes
|
|||||||
- Removed the Input.h/Input.cc files
|
- Removed the Input.h/Input.cc files
|
||||||
- Made device classes singletons
|
- Made device classes singletons
|
||||||
- Changed the multitasking assembly (use stack instead of thread_state)
|
- Changed the multitasking assembly (use stack instead of thread_state)
|
||||||
- Extensive changes to the scheduling:
|
- Many changes to the scheduler (strategy is still round robin):
|
||||||
- Merged dispatcher into the scheduler
|
- Merged dispatcher into the scheduler
|
||||||
- Scheduler no longer uses queue but vector
|
- Scheduler no longer uses queue but vector
|
||||||
- Scheduler owns threads
|
- Scheduler owns threads (no outside references)
|
||||||
- Threads are addressed by tid
|
- Threads are addressed by tid from the outside
|
||||||
- Threads are deallocated automatically when killed/exited
|
- Threads are deallocated automatically when killed/exited
|
||||||
- Retrieve threads from the scheduler without deallocation
|
- Retrieve threads from the scheduler without deallocation
|
||||||
- Scheduler manages blocked threads
|
- Scheduler manages blocked threads
|
||||||
@ -22,14 +22,14 @@ Additions
|
|||||||
======================================
|
======================================
|
||||||
- Some stream manipulators for CGA_Stream (color) and OutStream (fixed width)
|
- Some stream manipulators for CGA_Stream (color) and OutStream (fixed width)
|
||||||
- Logging class with support for colored serial port output
|
- Logging class with support for colored serial port output
|
||||||
- Main menu to start demo
|
- Main menu to start demos
|
||||||
- A very basic system to broadcast keyboard events to threads
|
- A very basic system to broadcast keyboard events to threads
|
||||||
- Basic implementation of vector with iterator support
|
- Basic implementation of vector with iterator support
|
||||||
- Basic implementation of unique_ptr
|
- Basic implementation of unique_ptr
|
||||||
- Basic implementation of fixed size array
|
- Basic implementation of fixed size array (just a wrapper for C-style arrays)
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
======================================
|
======================================
|
||||||
- Can't exit the PCSPKdemo
|
- Can't exit the PCSPKdemo (bluescreen)
|
||||||
- Random bluescreens that are hard to pinpoint
|
- Random bluescreens that are hard to pinpoint
|
||||||
- Tree Allocator (uses a red black tree to find best-fit blocks) crashes when freelist root is removed
|
- Tree Allocator (uses a red black tree to find best-fit blocks) crashes when freelist root is removed
|
||||||
|
@ -74,22 +74,21 @@ CXX ?= g++
|
|||||||
# CC = clang
|
# CC = clang
|
||||||
# CXX = clang++
|
# CXX = clang++
|
||||||
|
|
||||||
# Separate these as they are not compatible with clang14
|
|
||||||
EMPTY :=
|
EMPTY :=
|
||||||
GCC = gcc
|
GCC = gcc
|
||||||
ifeq ($(CXX),$(GCC))
|
ifeq ($(CXX),$(GCC))
|
||||||
|
# Separate these as they are not compatible with clang14
|
||||||
EXTRAFLAGS = -mmanual-endbr -mpreferred-stack-boundary=2
|
EXTRAFLAGS = -mmanual-endbr -mpreferred-stack-boundary=2
|
||||||
else
|
else
|
||||||
EXTRAFLAGS = $(EMPTY)
|
EXTRAFLAGS = $(EMPTY)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
# NOTE: In some cases I needed O1/O0 to allow paging/bluescreen to work (We need the ebp on the stack)
|
# NOTE: Need -O0 to allow paging/bluescreen to work (We need the ebp on the stack)
|
||||||
# I don't know why but right now it works with O2
|
|
||||||
CFLAGS := $(CFLAGS) -O0 -m32 -march=i486 -Wall -fno-stack-protector -nostdlib -I. -g -ffreestanding -fno-pie -fno-pic -Wno-write-strings -mno-sse -mno-sse2 $(EXTRAFLAGS)
|
CFLAGS := $(CFLAGS) -O0 -m32 -march=i486 -Wall -fno-stack-protector -nostdlib -I. -g -ffreestanding -fno-pie -fno-pic -Wno-write-strings -mno-sse -mno-sse2 $(EXTRAFLAGS)
|
||||||
|
|
||||||
# I added -std=c++17 for if constexpr, but it isn't necessary for anything critical (I think?)
|
# NOTE: -std=c++17 for if constexpr and probably some other stuff
|
||||||
# -std=c++20 is needed for template concepts and optional references, but we don't have it available :(
|
# -std=c++20 is needed for template concepts and optional references, but we don't have it available :(
|
||||||
CXXFLAGS := $(CFLAGS) -Wno-non-virtual-dtor -fno-threadsafe-statics -fno-use-cxa-atexit -fno-rtti -fno-exceptions -std=c++17
|
CXXFLAGS := $(CFLAGS) -Wno-non-virtual-dtor -fno-threadsafe-statics -fno-use-cxa-atexit -fno-rtti -fno-exceptions -std=c++17
|
||||||
|
|
||||||
BOOT = ../boot
|
BOOT = ../boot
|
||||||
|
Reference in New Issue
Block a user