Stefan Lankes
2cd1580fce
move the qemu demo to the subdirectory hermit
2015-08-31 11:55:41 +02:00
Stefan Lankes
383aba6fbd
avoid the using of MSR because an MSR access is slow
2015-08-30 22:05:06 +02:00
Stefan Lankes
2d23863d13
some code cleanups
2015-08-28 23:26:33 +02:00
Stefan Lankes
bc277cb481
some code cleanups
2015-08-28 23:15:17 +02:00
Stefan Lankes
84deb1a261
switch back to rdtsc
...
- no all emulators supports rdtscp
2015-08-28 23:07:03 +02:00
Stefan Lankes
f520c0ca56
remove obsolte debug message
2015-08-28 22:51:18 +02:00
Stefan Lankes
5e3d7a81da
switch back to rdtsc
...
- no all emulators supports rdtscp
2015-08-28 22:45:38 +02:00
Stefan Lankes
a6e81226d2
specifiy the TLS model via compiler flag
2015-08-28 17:41:45 +02:00
Stefan Lankes
89fc8847c3
use static variables for the TLS
2015-08-28 17:38:58 +02:00
Stefan Lankes
1c09232784
protect tick counter by a lock
...
every core should determine the tick counter => lock is required to
protect the counter
2015-08-28 17:36:11 +02:00
Stefan Lankes
68bac65eef
set FS register to 0 if no TLS is needed
2015-08-28 17:34:33 +02:00
Stefan Lankes
b325b8de18
add some debug messages
2015-08-28 08:02:39 +02:00
Stefan Lankes
7b54dca40f
set task to invalid after freeing of all allocated data
2015-08-28 08:00:54 +02:00
Stefan Lankes
2a55eb781b
use kernel_stack and kernel_end to determine the size of the kernel
2015-08-28 07:59:02 +02:00
Stefan Lankes
a48e28f88f
set present bit in the PML4 entries
2015-08-28 07:56:56 +02:00
Stefan Lankes
987ea13265
create a seperate stack for interrupts
2015-08-28 07:55:49 +02:00
Stefan Lankes
6c707f6595
remove user-level permissions in the boot pdpt & pgd
...
=> new tasks don't copy the kernel entries
2015-08-28 07:53:02 +02:00
Stefan Lankes
5a7cb4e4e0
Using memor clobber for serialization
...
Volatile isn't enough to prevent the compiler from reordering the
read/write functions for the control registers and messing everything
up. => We use a memory clobber to serialize the code.
2015-08-28 07:40:44 +02:00
Stefan Lankes
64e0357ea0
use the new IPI number to trigger a TLB shootdown
2015-08-26 09:10:02 +02:00
Stefan Lankes
0e579d1aec
for the registeration of cpu, the apic id is required
...
=> use apic_cpu_id to determine id
2015-08-26 09:06:39 +02:00
Stefan Lankes
1aeda86d90
remove obsolte file
2015-08-26 00:19:18 +02:00
Stefan Lankes
4805e62467
use generic numbers for the IPIs (shutdown, TLB shootdown)
2015-08-20 14:15:52 +02:00
Stefan Lankes
a04bde011f
add the support to shutdown HermitCore
2015-08-20 13:03:54 +02:00
Stefan Lankes
5d2d317e34
add one byte to the buffer of the kernel messages
...
- guarantees that at least one byte contains the end of string character
2015-08-19 23:17:58 +02:00
Stefan Lankes
fc790b44ca
add the possibility to map more than 2 MB byte into the boot page table
...
- this feature is required for larger images
- however, the image should be smaller than 1020 MB (=510*2 MB)
2015-08-19 23:13:57 +02:00
Stefan Lankes
98a09ede87
enable lto, rename example file
2015-08-19 07:35:29 +02:00
Stefan Lankes
21ab90dcbd
add C++ support
2015-08-18 22:00:38 +02:00
Stefan Lankes
8cccb0cee4
Merge branch 'master' of github.com:RWTH-OS/HermitCore
2015-08-18 09:15:50 +02:00
Stefan Lankes
d80e444998
add current demo configuration
...
- used to configure a minimal test kernel
2015-08-18 09:14:28 +02:00
Stefan Lankes
35f27afba0
Remove typo
2015-08-18 00:16:28 +02:00
Stefan Lankes
d117d351ae
intialize pthread library via pthread_init
2015-08-17 23:58:04 +02:00
Stefan Lankes
8f723584ac
remove typo
2015-08-17 23:03:40 +02:00
Stefan Lankes
bf3c9258b9
add missing data segemnet for 32bit applications
2015-08-17 17:07:34 +02:00
Stefan Lankes
462c6c4a24
remove obsolete flag -ftls-model=initial-exec
2015-08-17 15:05:54 +02:00
Stefan Lankes
eafdc290c2
some code cleanups
2015-08-17 13:51:23 +02:00
Stefan Lankes
7ee756ada3
remove obsolete flag -ftls-model=initial-exec
2015-08-17 13:00:25 +02:00
Stefan Lankes
91682c7cac
some code cleanups
2015-08-17 12:59:39 +02:00
Stefan Lankes
f302750ddc
resuing of newlib's impure_ptr for the main thread
2015-08-17 12:58:02 +02:00
Stefan Lankes
9d23a19de9
add some debug messages
2015-08-17 12:55:02 +02:00
Stefan Lankes
88890ebfb6
prepare kernel to support canceled wait for a semaphore
2015-08-17 12:53:20 +02:00
Stefan Lankes
213e4518d1
frees the memory of a finished task after the switch to the next task
2015-08-17 12:51:39 +02:00
Stefan Lankes
b8ecff4e4d
remove typo
2015-08-17 12:49:33 +02:00
Stefan Lankes
03111d7ef1
dump all registers by an unhandled page fault
2015-08-17 12:47:46 +02:00
Stefan Lankes
9c272ba688
some code cleanups
2015-08-17 12:46:17 +02:00
Stefan Lankes
2d11d94940
remove obsolete line
2015-08-17 12:39:25 +02:00
Stefan Lankes
d57181f84a
add some comments, fix stack missalignment
2015-08-14 21:06:16 +02:00
Stefan Lankes
62d6cd53aa
add some notes to the list of TODOs
2015-08-13 22:28:43 +02:00
Stefan Lankes
919d1d14aa
revise APIC code, add rdtscp support
...
- fix bug by a TLB shoot down
- fix bug in x2APIC code, read APIC ID correctly
2015-08-13 22:26:04 +02:00
Stefan Lankes
ea68816194
dump also the CORE_ID by an exception
2015-08-13 22:23:50 +02:00
Stefan Lankes
b1c6daea27
ignore static libraries
2015-08-12 23:16:26 +02:00