Commit graph

28 commits

Author SHA1 Message Date
fef
7e6dbad05f
sched: complete rework of context switching
The old strategy was to only do context switching
from within the PendSV handler.  This worked fine
until now because all syscalls were handled either
atomically or just returned -EAGAIN if the
resource was locked or busy.  However, with the
introduction of I/O wait, we need to be able to
sleep directly from within the kernel by moving
the context switching completely into the kernel.
2021-08-08 20:48:55 +02:00
fef
60f1ebea8a
arch: use CMSIS after all
It was inevitable, tbh.  I really wanted to do
everything entirely from scratch, but all those
hardware registers are just too much to be
maintained by a single person.  And since i plan
on supporting different boards at some point in
the future, it would be complete madness to redo
everything for that board.
2021-08-07 14:30:09 +02:00
fef
e96ee14e68
sched: make sleeping actually work 2021-08-05 18:52:51 +02:00
fef
6e269e0217
sched: refactor and implement sleep 2021-08-05 16:14:18 +02:00
fef
203c167822
kevent: add device kevent 2021-08-04 03:29:52 +02:00
fef
f89aa9dc4e
sched: add idle task 2021-08-04 03:25:04 +02:00
fef
c36c2182d7
sched: minor refactor 2021-08-01 23:32:12 +02:00
fef
643d3ed251
build: migrate to CMake 2021-07-31 19:39:51 +02:00
fef
fc63785ca6
kent: simplify structure 2021-07-31 15:58:29 +02:00
8b3a5fd68d
sched: integrate into kent hierarchy
This is an initial, rudimentary attempt at integrating the scheduler
into the kent hierarchy.  There are likely gonna be drastic changes
in the future, and i haven't even tried running the whole thing.

But hey, the code compiles again now!
2021-05-11 14:31:05 +02:00
f0dc3a3433
kiss capitalism goodbye for good
The CNPL will make sure that absolutely no corporation is going to get
anywhere near Ardix -- exactly as it should be.  Fuck you, corporations!
2021-05-10 16:19:38 +02:00
ec3b64d232
string: move header to standard location
Anything that implements POSIX should also be where POSIX defines
it to be, otherwise it would be pretty useless lol
2021-02-28 18:27:43 +01:00
af8210da4a
piss off capitalism
Ardix is being relicensed to GPL v3 or later. I have no idea whether you
can just do this if you feel like it or if it has any consequences, but
i kinda don't really care that much about it.  Any changes made after
this commit will definitely fall under the GPL though, and considering
that only few things are really working yet anyways this is good enough
for me.
2021-02-28 02:18:39 +01:00
a658a7c8b3
sched: yes but what if i weren't stupid? 2021-02-17 14:13:19 +01:00
9b1eef8a64
sched: fix accidental double ptr bug 2021-02-17 14:08:43 +01:00
Felix Kopp
56c76d8b4b
sched: use proper UNIX® terminology 2021-02-01 00:07:45 +01:00
Felix Kopp
589e9330da
sched: properly disable the watchdog
I have no idea what the FUCK the Engineers at ARM were thinking when
they decided to disable EVERY SINGLE FUCKING CPU COMPONENT on system
reset, except the FUCKING WATCHDOG.  But this change will prevent the
system from randomly firing a watchdog reset.
2020-12-08 00:08:00 +01:00
Felix Kopp
99a51a5dd2
fix compiler errors/include conflicts
What a hell of a nightmare this codebase has become over the past few
weeks fascinates even myself
2020-12-01 02:35:06 +01:00
Felix Kopp
63f78d7b2b
sched: use spinlock for atomic context 2020-11-30 22:20:50 +01:00
Felix Kopp
dba671ab31
fix compiler warnings 2020-11-30 03:01:02 +01:00
Felix Kopp
570f036752
sched: minor refactor 2020-11-30 02:26:17 +01:00
Felix Kopp
a25ab04b0d
sched: implement process initialization 2020-11-29 20:33:18 +01:00
Felix Kopp
0e725b795d
Move license comment to the bottom 2020-10-11 19:35:30 +02:00
Felix Kopp
a4e244e7fc
Fix some minor errors 2020-10-10 23:11:21 +02:00
Felix Kopp
424f5a902f
Cleanup 2 2020-06-17 20:40:22 +02:00
Felix Kopp
30096ab5b2
Tidy up 2020-06-14 05:51:01 +02:00
Felix Kopp
ff8b5098cd
Enable SysTick on sched_init 2020-06-12 12:29:27 +02:00
Felix Kopp
c19e131f20
Add base stuff for preemptive scheduler 2020-06-12 11:49:20 +02:00