Commit graph

658 commits

Author SHA1 Message Date
e740cf265e removed obsolete heap_{start,end} from task_t 2014-01-28 11:13:57 +01:00
c6d5656c63 moved list_fs() dump routine to fs/ and improved output 2014-01-28 11:10:54 +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
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
494ee1299a unified and extended pagefault exception handler
some cleanup
2014-01-09 13:32:00 +01:00
3f63d80b9c fixed some compiler warnings 2013-11-26 17:18:47 +01:00
9018781eee replaced old kfree() calls with new signature 2013-11-20 14:11:19 +01:00
0153fb538d removed old kmalloc() 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
71f55f0a89 ported userspace tasks to new VMA implementation (untested!) 2013-11-20 13:19:58 +01:00
76e52aa473 time is precious... 2013-11-20 12:06:53 +01:00
aa1730919e standardized comment format and code cleanup 2013-11-20 12:03:24 +01:00
fca96e9851 unified paging preprocessor #defines and naming scheme 2013-10-24 12:36:05 +02:00
Steffen Vogel
9b47b3ef45 refactored paging code to be more universial and suitable for 64bit paging 2013-10-16 17:50:37 +02:00
2f2dd1d3c7 added some comments 2013-10-10 11:48:00 +02:00
Marian Ohligs
e6ea52bc42 remove memory leak 2012-10-04 17:20:38 +02:00
Marian Ohligs
1f53f2d5ae disable all lines to fix a memory leak causing a page fault. 2012-09-16 17:32:09 +02:00
Marian Ohligs
78ded06efa test 2012-09-12 23:20:27 +02:00
Marian Ohligs
7d043bee07 increase readability 2012-09-12 18:02:27 +02:00
Marian Ohligs
0a29c633ad remove memory leak 2012-09-12 15:42:07 +02:00
Stefan Lankes
2f64a5c772 replace tcpip_input by ethernet_input/ip_input
All MetalSVM drivers guarantee that the input function will be called in the context of the tcpip thread.
Therefore, we are able to use ethernet_input/ip_input instead of tcpip_input
2012-09-11 10:36:29 +02:00
Stefan Lankes
bffaf0bd57 on x64, disable the option to create user-level tasks 2012-09-10 15:39:51 +02:00
Stefan Lankes
e1c3ddbc8d use irqsave page directory lock to avoid deadlocks 2012-09-10 13:41:00 +02:00
Stefan Lankes
5dd40e8978 some code cleanups 2012-08-01 14:52:31 +02:00
Stefan Lankes
31949d82d1 enable the support of the Intel's E1000 NIC 2012-07-26 09:13:42 +02:00
Stefan Lankes
7f7dd4585f add the support of ELF64 2012-07-22 20:12:24 +02:00
Stefan Lankes
edadf16d7f Merge branch 'master' into readwrite 2012-07-20 09:05:57 +02:00
Stefan Lankes
4775e5e11e use static stacks only for the idle tasks
=> all other stacks will be created on demand
2012-07-19 22:07:59 +02:00
Stefan Lankes
da1d85cfd2 remove obsolete break condition 2012-07-19 00:25:16 +02:00
Stefan Lankes
837bc3ebe1 add config file tests.h, which specifies the starting apps 2012-07-16 21:55:42 +02:00
Stefan Lankes
7082d0650f add new functions to start tasks on a specific core 2012-07-16 21:53:41 +02:00
Stefan Lankes
4255cc0a6b add SCC-related stuff to support the tickless kernel 2012-07-03 10:58:20 -07:00
Stefan Lankes
24914fcb4f add prototype of a tickless kernel
only by entering the kernel, the tick counter will be updated
=> by using this feature, MetalSVM supports only LwIP's raw interface,
   because we have no guarantee that the tcpip thread will get computation time
=> no NETCONN & BSD socket support
=> no load balancing support
2012-07-03 16:46:54 +02:00
Stefan Lankes
e8ec97923f remove typo 2012-06-11 17:41:04 +02:00
Stefan Lankes
c2935e2f66 remove "unsecure" usage of get_page in page_init 2012-06-10 11:53:33 +02:00
Stefan Lankes
227cc19890 add alpha version of x64 support
New features:
- support of kernel tasks in 64bit mode
- support of LwIP in 64bit mode

Missing features in 64bit mode
- user-level support
- APIC support => SMP support

To create a 64bit version of the MetalSVM kernel, the compiler flags “-m64 -mno-red-zone” and the assembler flags “-felf64” has to be used. Please use qemu-system-x86_64 as test platform.

Notice, metalsvm.elf is a 32bit ELF file. However, it contains (beside the startup code) only 64bit code. This is required because GRUB doesn’t boot 64bit ELF kernels. Therefore, for disassembling via objdump the flag  “-M x86-64” has to be used.
2012-06-10 08:05:24 +02:00
Stefan Lankes
ed2186ee03 add init code, which jumps to 64bit mode and and calls main 2012-05-29 20:47:45 +02:00
Stefan Lankes
d21e707024 Merge remote-tracking branch 'origin/master' into x64_new 2012-05-24 12:05:14 +02:00
Stefan Lankes
45313d47f2 add build environment for 64bit code
=> environment build 64bit kernel, but the kernel is not tested!
=> work in progess
2012-05-24 10:49:45 +02:00
Stefan Lankes
3d1facb657 Merge branch 'sw_switch' 2012-05-23 11:21:38 -07:00
Marian Ohligs
884dd08641 fix memory leak 2012-05-22 13:24:00 +02:00
Stefan Lankes
b9b962ea73 revise software multitasking
=> remove hardware multitasking
2012-05-21 15:04:05 +02:00
Stefan Lankes
b39a84e07f Merge remote-tracking branch 'origin/ctx_switch' into x64_new 2012-05-17 14:45:34 +02:00
Stefan Lankes
ee4e23bff0 Merge branch 'master' into experiments 2012-04-24 00:38:42 -07:00
Jacek Galowicz
9b36a72f5f Wrote a benchmark for measuring the context switch time. 2012-04-15 19:40:51 +02:00
Jacek Galowicz
0984eb593f Commented everything 2012-04-14 09:57:18 +02:00
Jacek Galowicz
f4a7d6bd3a The context is now switched by software.
- Cleanup to be done
- Arch_fork does NOT work in this state
- Multiprocessing support not yet implemented
2012-04-14 00:34:09 +02:00
Stefan Lankes
8ec1d0e817 fix deadlock in load_balancing 2012-02-24 06:47:41 +01:00