-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add initial process, thread and scheduler #46
base: master
Are you sure you want to change the base?
Conversation
* Quickstring * u8 array list * vp array list * Lots of FS code * Lots of tests Changes: * Updated some klibc * Changed the memory allocator Co-authored-by: Jonathan Dönszelmann <[email protected]>
…ow have a hash function. stated a hashmap. freeing null now doesn't pagefault. Co-authored-by: Victor Roest <[email protected]>
WIP: Repairs
Co-authored-by: Victor Roest <[email protected]>
Co-authored-by: Jonathan Dönszelmann <[email protected]>
Used semihosting to exit the vm appropriately at the end of a test. Co-authored-by: Jonathan Dönszelmann <[email protected]>
# Conflicts: # kernel/src/drivers/chipset/bcm2836/uart.c
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see a lot of unrelated changes in things like the chipset, why are those here?
@@ -4,7 +4,9 @@ include $(CURDIR)/../config.mk | |||
|
|||
# TODO should we have "-nostdinc"? | |||
# Flags to give to the c compiler | |||
CFLAGS += -pipe -std=gnu99 -ffreestanding -Wall -Werror -g -O0 -mcpu=arm1176jzf-s -march=armv6zk -mfpu=vfp -fpic | |||
CFLAGS += -pipe -std=gnu99 -ffreestanding \ | |||
-Wall -Werror -Wno-error=unused-function -Wno-error=unused-label -Wno-error=unused-parameter -Wno-error=unused-variable -Wno-error=unused-value -Wno-error=unused-local-typedefs \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We shouldn't ignore these errors
push {r0} // CPSR | ||
sub sp, #60 | ||
|
||
push {r1} // push r0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
R0 != R1, right?
#define COURSE_OS_ELF_FILES_H | ||
|
||
unsigned int swi_len; | ||
unsigned char swi[34532]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where does this magic number come from
void handle_syscall(size_t syscallnr, size_t param1, size_t param2, size_t param3, size_t param4) { | ||
INFO("Handling syscall %i", syscallnr); | ||
|
||
// switch (syscallnr) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems heavily incomplete?
#include <thread.h> | ||
#include <process.h> | ||
|
||
TEST_CREATE(test_process_smoke, { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test should pass
Could you please elaborate on "not done", what is it that does work right now? |
Add a basis for a scheduler.
While it is not done, it does give a good basis for further work.
Suggestions for that work: