1
0
Fork 0
mirror of https://github.com/hermitcore/libhermit.git synced 2025-03-09 00:00:03 +01:00

Merge branch 'devel' of github.com:RWTH-OS/HermitCore into devel

This commit is contained in:
Stefan Lankes 2016-08-26 23:54:32 +02:00
commit 07511f08c3
4 changed files with 24 additions and 21 deletions

View file

@ -11,14 +11,11 @@ before_install:
- git submodule update --init hermit/lwip hermit/usr/gcc hermit/usr/pte hermit/usr/libomp
script:
- ./configure
- wget https://www.lankes.org/deploy/bzImage
- mkdir -p linux/arch/x86/boot/
- mv bzImage linux/arch/x86/boot/
- wget https://www.lankes.org/deploy/newlib.tar.gz
- tar xzf newlib.tar.gz
- mv tmp hermit/usr/
- mv x86 hermit/usr/
- make T=1
- make T=1 travis
env:
global:
- TOPDIR=`pwd`/../..

View file

@ -6,6 +6,10 @@ default: linux/arch/x86/boot/bzImage
make PATH=$(PATH):$(CROSSDIR) -C hermit
make PATH=$(PATH):$(CROSSDIR) -C hermit/tools proxy
travis:
make PATH=$(PATH):$(CROSSDIR) -C hermit
make PATH=$(PATH):$(CROSSDIR) -C hermit/tools proxy
all: default
linux/arch/x86/boot/bzImage:

View file

@ -23,7 +23,7 @@ Following software packets are required to build HermitCore on a Linux system:
On Ubuntu the packets could be installed with following command:
```
sudo apt-get install nasm texinfo libmpfr-dev libmpc-dev libgmp-dev libisl-dev flex bison
sudo apt-get install qemu-system-x86 nasm texinfo libmpfr-dev libmpc-dev libgmp-dev libisl-dev flex bison
```
## Building and testing HermitCore within a virtual machine
@ -83,6 +83,6 @@ The following example starts the stream benchmark in a virtual machine, which ha
HERMIT_ISLE=qemu HERMIT_CPUS=4 HERMIT_MEM=6G hermit/usr/benchmarks/stream
```
## Tips and tricks
## Tips
1. By setting the environment variable `HERMIT_VERBOSE` to `1`, the proxy prints at termination the kernel log messages on the screen.

View file

@ -236,6 +236,7 @@ L1:
jmp $
%if MAX_CORES > 1
ALIGN 64
Lsmp_main:
xor rax, rax
mov eax, DWORD [current_boot_id]
@ -252,7 +253,7 @@ Lsmp_main:
jmp $
%endif
ALIGN 4
ALIGN 64
global gdt_flush
extern gp
@ -274,7 +275,7 @@ gdt_flush:
; NASM macro which pushs also an pseudo error code
%macro isrstub_pseudo_error 1
global isr%1
align 16
align 64
isr%1:
push byte 0 ; pseudo error code
push byte %1
@ -286,7 +287,7 @@ gdt_flush:
; on the stack.
%macro isrstub 1
global isr%1
align 16
align 64
isr%1:
push byte %1
jmp common_stub
@ -339,7 +340,7 @@ isrstub_pseudo_error 9
; NASM macro for asynchronous interrupts (no exceptions)
%macro irqstub 1
global irq%1
align 16
align 64
irq%1:
push byte 0 ; pseudo error code
push byte 32+%1
@ -361,49 +362,49 @@ isrstub_pseudo_error 9
%endrep
global apic_timer
align 16
align 64
apic_timer:
push byte 0 ; pseudo error code
push byte 123
jmp common_stub
global apic_lint0
align 16
align 64
apic_lint0:
push byte 0 ; pseudo error code
push byte 124
jmp common_stub
global apic_lint1
align 16
align 64
apic_lint1:
push byte 0 ; pseudo error code
push byte 125
jmp common_stub
global apic_error
align 16
align 64
apic_error:
push byte 0 ; pseudo error code
push byte 126
jmp common_stub
global apic_svr
align 16
align 64
apic_svr:
push byte 0 ; pseudo error code
push byte 127
jmp common_stub
global wakeup
align 16
align 64
wakeup:
push byte 0 ; pseudo error code
push byte 121
jmp common_stub
global mmnif_irq
align 16
align 64
mmnif_irq:
push byte 0 ; pseudo error code
push byte 122
@ -418,7 +419,7 @@ extern kernel_stack
; libos => no syscall interface required
%if 0
global isrsyscall
align 16
align 64
; used to realize system calls
isrsyscall:
; IF flag is already cleared
@ -493,7 +494,7 @@ isrsyscall:
%endif
global switch_context
align 16
align 64
switch_context:
; by entering a function the DF flag has to be cleared => see ABI
cld
@ -549,11 +550,11 @@ Lgo1:
jmp common_switch
align 4
align 64
rollback:
ret
align 4
align 64
common_stub:
push rax
push rcx
@ -668,6 +669,7 @@ Lgo3:
iretq
global is_single_kernel
align 64
is_single_kernel:
mov eax, DWORD [single_kernel]
ret