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:
commit
07511f08c3
4 changed files with 24 additions and 21 deletions
|
@ -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`/../..
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue