Commit Graph

45 Commits

Author SHA1 Message Date
5cb95d816f long mode paging work 2019-04-30 17:11:26 -05:00
5020cfa3dd Remove magic breakpoint 2019-04-27 15:30:20 -05:00
83e1f27567 i386 moved to multiboot2 and x86_64 has physical memory manager 2019-04-27 15:03:31 -05:00
c6bca7f177 Add long mode IDT 2019-04-27 09:51:32 -05:00
fbef5710ed Long mode works!!! 2019-04-26 09:47:57 -05:00
e10fe99d05 Remove long mode env 2019-04-26 09:20:07 -05:00
ab2934be1b Long mode work 2019-04-26 08:45:37 -05:00
c75aa35e1b Long mode work 2019-04-25 15:46:48 -05:00
e51f3e4db2 Start work on x86_64 platform 2019-04-22 13:18:27 -05:00
8225e9d0cc Move linker scrript to cpu directory 2019-04-22 13:17:06 -05:00
c8bd8918cd Change pointer casts to uint32_t to char* 2019-04-22 08:48:13 -05:00
d8dade3fb3 Fix platform-specific makefile 2019-04-22 08:39:46 -05:00
d78e7743ce Fix warnings 2019-04-21 14:19:52 -05:00
e3fd4fd5e1 Fix warnings 2019-04-13 09:23:40 -05:00
edded2e3a1 Added errno 2019-04-08 15:58:30 -05:00
d5c21bd0ae Libc headers are now in a sysroot 2019-03-31 13:10:40 -05:00
a1267bd5b3 tasking_yield enables interrupts when switching to user mode 2019-03-26 17:52:08 -05:00
0c50e1eb8c Fixed interrupts using wrong stack
Tasks were running in kernel mode, so the tss stack was not being used.
Unfortunatley, I had to set kmalloc to user r/w so switchTask can save 
and load registers.
2019-03-24 14:25:32 -05:00
5618dd6834 Fixed reboot problem
STACK GROWS DOWN, NOT UP!
2019-03-24 13:42:00 -05:00
e1579b5f2a Yield now loads the address space 2019-03-23 11:14:59 -05:00
2b65782369 Tasks now have separate address spaces
When switchTask loads the stack, the next push intruction fails, but the 
stack can be manually accessed fine.
2019-03-23 10:35:11 -05:00
9caf48cb6d Kmalloc is now used to allocate task structures 2019-03-23 07:30:18 -05:00
5bca438d98 Add kmalloc 2019-03-23 07:30:00 -05:00
c1bbcaddee Virtual memory manager no longer returns NULL 2019-03-17 17:47:33 -05:00
afcd0b6580 Virtual memory manager can now create and load address spaces 2019-03-17 12:37:37 -05:00
bfc3964804 Memory allocation is now a syscall 2019-03-17 12:22:00 -05:00
d9252649d8 Physical memory manager now initialized in cpu_init 2019-03-17 12:21:23 -05:00
7d2a8b0894 IPC now uses void pointers 2019-03-15 18:53:50 -05:00
f2ebc5e31e More work 2019-03-12 17:26:19 -05:00
99d7fed783 Work and cleanup 2019-03-11 09:32:55 -05:00
7131f4ae5a Lots of work 2019-02-25 15:42:23 -06:00
9c5e5e91d0 Clear interrupt stack in yield sycall 2019-02-11 14:13:49 -06:00
d54a55aad0 Get sycalls working in usermode (And all interrupts) 2019-02-11 13:43:40 -06:00
b3e086e452 Add createTask syscall (Not working in umode) 2019-02-11 09:48:50 -06:00
4f25ff7a09 Add yield syscall (Not working in umode) 2019-02-11 09:47:28 -06:00
fdd7afa1c8 Add tasking (No usermode support) 2019-02-11 09:30:28 -06:00
cb16df6240 Usermode can now use ports! (IOPB test) 2019-02-10 18:09:07 -06:00
205950e974 Add page fault debug messages 2019-02-10 15:04:54 -06:00
a12c1281ff Usermode interupts working! 2019-02-10 15:03:59 -06:00
ee9839beaa Get GDT,IDT and usermode working! 2019-02-10 14:11:07 -06:00
0534ba86e6 Add usermode GDT entries 2019-02-10 13:19:04 -06:00
fe8ab7fb70 Initalize paging in cpu_init 2019-02-09 14:11:19 -06:00
0e3e4d4769 Add GDT initialization 2019-02-09 13:54:40 -06:00
a1ac07c79e Rename init_paging to paging_init 2019-02-09 13:05:13 -06:00
ef90f51688 Remove most code for a blank start 2019-02-09 12:52:45 -06:00