Age | Commit message (Collapse) | Author |
|
Actually install the ISR handlers to the IDT.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Remove the irq number from the irq handler. This information is already
stored in the ISR frame structure.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Call the page fault handler when a page fault occurs instead of just
dumping the registers and halting.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add a infinite while loop just in case the "hlt" instruction fails.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Remove several preprocessor macros that serve no purpose and pollute the
source file.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Perform some initialization routines on the TSS structure before loading
its address.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Define the load_page_dir and enable_paging functions in assembly. This
allows normal C code to initialize the CR3 register and control paging
without using inline assembler.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Move the initial C entry-point to its own file. Call all the i386
specific initialization routines from the new i386_entry function.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Fix several small bugs in assembler.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
The serial_writestring function is small enough and platform-agnostic,
and therefore it should be moved into the main serial header and marked
as inline.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
The x86 system call/interrupt handlers should be refactored to be more
readable.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
The CC variable is already defined by the make program, so use "CC:="
instead of "CC?=". This makes sure the proper cross compiler is in use.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Move all files not needed for the bootstrap process out of boot and into
the main x86 source directory.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Make the inline assembly calls consistent across different i386 files.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add support for rudementary system calls and IRQ interrupts.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Simplify the setup and definitions of GDT/TSS entries.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add targets to perform a test run and debug run inside a VM.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Simplify the interrupt descriptor table setup and frame assembly.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add support for the tab character in the virtual terminal.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Rename the array/pointer to the GDT array in gdt.c pointer to be a bit
clearer.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Include information about the current stack frame in the IDT handler(s).
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add functions that let the OS read the internal state registers of the
8259 PIC.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Fix the i386's general exception handler to actually work. Fix provided
by Jon Sanderson (jjs295356@gmail.com).
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Fix a bug in which the size of the main GDT array and the actual number
of descriptors are different values.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add support for the 8259 programmable interrupt controller.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Create files that add IDT support for i386.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Remove the '*.s' line from .gitignore. There are important assembler
files that should be in a distribution.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add the Developer's Certificate of Origin to the documentation
directory. This allows developers to keep their own copyright.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add two ring-3 segment discriptors to the GDT during gdt_install.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add parenthesis around the GDT setup macros. This is done to prevent
having to do it when using them.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add a set of routines that setup the x86's global descriptor table.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Move the start of the kernel image to the "higher half" of memory. This
also enables paging.
|
|
Add a 'k' prefix to the kernel versions of the printf family.
|
|
Clean up the Makefile to be more clear and readable.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add an include directive in the main Makefile that includes the
dependency files generated by GCC.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Fix wrong formatting in the project README file. Lists should have an
empty line proceeding them, otherwise the first element is italicized.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Fix a bug in which the architecture specific include directories are not
properly included in the main Makefile.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add a README to the root of the project. This will act as a point of
information to new users/developers.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add support for scrolling the terminal at the end of the VGA buffer.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add support for the newline character in the TTY layer.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add structure to the internals of the x86 directory.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add a function in the serial interface that writes an entire string to
the serial line.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Iterate over a formatted string with an index and strlen instead of
using a non-const pointer. The latter method may result in unsafe memory
conditions.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Keep const pointers const when casting from void to char.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
The function serial_init should not be declared as static. This function
could change under a different architecture and should be defined with
the target architecture.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add support for serial communication in the i386 architecture.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add a "_H" to the end of the include guards in tty.h.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Finish implementing the functions from string.h in string.c.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Remove the include to the tty layer in io.h.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Implement a basic printf function using primitives from the TTY library.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|