Commit graph

603 commits

Author SHA1 Message Date
1ce6a27fc5 applied some bugfixes from eduOS 2014-06-30 00:37:05 +02:00
7d756306cf removed more 32 bit only paging code which is broken anyway 2014-06-14 17:57:52 +02:00
4f5e2ce13b heading towards merging the 32/64 paging code 2014-05-14 18:56:15 +02:00
ff130c4538 moved VMA initialization of APIC and MultiProcessing related stuff to apic.c 2014-05-14 18:01:58 +02:00
44f6905e4d added missing vma region 2014-05-14 17:43:20 +02:00
6f5a7157bb rewrite of multiprocessing table parsing 2014-05-14 17:43:03 +02:00
8287ab79d3 fixed SMP with new paging code 2014-05-14 15:17:34 +02:00
1f641e440c simplified macros 2014-05-14 15:13:11 +02:00
c1e52dc8c2 updated PMC driver 2014-05-14 15:12:02 +02:00
d358a78e56 added comments and @author 2014-05-14 15:11:02 +02:00
9f7295672f fixed rdtsc on x86_64 (upper 32bits were missing) 2014-04-23 18:36:23 +02:00
cb26b6fe01 fixed typo 2014-04-22 16:59:54 +02:00
ab35409aac the LAPIC page should be marked as not executable 2014-04-15 16:57:03 +02:00
00127d06cf some cleanup 2014-04-15 16:28:02 +02:00
6bd2f64687 set PG_GLOBAL flag on pagetables
this leads to global self-mapped page tables
and therefore reduces to effect of TLB shootdowns.
2014-04-15 16:27:16 +02:00
273137f2e7 fixed sys_fork and sys_execve for new paging code 2014-02-18 13:12:19 +01:00
3203d53a83 another rewrite of the paging code without nested functions 2014-02-18 13:08:22 +01:00
61ec065da1 some smaller codestyle improvements 2014-02-18 13:03:52 +01:00
39bb5e8d56 fixed mapping for APIC and IOAPIC 2014-02-18 11:06:13 +01:00
eb0298fc2f moved some helper functions to page_helpers.h (mostly static inline address calculation) 2014-02-07 11:01:10 +01:00
d51237f3f2 fixed missing page map: Multiboot mmap_* fields are not required to be on the same page as the Multiboot info structure itself 2014-02-07 10:56:04 +01:00
93cfc43c55 fixed little bug in bit mask 2014-02-07 10:54:27 +01:00
0e6f7b1e32 added more exception names 2014-01-30 14:38:08 +01:00
a755ac5d5e implemented Performance Monitoring Counters and added a simple test benchmark 2014-01-30 14:36:22 +01:00
a3d621142a added paging and memory related CPUID feature flags 2014-01-28 11:09:00 +01:00
f0f3a6d4f6 added seperate x86 UART routines for HW debugging (115200 baud, 8N1) 2014-01-28 11:07:09 +01:00
5a20e0953f we do not need syncronization for virt_to_phys (atomic memory access) 2014-01-09 16:55:05 +01:00
af9bda06f8 renamed mmu.h to memory.h as its not related to the MMU and contains
prototypes for memory.c
2014-01-09 16:20:18 +01:00
d5f60ef542 fixed two smaller bugs and some compiler warnings 2014-01-09 16:12:13 +01:00
11977e40bc implemented userspace task loading and userpsace heap management with the new vma_list 2014-01-09 14:06:09 +01:00
a00177ec09 adapted c runtime and syscalls to x86-64 ABI calling convention 2014-01-09 14:04:02 +01:00
d7644300a8 code cleanup of task creation and some additions to the previous commit 2014-01-09 13:59:01 +01:00
ab67350783 thats a huge commit: reimplemented all remaining page map functions according to the new page_iterate() 2014-01-09 13:44:20 +01:00
269bffc208 unified comment fontcase 2014-01-09 13:41:22 +01:00
88a2e573c6 replaced old 32bit only page_copy by new generic one 2014-01-09 13:33:21 +01:00
494ee1299a unified and extended pagefault exception handler
some cleanup
2014-01-09 13:32:00 +01:00
d5ac6e6092 added macros for x86 control registers & some MSRs 2014-01-09 13:13:59 +01:00
066e29fde9 added NX bit support
renamed some CPP macros
2014-01-09 12:49:04 +01:00
c21ea42058 added page_dump() and page_stats() for testing and demonstration of page_iterate() 2013-12-03 16:40:14 +01:00
8fe165c162 added page_iterate(): a recursive page tree walker 2013-12-03 16:34:34 +01:00
4514080014 enable global pages for the kernelspace 2013-12-03 15:54:58 +01:00
fff2708c5a move page map setup to arch_paging_init() 2013-12-03 15:52:16 +01:00
443ffdf012 replaced PAGE_ALIGN macro by PAGE_CEIL, PAGE_FLOOR pair 2013-12-03 15:29:05 +01:00
2923b1a7ed cleanup of macros and comments, idention etc... 2013-12-03 15:26:21 +01:00
edf178f39a Merge branch 'vogel' into x64_paging 2013-11-26 17:25:53 +01:00
9018781eee replaced old kfree() calls with new signature 2013-11-20 14:11:19 +01:00
a972efe288 Merge branch 'vma_kernel' into vogel
Conflicts:
	kernel/tasks.c
2013-11-20 14:00:04 +01:00
9db28ec380 using PAGE_ALIGN macro to calc pages 2013-11-20 13:43:18 +01:00
de33962e9d removed old vm_alloc()/vm_free() which have been replaced by vma_alloc()/vma_free() 2013-11-20 13:22:09 +01:00
af5fa15d8d fixed possible wrap-around in tlb_flush functions 2013-11-20 12:04:55 +01:00