Merge branch 'master' of git.lfbs.rwth-aachen.de:metalsvm
This commit is contained in:
commit
bc6a55a696
12 changed files with 70 additions and 69 deletions
45
Doxyfile
45
Doxyfile
|
@ -796,7 +796,7 @@ ALPHABETICAL_INDEX = YES
|
||||||
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
|
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
|
||||||
# in which this list will be split (can be a number in the range [1..20])
|
# in which this list will be split (can be a number in the range [1..20])
|
||||||
|
|
||||||
COLS_IN_ALPHA_INDEX = 5
|
COLS_IN_ALPHA_INDEX = 3
|
||||||
|
|
||||||
# In case all classes in a project start with a common prefix, all
|
# In case all classes in a project start with a common prefix, all
|
||||||
# classes will be put under the same header in the alphabetical index.
|
# classes will be put under the same header in the alphabetical index.
|
||||||
|
@ -1063,7 +1063,7 @@ ENUM_VALUES_PER_LINE = 4
|
||||||
# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
|
# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
|
||||||
# Windows users are probably better off using the HTML help feature.
|
# Windows users are probably better off using the HTML help feature.
|
||||||
|
|
||||||
GENERATE_TREEVIEW = NO
|
GENERATE_TREEVIEW = YES
|
||||||
|
|
||||||
# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
|
# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
|
||||||
# and Class Hierarchy pages using a tree view instead of an ordered list.
|
# and Class Hierarchy pages using a tree view instead of an ordered list.
|
||||||
|
@ -1395,7 +1395,7 @@ MACRO_EXPANSION = YES
|
||||||
# then the macro expansion is limited to the macros specified with the
|
# then the macro expansion is limited to the macros specified with the
|
||||||
# PREDEFINED and EXPAND_AS_DEFINED tags.
|
# PREDEFINED and EXPAND_AS_DEFINED tags.
|
||||||
|
|
||||||
EXPAND_ONLY_PREDEF = YES
|
EXPAND_ONLY_PREDEF = NO
|
||||||
|
|
||||||
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
|
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
|
||||||
# in the INCLUDE_PATH (see below) will be search if a #include is found.
|
# in the INCLUDE_PATH (see below) will be search if a #include is found.
|
||||||
|
@ -1425,24 +1425,25 @@ INCLUDE_FILE_PATTERNS =
|
||||||
|
|
||||||
# Doxygen messes up the attribute lines as c-structure names
|
# Doxygen messes up the attribute lines as c-structure names
|
||||||
PREDEFINED = __attribute__ (x)= \
|
PREDEFINED = __attribute__ (x)= \
|
||||||
__attribute__(x)= \
|
__attribute__(x)= \
|
||||||
__attribute__ ((x))= \
|
__attribute__ ((x))= \
|
||||||
__attribute__((x))= \
|
__attribute__((x))= \
|
||||||
HAVE_ARCH_STRLEN \
|
HAVE_ARCH_STRLEN \
|
||||||
HAVE_ARCH_STRNCPY \
|
HAVE_ARCH_STRNCPY \
|
||||||
HAVE_ARCH_STRCPY \
|
HAVE_ARCH_STRCPY \
|
||||||
HAVE_ARCH_MEMCPY \
|
HAVE_ARCH_MEMCPY \
|
||||||
HAVE_ARCH_MEMSET \
|
HAVE_ARCH_MEMSET \
|
||||||
CONFIG_VGA \
|
CONFIG_VGA \
|
||||||
CONFIG_PCI \
|
CONFIG_PCI \
|
||||||
CONFIG_LWIP \
|
CONFIG_LWIP \
|
||||||
CONFIG_VGA \
|
CONFIG_VGA \
|
||||||
CONFIG_KEYBOARD \
|
CONFIG_KEYBOARD \
|
||||||
CONFIG_MULTIBOOT \
|
CONFIG_MULTIBOOT \
|
||||||
CONFIG_ROCKCREEK \
|
CONFIG_ROCKCREEK \
|
||||||
SCC \
|
CONFIG_LGUEST \
|
||||||
MS_BAREMETAL \
|
SCC \
|
||||||
GORY
|
MS_BAREMETAL \
|
||||||
|
GORY
|
||||||
|
|
||||||
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
|
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
|
||||||
# this tag can be used to specify a list of macro names that should be expanded.
|
# this tag can be used to specify a list of macro names that should be expanded.
|
||||||
|
@ -1535,7 +1536,7 @@ HIDE_UNDOC_RELATIONS = YES
|
||||||
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
|
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
|
||||||
# have no effect if this option is set to NO (the default)
|
# have no effect if this option is set to NO (the default)
|
||||||
|
|
||||||
HAVE_DOT = YES
|
HAVE_DOT = NO
|
||||||
|
|
||||||
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
|
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
|
||||||
# allowed to run in parallel. When set to 0 (the default) doxygen will
|
# allowed to run in parallel. When set to 0 (the default) doxygen will
|
||||||
|
|
|
@ -1,45 +1,46 @@
|
||||||
TOPDIR = $(shell pwd)
|
TOPDIR := $(shell pwd)
|
||||||
ARCH = x86
|
ARCH = x86
|
||||||
NAME = metalsvm
|
NAME = metalsvm
|
||||||
LWIPDIRS = lwip/src/arch lwip/src/api lwip/src/core lwip/src/core/ipv4 lwip/src/netif
|
LWIPDIRS = lwip/src/arch lwip/src/api lwip/src/core lwip/src/core/ipv4 lwip/src/netif
|
||||||
DRIVERDIRS = drivers/net drivers/char
|
DRIVERDIRS = drivers/net drivers/char
|
||||||
KERNDIRS = libkern kernel mm fs apps arch/$(ARCH)/kernel arch/$(ARCH)/mm arch/$(ARCH)/scc $(LWIPDIRS) $(DRIVERDIRS)
|
KERNDIRS = libkern kernel mm fs apps arch/$(ARCH)/kernel arch/$(ARCH)/mm arch/$(ARCH)/scc $(LWIPDIRS) $(DRIVERDIRS)
|
||||||
SUBDIRS = $(KERNDIRS)
|
SUBDIRS = $(KERNDIRS)
|
||||||
STACKPROT=-fno-stack-protector
|
STACKPROT = -fno-stack-protector
|
||||||
|
|
||||||
# Set your own cross compiler tool chain prefix here
|
# Set your own cross compiler tool chain prefix here
|
||||||
CROSSCOMPREFIX=
|
CROSSCOMPREFIX =
|
||||||
|
|
||||||
# Uncomment both lines if compiling for the SCC!
|
# Uncomment both lines if compiling for the SCC!
|
||||||
#CROSSCOMPREFIX=i386-unknown-linux-gnu-
|
#CROSSCOMPREFIX = i386-unknown-linux-gnu-
|
||||||
#STACKPROT=
|
#STACKPROT =
|
||||||
|
|
||||||
CC_FOR_TARGET=$(CROSSCOMPREFIX)gcc
|
CC_FOR_TARGET = $(CROSSCOMPREFIX)gcc
|
||||||
CXX_FOR_TARGET=$(CROSSCOMPREFIX)g++
|
CXX_FOR_TARGET = $(CROSSCOMPREFIX)g++
|
||||||
GCC_FOR_TARGET=$(CROSSCOMPREFIX)gcc
|
GCC_FOR_TARGET = $(CROSSCOMPREFIX)gcc
|
||||||
AR_FOR_TARGET=$(CROSSCOMPREFIX)ar
|
CPP_FOR_TARGET = $(CROSSCOMPREFIX)cpp
|
||||||
AS_FOR_TARGET=$(CROSSCOMPREFIX)as
|
AR_FOR_TARGET = $(CROSSCOMPREFIX)ar
|
||||||
LD_FOR_TARGET=$(CROSSCOMPREFIX)ld
|
AS_FOR_TARGET = $(CROSSCOMPREFIX)as
|
||||||
NM_FOR_TARGET=$(CROSSCOMPREFIX)nm
|
LD_FOR_TARGET = $(CROSSCOMPREFIX)ld
|
||||||
OBJDUMP_FOR_TARGET=$(CROSSCOMPREFIX)objdump
|
NM_FOR_TARGET = $(CROSSCOMPREFIX)nm
|
||||||
OBJCOPY_FOR_TARGET=$(CROSSCOMPREFIX)objcopy
|
OBJDUMP_FOR_TARGET = $(CROSSCOMPREFIX)objdump
|
||||||
RANLIB_FOR_TARGET=$(CROSSCOMPREFIX)ranlib
|
OBJCOPY_FOR_TARGET = $(CROSSCOMPREFIX)objcopy
|
||||||
STRIP_FOR_TARGET=$(CROSSCOMPREFIX)strip
|
RANLIB_FOR_TARGET = $(CROSSCOMPREFIX)ranlib
|
||||||
READELF_FOR_TARGET=$(CROSSCOMPREFIX)readelf
|
STRIP_FOR_TARGET = $(CROSSCOMPREFIX)strip
|
||||||
|
READELF_FOR_TARGET = $(CROSSCOMPREFIX)readelf
|
||||||
NASM = nasm
|
|
||||||
EMU=qemu
|
|
||||||
GDB=gdb
|
|
||||||
|
|
||||||
MAKE = make
|
MAKE = make
|
||||||
|
RM = rm -rf
|
||||||
|
NASM = nasm
|
||||||
|
EMU = qemu
|
||||||
|
GDB = gdb
|
||||||
|
|
||||||
NASMFLAGS = -felf32 -g
|
NASMFLAGS = -felf32 -g
|
||||||
INCLUDE = -I$(TOPDIR)/include -I$(TOPDIR)/arch/$(ARCH)/include -I$(TOPDIR)/lwip/src/include -I$(TOPDIR)/lwip/src/include/ipv4 -I$(TOPDIR)/drivers
|
INCLUDE = -I$(TOPDIR)/include -I$(TOPDIR)/arch/$(ARCH)/include -I$(TOPDIR)/lwip/src/include -I$(TOPDIR)/lwip/src/include/ipv4 -I$(TOPDIR)/drivers
|
||||||
# Compiler options for final code
|
# Compiler options for final code
|
||||||
CFLAGS = -g -m32 -march=i586 -Wall -O2 -fno-builtin -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc $(INCLUDE) $(STACKPROT)
|
CFLAGS = -g -m32 -march=i586 -Wall -O2 -fno-builtin -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc $(INCLUDE) $(STACKPROT)
|
||||||
# Compiler options for debuuging
|
# Compiler options for debugging
|
||||||
#CFLAGS = -g -O -m32 -march=i586 -Wall -fno-builtin -DWITH_FRAME_POINTER -nostdinc $(INCLUDE) $(STACKPROT)
|
#CFLAGS = -g -O -m32 -march=i586 -Wall -fno-builtin -DWITH_FRAME_POINTER -nostdinc $(INCLUDE) $(STACKPROT)
|
||||||
ARFLAGS = rsv
|
ARFLAGS = rsv
|
||||||
RM = rm -rf
|
|
||||||
LDFLAGS = -T link.ld -z max-page-size=4096 --defsym __BUILD_DATE=$(shell date +'%Y%m%d') --defsym __BUILD_TIME=$(shell date +'%H%M%S')
|
LDFLAGS = -T link.ld -z max-page-size=4096 --defsym __BUILD_DATE=$(shell date +'%Y%m%d') --defsym __BUILD_TIME=$(shell date +'%H%M%S')
|
||||||
STRIP_DEBUG = --strip-debug
|
STRIP_DEBUG = --strip-debug
|
||||||
KEEP_DEBUG = --only-keep-debug
|
KEEP_DEBUG = --only-keep-debug
|
||||||
|
@ -104,7 +105,7 @@ veryclean: clean
|
||||||
@echo [CC] $@
|
@echo [CC] $@
|
||||||
$Q$(CC_FOR_TARGET) -c -D__KERNEL__ $(CFLAGS) -o $@ $<
|
$Q$(CC_FOR_TARGET) -c -D__KERNEL__ $(CFLAGS) -o $@ $<
|
||||||
@echo [DEP] $*.dep
|
@echo [DEP] $*.dep
|
||||||
$Q$(CC_FOR_TARGET) -MF $*.dep -MT $*.o -MM $(CFLAGS) $<
|
$Q$(CPP_FOR_TARGET) -MF $*.dep -MT $*.o -MM $(CFLAGS) $<
|
||||||
|
|
||||||
|
|
||||||
%.o : %.asm
|
%.o : %.asm
|
||||||
|
|
|
@ -38,7 +38,9 @@ int gfx_init(char* ip_str, char* port_str, int rank) {
|
||||||
char* hostname;
|
char* hostname;
|
||||||
int port;
|
int port;
|
||||||
struct sockaddr_in serveraddr;
|
struct sockaddr_in serveraddr;
|
||||||
|
#if USE_GETHOSTBYNAME
|
||||||
struct hostent *server;
|
struct hostent *server;
|
||||||
|
#endif
|
||||||
|
|
||||||
//*pargc -=2;
|
//*pargc -=2;
|
||||||
myrank = rank;
|
myrank = rank;
|
||||||
|
|
|
@ -22,21 +22,6 @@
|
||||||
|
|
||||||
#ifdef CONFIG_LWIP
|
#ifdef CONFIG_LWIP
|
||||||
|
|
||||||
int GFX_init(int* pargc, char*** pargv, int rank)
|
|
||||||
{
|
|
||||||
return gfx_init(pargc, pargv, rank);
|
|
||||||
}
|
|
||||||
|
|
||||||
int GFX_send(char* buf, int size, int tag)
|
|
||||||
{
|
|
||||||
return gfx_send(buf, size, tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
int GFX_finalize()
|
|
||||||
{
|
|
||||||
return gfx_finalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
int GFX_update()
|
int GFX_update()
|
||||||
{
|
{
|
||||||
return gfx_send(NULL, 0, GFX_UPDATE);
|
return gfx_send(NULL, 0, GFX_UPDATE);
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
|
|
||||||
#ifdef CONFIG_LWIP
|
#ifdef CONFIG_LWIP
|
||||||
|
|
||||||
int GFX_init(int* pargc, char*** pargv, int rank);
|
#define GFX_init(ip_str, port_str, rank) gfx_init(ip_str, port_str, rank)
|
||||||
int GFX_send(char* buf, int size, int tag);
|
#define GFX_send(buf, size, tag) gfx_send(buf, size, tag)
|
||||||
int GFX_finalize();
|
#define GFX_finalize() gfx_finalize()
|
||||||
|
|
||||||
int GFX_update();
|
int GFX_update();
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ int laplace(void *arg)
|
||||||
|
|
||||||
#ifdef _USE_GFX
|
#ifdef _USE_GFX
|
||||||
kprintf("Laplace calls gfx_init\n");
|
kprintf("Laplace calls gfx_init\n");
|
||||||
ret = gfx_init("192.168.4.254" /*&argc */ , "5000" /*&argv */ , my_rank);
|
ret = GFX_init("192.168.4.254" /*&argc */ , "5000" /*&argv */ , my_rank);
|
||||||
kprintf("gfx_init: %d\n", ret);
|
kprintf("gfx_init: %d\n", ret);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ static struct in_addr addr_server;
|
||||||
|
|
||||||
static int send_data(int socket, void *buffer, size_t size, int flags)
|
static int send_data(int socket, void *buffer, size_t size, int flags)
|
||||||
{
|
{
|
||||||
int rc = send(socket, buffer, size, flags);
|
ssize_t rc = send(socket, buffer, size, flags);
|
||||||
|
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
{
|
{
|
||||||
|
@ -106,7 +106,7 @@ static int send_data(int socket, void *buffer, size_t size, int flags)
|
||||||
|
|
||||||
static int recv_data(int socket, void *buffer, size_t size, int flags)
|
static int recv_data(int socket, void *buffer, size_t size, int flags)
|
||||||
{
|
{
|
||||||
size_t rc = recv(socket, buffer, size, flags);
|
ssize_t rc = recv(socket, buffer, size, flags);
|
||||||
|
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
kprintf("recv failed: %d\n", errno);
|
kprintf("recv failed: %d\n", errno);
|
||||||
|
|
|
@ -46,7 +46,7 @@ int cpu_detection(void)
|
||||||
kprintf("The CPU owns the Advanced Vector Extensions (AVX). However, MetalSVM doesn't support AVX!\n");
|
kprintf("The CPU owns the Advanced Vector Extensions (AVX). However, MetalSVM doesn't support AVX!\n");
|
||||||
|
|
||||||
if (has_fpu()) {
|
if (has_fpu()) {
|
||||||
kputs("Found and initialize FPU!\n");
|
kputs("Found and initialized FPU!\n");
|
||||||
asm volatile ("fninit");
|
asm volatile ("fninit");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -340,7 +340,7 @@ size_t map_region(size_t viraddr, size_t phyaddr, uint32_t npages, uint32_t flag
|
||||||
index = (viraddr >> 12) & 0x3FF;
|
index = (viraddr >> 12) & 0x3FF;
|
||||||
if (pgt->entries[index] && !(flags & MAP_REMAP)) {
|
if (pgt->entries[index] && !(flags & MAP_REMAP)) {
|
||||||
spinlock_unlock(pgd_lock);
|
spinlock_unlock(pgd_lock);
|
||||||
kprintf("0x%x is already maped\n", viraddr);
|
kprintf("0x%x is already mapped\n", viraddr);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
BIN
documentation/img/mike_ostrich.jpg
Normal file
BIN
documentation/img/mike_ostrich.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.6 KiB |
|
@ -20,6 +20,7 @@ $mathjax
|
||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<!--BEGIN PROJECT_LOGO-->
|
<!--BEGIN PROJECT_LOGO-->
|
||||||
<td id="projectlogo">
|
<td id="projectlogo">
|
||||||
|
<div id="ostrichlogo"><img src="../img/mike_ostrich.jpg" alt="Mike Ostrich!" /></div>
|
||||||
<div id="lfbslogo"><img src="../img/lfbs_logo.gif" alt="Lehrstuhl für Betriebssysteme" /></div>
|
<div id="lfbslogo"><img src="../img/lfbs_logo.gif" alt="Lehrstuhl für Betriebssysteme" /></div>
|
||||||
<div id="rwthlogo"><img src="../img/rwth_logo.gif" alt="RWTH Aachen University" /></div>
|
<div id="rwthlogo"><img src="../img/rwth_logo.gif" alt="RWTH Aachen University" /></div>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -858,8 +858,17 @@ dl.bug
|
||||||
right: 5px;
|
right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ostrichlogo
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
top: 5px;
|
||||||
|
left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
#projectname
|
#projectname
|
||||||
{
|
{
|
||||||
|
position: relative;
|
||||||
|
left: 50px;
|
||||||
font: 300% Tahoma, Arial,sans-serif;
|
font: 300% Tahoma, Arial,sans-serif;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding: 2px 0px;
|
padding: 2px 0px;
|
||||||
|
@ -867,6 +876,8 @@ dl.bug
|
||||||
|
|
||||||
#projectbrief
|
#projectbrief
|
||||||
{
|
{
|
||||||
|
position: relative;
|
||||||
|
left: 50px;
|
||||||
font: 120% Tahoma, Arial,sans-serif;
|
font: 120% Tahoma, Arial,sans-serif;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
|
|
Loading…
Add table
Reference in a new issue