Commit Graph

215 Commits

Author SHA1 Message Date
446965ff97 Add a reminder about GCC 2018-06-19 22:54:02 +02:00
fe27011d1b Mention amd64 support in the README 2018-06-19 22:53:43 +02:00
f51b2e67c9 Correct the path to the kernel 2018-06-19 22:52:31 +02:00
0297043898 Use the correct type to access the bus 2018-06-19 08:24:27 +02:00
77041ec310 Use uintptr_t for bus addresses
This currently drastically reduces the amount of compilation warnings.
2018-06-19 08:20:05 +02:00
ed2cf345c9 Introduce uintptr_t 2018-06-19 08:19:19 +02:00
572c821a6d Add missing prototype 2018-06-12 09:24:32 -04:00
a42b74fa4f Remove unused variable 2018-06-12 09:20:55 -04:00
df3398286b Include missing header <stdio.h> 2018-06-12 09:20:41 -04:00
6a1bae7da1 Create a separate file for the IDT on amd64 2018-06-11 18:15:54 -04:00
8db00b35a7 Register missing dependencies 2018-06-08 23:54:45 -04:00
d5516fa810 Buffer the output of the console until it is available 2018-06-08 12:09:26 -04:00
c208a2f427 Import strncpy() into the library 2018-06-08 12:08:26 -04:00
5fada57d6a Add driver names to ukConsole drivers 2018-06-08 11:33:50 -04:00
dd5fc89b1b Ignore more object files 2018-06-08 11:23:38 -04:00
64451ae791 Rework the bus attachment 2018-06-08 11:21:57 -04:00
0f4f39e067 Rework the bus drivers 2018-06-08 00:24:55 -04:00
bac9bd3bf2 Import strncmp() 2018-06-08 00:23:14 -04:00
ffdc7343f4 Import placeholders for free() and malloc() 2018-06-07 23:56:26 -04:00
8214751336 Import abs() for consistency
Since labs() and llabs() are already there, it only makes sense.
2018-06-07 23:56:26 -04:00
377f7b9b67 Rename _end to end
This matches the libc more closely.
2018-06-07 23:52:27 -04:00
01870ca892 Implement fprintf() 2018-06-07 17:02:44 -04:00
6d171d207d Align assembly operands 2018-06-07 11:53:39 -04:00
5b900d2c7c Simplify the userland kernel as well 2018-06-07 11:36:30 -04:00
58e0cad31a Simplify kernel code down to a userland lookalike 2018-06-07 11:35:01 -04:00
ba760161d8 Also build the UART console 2018-06-07 11:32:29 -04:00
cd15ac2ff9 Code cleanup 2018-06-07 11:28:51 -04:00
d1aaccd305 Fix output in the UART console 2018-06-07 11:28:51 -04:00
39f17996da Also provide NULL for envp and auxv 2018-06-07 11:28:51 -04:00
68665304fd Use anonymous labels 2018-06-07 11:28:51 -04:00
c500384fba Do not ask the kernel to load itself again 2018-06-07 11:28:51 -04:00
7cf4f96ff4 Constify 2018-06-07 11:28:51 -04:00
556142e0b5 Implement a placeholder for read() 2018-06-07 11:28:51 -04:00
87ce51d15e Default to three file descriptors opened 2018-06-07 11:28:51 -04:00
076b9bc577 Add support for setting the mode in serial consoles 2018-06-07 11:28:51 -04:00
355a4b613a Also pass envp and auxv to main() 2018-06-07 11:28:51 -04:00
ffdf050544 Allow the UART console to be loaded 2018-06-07 11:28:51 -04:00
a256aa9a66 Build the i386 kernel as PIE 2018-06-07 11:28:51 -04:00
ad22b10aa3 Clarify that reaching the bootloader means failure 2018-06-07 11:28:51 -04:00
91cde21c72 Pass the command line over to the bootloader 2018-06-07 11:28:51 -04:00
8f959e7569 Perform relocations relative to the existing address
This helps support relocations with Elf_Rel and embedded addend values.
2018-06-07 11:28:51 -04:00
95a5f15947 Register more dependencies 2018-06-07 11:28:51 -04:00
fd88fad441 Restore the stack state after calls as expected 2018-06-07 11:28:51 -04:00
9535d422c6 Import a driver for the console on serial ports 2018-06-07 11:28:51 -04:00
9a1d3ccdf7 Code cleanup 2018-06-07 11:28:51 -04:00
b508738c45 Link the kernel and loader with libgcc
It is currently required for a division.
2018-06-07 11:28:51 -04:00
64b0ad3526 Build the kernel as a shared library
This is probably more right - especially considering it should work like
a module.
2018-06-07 11:28:51 -04:00
21470a46af Work on relocations 2018-06-07 11:28:51 -04:00
6d687d0959 Verify if the target symbol is valid 2018-06-07 11:28:51 -04:00
3c70509368 Fixing chaining Multiboot support to the kernel
This still requires removing the kernel itself from the list of modules.
2018-06-07 11:28:51 -04:00