Commit Graph

364 Commits

Author SHA1 Message Date
Mark 41ae3d7aab Fix ring reader ignoring signals and unqueuing threads twice 2020-02-05 13:28:11 +02:00
Mark 533bc8567a Add linked list structure 2020-02-05 11:38:13 +02:00
Mark fc837b97d8 Only use spinlocks in SMP scenario 2020-02-05 10:39:00 +02:00
Mark bdab682a99 Notify ring reader when control character is written to ring 2020-02-05 10:36:31 +02:00
Mark 33ad8e3ee3 Fix scheduler lock not being released when handling signals 2020-02-04 23:37:57 +02:00
Mark 3542b73f1a SMP kinda works, fixed malloc race condition
Damn, I totally need to review SMP safety
2020-02-04 14:16:16 +02:00
Mark d9595c7f62 Change project structure 2020-02-04 12:45:15 +02:00
Mark b60ae9eebd Backport VESA driver 2020-02-03 13:43:02 +02:00
Mark 51d27f5f8c Add GCC/binutils patches 2020-02-03 15:22:46 +02:00
Mark 897bf87843 Add power button handler (and test SCI) for ACPI 2020-02-03 15:00:40 +02:00
Mark 9cc94a4d81 Add legacy PCI configuration space reading for ACPICA compat 2020-02-03 14:31:14 +02:00
Mark b6d2cfb9b3 Better cleanup of dead threads 2020-02-03 13:59:00 +02:00
Mark 32f51f53f0 Backport USB driver + UHCI 2020-02-03 13:40:03 +02:00
Mark e342c62882 Thread cleanup stub 2020-02-03 13:24:52 +02:00
Mark 68a7241a87 reboot() system call 2020-02-03 13:10:46 +02:00
Mark fbdb44b71d Backport ext2 2020-02-03 12:56:53 +02:00
Mark bd023a1873 Console cursor 2020-02-03 12:49:57 +02:00
Mark 818e3d8825 Thread names 2020-02-03 12:47:28 +02:00
Mark 14805828b5 Backport sysfs and random 2020-02-03 12:39:53 +02:00
Mark 4269177c1a execve() arguments 2020-02-03 12:27:46 +02:00
Mark 086447914b brk() and readdir() system calls 2020-02-03 12:16:25 +02:00
Mark 5e23fc4f5c SIGINT from tty, process groups and waitpid() 2020-02-02 13:41:40 +02:00
Mark 6adf9468a4 Make kill() return 0 if sig == 0 and pid is valid 2020-02-01 22:14:56 +02:00
Mark d6ffd57afa Interruptible nanosleep() 2020-02-01 22:08:05 +02:00
Mark 0571a7f12a Bring back more previously available syscalls 2020-02-01 21:11:47 +02:00
Mark b23098c8f2 Add a bunch of headers (stubs) for compat, add getpid() 2020-02-01 00:05:41 +02:00
Mark 6089df1556 Global thread list, proper kill() implementation, proper signal entry in
sched
2020-01-31 23:35:46 +02:00
Mark 0df6daa87f Restructure source files 2020-01-31 22:57:38 +02:00
Mark 4e845d5d5e Backport more old code 2020-01-31 22:18:29 +02:00
Mark 93c8fc0b77 Make sigenter-stored RSP per-thread attribute 2020-01-31 17:25:04 +02:00
Mark f00b5127b9 Cleanup a bit 2020-01-31 17:20:30 +02:00
Mark cb24171e79 Signal entry/exit works (crude) 2020-01-31 16:34:17 +02:00
Mark a5ce69c077 Restore RSP0 properly on syscall exit 2020-01-31 15:20:49 +02:00
Mark cf9c511ff3 Added I/O syscalls (read/write) and ring reading 2020-01-31 11:44:47 +02:00
Mark 6c9949c2af Thread hierarchy, debugging cycles 2020-01-31 10:42:37 +02:00
Mark 69fd9cb6ce Add vfs to it 2020-01-30 20:10:07 +02:00
Mark 5e7dd1f4ed Add sleep, fix NX bit appearing in addresses 2020-01-30 18:10:54 +02:00
Mark f7b337ecd5 Prettify syscalls 2020-01-30 17:41:33 +02:00
Mark cbb39f9d77 Add basic userspace binary execution (ported from older kernel) 2020-01-30 17:29:40 +02:00
Mark f262f9ab6d Remove magic offsets, make thread_current an attribute of cpu 2020-01-30 15:55:19 +02:00
Mark e76f30b6bc Remove testing tasks 2020-01-30 15:45:54 +02:00
Mark e718112e72 Move files a bit, add sys_exit 2020-01-30 15:43:41 +02:00
Mark df4eeefc8f Userspace exec() 2020-01-30 15:16:13 +02:00
Mark 3b4c461c85 Merge thread_init 2020-01-30 14:51:57 +02:00
Mark 8f7d5071e6 Userspace fork seems to work 2020-01-30 14:32:08 +02:00
Mark 1e631fc03a Well, seems to work 2020-01-30 13:24:00 +02:00
Mark fd374087b0 Thread queueing/unqueuing 2020-01-30 12:40:58 +02:00
Mark 603a8064a3 Thread timer-based preemption 2020-01-30 12:07:15 +02:00
Mark 6e9de43a17 Testing sched 2020-01-30 12:00:25 +02:00
Mark 48764261ba Nuke most of the non-essential sources 2020-01-29 22:40:44 +02:00