Initial commit
Implemented driver and interface for the SIC
Merged some source files and reorganized directory structure
Merged some source files and reorganized directory structure
Implemented most of the interrupt routines
Implemented enable_irq, disable_irq, and irq_init functions in interrupts.s
Implemented interrupts.s
Fixed irq_handler so that it does not call NULL function pointers
A lot of changes!

Removed the vic_pl190.c and sic.c drivers for the primary and secondary
interrupt controllers. Instead, implemented relevant functions in
interrupts.s
Made some changes in assembly code to avoid pipeline stalls
Fixed return value bug in sic_status routine; ISR handling should work
correctly now

Fixed vector table copying bug; vector table is now written properly
to address 0x0

Added debugging symbols for assembly source files and made some
changes to the qemu run scripts so that they show the display window
Added some symbols in the linker script to indicate start and end of
kernel memory
Added .align directives in assembly source to align functions and data
to word boundaries as this is a requirement for ARMv5 processors
Linker script now includes all sections in the .text section.
For some reason, the other sections do not load on the emulator.
This needs to be looked into as the fix is pretty hackish
Added a .stacks section in boot.s to store kernel stacks.
QEMU now starts with 128M of memory (which is the actualy amount of
memory on the physical versatile board) rather than 2M
Many many changes in this commit!

Reorganized directory structure
Moved copy_vectors function into interrupts.s source and renamed to
vectors_install
Added standard freestanding headers
Implemented kprintf, puts in kernutil.c
Added lib folder for self-implemented standard library functions and
other useful functions
Implemented uidivmod which computes quotient and remainder of two uints
Implemented strlen function
Implemented sprintf
Implemented vsprintf
Updated .gitignore
Fixed linker script so now it almost works like it should
Moved isr_table from data section to text section because data section
doesn't load for some odd reason
Removed -fpic compiler option
Worked some magic on the linker script so I am able to assign a ssymbol
with the end address of the kernel image
Just added sys/types.h which includes common type headers such as stdint.h stdbool.h & stddef.h.
Updated files to use sys/types.h
Added kassert macro
I am an idiot

Finally fixed the linker script...it was correct all along! I just
didn't know how to use GDB correctly
Moved kernel stacks to BSS
Moved isr_table array to BSS
Moved vector table to rodata section
Lots moar changes

Split kernutil.h into multiple files (kassert.h, kstdio.h, panic.h)
Split kernutil.c into kstdio.c and panic.c
Added source files for pmm (physical memory manager)
vsprintf now allows prepending 0x to a %p
Fixed error in interrupts.s code where a word was written to memory but
memory address was only incremented by 1; now incremented by 4
Changed cpu target to cortex-a8 in Makefile
Fixed up linker.ld to load kernel at 0x10000 but has virtual address
0xF0010000; also added linker symbolsvirtual & physical start and end addresses
Added cpu model (cortex-a8) in qemu scripts
Begun implementing _loader.s to setup virtual memory and load kernel at
virtual memory address 0xF0010000