josh
|
0c78e21e14
|
added STACK_INITIAL_SIZE to control the number of initial stack pages; added BUILD_BUG_ON() macro to catch compile-time errors
git-svn-id: svn://anubis/hos/trunk@88 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-22 19:35:43 +00:00 |
|
josh
|
53407d7b59
|
rearranged slightly
git-svn-id: svn://anubis/hos/trunk@87 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-22 18:19:20 +00:00 |
|
josh
|
cdea1602d5
|
added bochs target to Makefile
git-svn-id: svn://anubis/hos/trunk@86 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-22 18:19:17 +00:00 |
|
josh
|
b6bebfd9b4
|
removed debug print
git-svn-id: svn://anubis/hos/trunk@85 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-14 15:54:16 +00:00 |
|
josh
|
1be6e37961
|
thanks to bug found by Nick - fixed mmap traversal and size calculation
git-svn-id: svn://anubis/hos/trunk@84 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-14 15:43:49 +00:00 |
|
josh
|
85c5a26631
|
removed erroneous offset by four when calculating address of mmap structure from bootloader
git-svn-id: svn://anubis/hos/trunk@83 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-14 04:23:26 +00:00 |
|
josh
|
eb2dd3b1ad
|
updated start symbol comment
git-svn-id: svn://anubis/hos/trunk@82 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-07 19:14:34 +00:00 |
|
josh
|
6cd78f195f
|
changed kernel stack top to 0x40000000 (1GB) virtual
git-svn-id: svn://anubis/hos/trunk@81 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-07 15:56:53 +00:00 |
|
josh
|
e4701b8d96
|
merged in removing-assembly branch to do more in C
git-svn-id: svn://anubis/hos/trunk@80 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-07 15:38:15 +00:00 |
|
josh
|
76ac4f88a4
|
set virtual offset to 0x0, kernel now runs in qemu / VirtualBox
git-svn-id: svn://anubis/hos/trunk@73 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-06 05:37:04 +00:00 |
|
josh
|
f6e71b9891
|
minor Makefile improvements
git-svn-id: svn://anubis/hos/trunk@72 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-06 05:04:59 +00:00 |
|
josh
|
cf7287d368
|
removed multiboot kludge; using ELF kernel with different virtual and load addresses
git-svn-id: svn://anubis/hos/trunk@71 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-06 05:02:32 +00:00 |
|
josh
|
44c6bac2af
|
added util folder with build script for i586-elf target cross-compiler
git-svn-id: svn://anubis/hos/trunk@70 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2010-01-02 02:10:20 +00:00 |
|
josh
|
bc7064e92a
|
got interrupts working, added sys/{pic,timer,cpu} modules, ready to work on multitasking
git-svn-id: svn://anubis/hos/trunk@69 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-29 22:30:52 +00:00 |
|
josh
|
2c5a5d7093
|
moved gdtr_t definition from mm.h to hos_types.h
git-svn-id: svn://anubis/hos/trunk@68 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-24 17:05:11 +00:00 |
|
josh
|
ddd8c9fd71
|
split mm_map() and mm_page_alloc() into regular and "early" versions (mm_early_map() and mm_early_page_alloc()); removed mm_use_virtual_offset flag
git-svn-id: svn://anubis/hos/trunk@67 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-24 14:51:23 +00:00 |
|
josh
|
d7be0159c9
|
created /kernel/isr subdir, moved isr.asm from boot to isr module, added interrupts.cc for isr() main function and isr_bootstrap() routine
git-svn-id: svn://anubis/hos/trunk@66 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-24 14:19:31 +00:00 |
|
josh
|
d352afd079
|
added int_stack_t type in hos_types.h for interrupt stack access
git-svn-id: svn://anubis/hos/trunk@65 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-24 14:02:11 +00:00 |
|
josh
|
1105e6e203
|
optimized isr.asm a bit
git-svn-id: svn://anubis/hos/trunk@64 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-24 13:50:29 +00:00 |
|
josh
|
339eef5976
|
build process generating assembly list files for .asm sources; ignoring .lst files in /kernel/boot
git-svn-id: svn://anubis/hos/trunk@63 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-23 22:03:57 +00:00 |
|
josh
|
6a75fdfc10
|
Added isr.asm with 50 isr_%d labels defined, ready to call isr()
git-svn-id: svn://anubis/hos/trunk@62 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-23 22:02:11 +00:00 |
|
josh
|
2f810cc2ec
|
Reduced grub timeout in menu.lst
git-svn-id: svn://anubis/hos/trunk@61 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-22 21:00:18 +00:00 |
|
josh
|
63289deade
|
updated include/portio.h to not use gcc-specific "statement blocks" but instead have inportX() be static inline functions. Verified that the compiler does in fact inline them
git-svn-id: svn://anubis/hos/trunk@60 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-20 19:21:20 +00:00 |
|
josh
|
e70b1a5213
|
removed special cases for formatting of lowest signed values due to Corrin' rationale; fixed formatting routines to handle formatting "0" values
git-svn-id: svn://anubis/hos/trunk@59 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-20 19:10:54 +00:00 |
|
josh
|
c21caccb1f
|
printing memory map, used pages, and free pages on boot
git-svn-id: svn://anubis/hos/trunk@58 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-16 00:05:44 +00:00 |
|
josh
|
fd02ee26e1
|
added kputs_pad(); implemented padding in kprintf(); put some padding tests in k_main()
git-svn-id: svn://anubis/hos/trunk@57 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-15 14:53:58 +00:00 |
|
josh
|
ecd74fe35b
|
starting kio change
git-svn-id: svn://anubis/hos/trunk@56 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-15 02:47:46 +00:00 |
|
josh
|
08af04897c
|
added include/portio.h; using it to update cursor position in kputc()
git-svn-id: svn://anubis/hos/trunk@55 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-14 20:37:10 +00:00 |
|
josh
|
1dd8250048
|
moved call to stack_bootstrap() into mm_bootstrap() since stack_bootstrap() relies on calling mm_map() and mm_use_virtual_offset was getting unset at the end of mm_bootstrap(); calling k_main() now works!
git-svn-id: svn://anubis/hos/trunk@54 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-14 16:08:06 +00:00 |
|
josh
|
118021a0f6
|
added Makefile commands to build a binary and an ELF kernel and do disassemble the ELF version
git-svn-id: svn://anubis/hos/trunk@53 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-14 13:50:29 +00:00 |
|
josh
|
bf9c7d74eb
|
added mm/stack module; initializing "permanent" stack for kernel use while paging, crashing when calling k_main() though...
git-svn-id: svn://anubis/hos/trunk@52 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-14 13:31:08 +00:00 |
|
josh
|
cf2d28f5ce
|
added k_main.cc, need to set up a stack before calling k_main()
git-svn-id: svn://anubis/hos/trunk@51 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-14 03:34:16 +00:00 |
|
josh
|
594625b0fa
|
changed lgdt instruction to load from linear address instead of physical address for [mm_gdtr]
git-svn-id: svn://anubis/hos/trunk@50 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-14 00:26:40 +00:00 |
|
josh
|
df719b4281
|
added code to reset segmentation and enable paging; added fmt_xl2a() in kio; added debug prints in k_bootstrap() since kernel is crashing when trying to enable paging
git-svn-id: svn://anubis/hos/trunk@49 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-13 22:58:48 +00:00 |
|
josh
|
0fb590a407
|
changed kio routines to accept const char *; added MAKE_DESCRIPTOR() macro to mm
git-svn-id: svn://anubis/hos/trunk@48 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-13 22:38:53 +00:00 |
|
josh
|
5b9651299e
|
fixed a few formatting and string bugs, kprintf() working when called during bootstrapping!
git-svn-id: svn://anubis/hos/trunk@47 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-13 21:54:27 +00:00 |
|
josh
|
a4d497544e
|
added memcpy{,w,d}(), memset{,w,d}(); filled in kputc()
git-svn-id: svn://anubis/hos/trunk@46 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-13 21:42:18 +00:00 |
|
josh
|
6a69fd06ec
|
filled in a few more formatting routines; linking with libgcc.a to work with 64-bit unsigned integer division/modulus
git-svn-id: svn://anubis/hos/trunk@45 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-13 20:08:16 +00:00 |
|
josh
|
6a8c7431ff
|
hos_defines.h should include hos_types.h first
git-svn-id: svn://anubis/hos/trunk@44 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-13 17:15:39 +00:00 |
|
josh
|
be17cde305
|
added devices and lang directories, added skeleton kio and string modules
git-svn-id: svn://anubis/hos/trunk@43 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-13 15:34:39 +00:00 |
|
josh
|
1aace858da
|
Moved page_directory from an allocated object to a pointer to a run-time allocated page of RAM
git-svn-id: svn://anubis/hos/trunk@42 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-06 21:48:04 +00:00 |
|
josh
|
784978b131
|
boot.asm comments
git-svn-id: svn://anubis/hos/trunk@41 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-05 16:38:47 +00:00 |
|
josh
|
54b42c0226
|
added set_cr3() macro and called it to set the PDBR
git-svn-id: svn://anubis/hos/trunk@40 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-04 00:22:18 +00:00 |
|
josh
|
e55f2cdfc4
|
mapping in kernel virtual address space
git-svn-id: svn://anubis/hos/trunk@39 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-03 20:48:51 +00:00 |
|
josh
|
edb1a6426d
|
minor mm.cc comment changes
git-svn-id: svn://anubis/hos/trunk@38 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-02 19:26:52 +00:00 |
|
josh
|
f07e34c849
|
updated link script to pack things better
git-svn-id: svn://anubis/hos/trunk@37 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-02 03:43:44 +00:00 |
|
josh
|
e907902ca0
|
changed mm functions to C++ linkage
git-svn-id: svn://anubis/hos/trunk@36 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-02 03:35:24 +00:00 |
|
josh
|
a8947f8aa3
|
added mm_map() to map addresses and mm_page_alloc() to allocate physical pages
git-svn-id: svn://anubis/hos/trunk@35 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-02 03:28:25 +00:00 |
|
josh
|
2bddc1d428
|
filled out more of mm_bootstrap() including initializing the free page linked list
git-svn-id: svn://anubis/hos/trunk@34 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-02 01:09:09 +00:00 |
|
josh
|
bfb4f3bdd0
|
changed k_bootstrap from C to C++ source file
git-svn-id: svn://anubis/hos/trunk@33 5b3e749e-e535-0410-8002-a9bb6afbdfca
|
2009-07-01 21:17:24 +00:00 |
|