Commit graph

3660 commits

Author SHA1 Message Date
Jeremy Soller
5588c38178 Add syscall handler, still work in progress
Add elf files
2016-08-18 19:44:31 -06:00
Jeremy Soller
71a17070b1 Remove clone from context 2016-08-18 09:02:31 -06:00
Jeremy Soller
490dd16776 Refactor context list 2016-08-18 08:30:45 -06:00
Jeremy Soller
2de2d4cac4 Cleanup schemes list, remove lazy_static 2016-08-18 08:10:08 -06:00
Jeremy Soller
0693540a5b Prepare for higher half - map entire lower 4 GB 2016-08-18 07:56:47 -06:00
Jeremy Soller
8ddddcec9f Print out more useful information about AP and BSP, create kmain_ap 2016-08-17 19:38:04 -06:00
Jeremy Soller
0d995bfb5c Keep track of AP count, allocate bigger AP stack, stack trace function 2016-08-17 19:34:33 -06:00
Jeremy Soller
26c86f8242 Set page table of AP to BSP, to allow mapping of heap to be shared 2016-08-17 19:06:33 -06:00
Jeremy Soller
48741e3b99 Do not map heap on AP, due to it being independent from the BSP heap. We need to adjust the mapping so that kernel mappings are shared accross processors, probably using higher half mapping for the kernel 2016-08-17 17:46:56 -06:00
Jeremy Soller
ec1302bbe1 Remove debugging 2016-08-17 17:41:42 -06:00
Jeremy Soller
b0797a5d8a Allocate a very small 4K stack for the other CPUs, increase count to 4 2016-08-17 17:40:18 -06:00
Jeremy Soller
979d80a8c7 Fix locking in serial port 2016-08-17 17:24:10 -06:00
Jeremy Soller
b756dd59eb Remove warnings 2016-08-17 16:54:48 -06:00
Jeremy Soller
78432b3875 Move frame allocation to two global functions, locking happens inside them 2016-08-17 16:26:43 -06:00
Jeremy Soller
ebf9766ef5 Map kernel in AP, WIP 2016-08-17 15:47:54 -06:00
Jeremy Soller
27d5996abf Get the APs into rust code, set stack and page table in trampoline 2016-08-16 21:25:48 -06:00
Jeremy Soller
a8948fb246 Hooks to get the other CPUs into long mode 2016-08-16 20:37:38 -06:00
Jeremy Soller
08900d56c8 Changes to allow for detection and init of ASPs 2016-08-16 18:04:15 -06:00
Jeremy Soller
7b2acdd79c Cleanup ACPI code, find lower tables 2016-08-16 12:16:32 -06:00
Jeremy Soller
d383cfb595 Lazy static init of schemes 2016-08-16 11:04:14 -06:00
Jeremy Soller
7a1c263bc1 WIP: ACPI
Map and find ACPI tables, starting with RSDT
2016-08-15 18:37:58 -06:00
Jeremy Soller
fda1ab2327 Global allocator, page table - protected by spinlock 2016-08-15 16:29:54 -06:00
Jeremy Soller
617516b949 Move main to start 2016-08-15 15:32:33 -06:00
Jeremy Soller
0c5221425b Remove bump allocator 2016-08-15 15:29:28 -06:00
Jeremy Soller
eccb99d67d Use linked list allocator 2016-08-15 15:27:32 -06:00
Jeremy Soller
792ef0b3d2 Move heap, make it larger 2016-08-15 15:20:27 -06:00
Jeremy Soller
854ffaa435 Correct dependencies of kernel 2016-08-15 15:12:47 -06:00
Jeremy Soller
2a66a84a50 Cleanup, use spinlock for allocator 2016-08-15 15:01:24 -06:00
Jeremy Soller
cc8fe85e6a GDT and IDT in kernel space
Paging constructs completed, remap kernel before jumping to kmain
Panic will do a stack trace
Remove SSE from none target
2016-08-15 14:34:20 -06:00
Jeremy Soller
465363f0a1 Add simple paging, use rust libcore and compile without sse 2016-08-15 11:30:14 -06:00
Jeremy Soller
9f0819dafb Bump allocator 2016-08-14 22:05:32 -06:00
Jeremy Soller
19077d69db WIP: Schemes 2016-08-14 21:38:32 -06:00
Jeremy Soller
8a6d9b8c9d Test for BadFile 2016-08-14 19:17:55 -06:00
Jeremy Soller
d97e2e4b4a Add stdout/stderr tests 2016-08-14 18:22:50 -06:00
Jeremy Soller
4e270bb807 Add context and file structs 2016-08-14 18:16:56 -06:00
Jeremy Soller
49739d47e8 WIP: Exec 2016-08-14 16:07:41 -06:00
Jeremy Soller
a490ff13ae Add syscall module 2016-08-14 15:58:35 -06:00
Jeremy Soller
29b6544d8f Add test architecture 2016-08-14 14:59:18 -06:00
ticki
1c9b6361c9 Merge branch 'master' of github.com:redox-os/kernel 2016-08-14 20:55:19 +02:00
ticki
740aabad90 Interrupt tables.
We add lookup table for interrupt descriptions containing information
about the CPU exceptions etc.
2016-08-14 20:54:23 +02:00
Jeremy Soller
ef22aafb60 Add comment 2016-08-14 12:11:53 -06:00
Jeremy Soller
b130f9a860 Magic to make interrupt functions easy to write 2016-08-14 12:08:42 -06:00
Jeremy Soller
2730144e2a Move arch to seperate crate 2016-08-14 11:45:47 -06:00
ticki
3967c0f291 Strongly typed virtual/physical memory seperation.
This minicommit introduces two newtpyes, `Physical` and `Virtual`,
respectively. These serves as a way to segregate the different forms of
addresses to avoid the issues we had in the old kernel.
2016-08-14 19:21:21 +02:00
ticki
f8bd171efd Rename the src directory to kernel. 2016-08-14 18:42:32 +02:00
ticki
7b8ba1a118 Convert the Makefile to Cake.
This has been planned for a while.
2016-08-14 18:40:34 +02:00
ticki
938b1a73a4 Implement Default for TSS.
- Some documentation.
2016-08-14 18:10:28 +02:00
Jeremy Soller
42c9ba12dc Remove interrupt setup from asm bootloader, add io module, memcpy functions, and serial driver 2016-08-14 09:31:35 -06:00
Jeremy Soller
799b77d11a Interrupt handling! 2016-08-13 19:08:40 -06:00
Jeremy Soller
dea137be73 WIP: IDT in rust 2016-08-13 18:58:31 -06:00