Compare commits
1 Commits
master
...
unlabeled-
Author | SHA1 | Date | |
---|---|---|---|
bf5803f7d8 |
|
@ -40,7 +40,8 @@ LIBGCC = `$(CXX) $(CC_MARCH) -print-libgcc-file-name`
|
||||||
!ld = | $(DEV_DIR)/<lib> $(DEV_DIR)/<pkg-config> |> ^o LD %o^ $(LD) -o %o $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` %f |>
|
!ld = | $(DEV_DIR)/<lib> $(DEV_DIR)/<pkg-config> |> ^o LD %o^ $(LD) -o %o $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` %f |>
|
||||||
|
|
||||||
!incbin = |> ^ incbin %f^ \
|
!incbin = |> ^ incbin %f^ \
|
||||||
export SYM=_binary_`echo %b | sed 's/\./_/g'`; \
|
export SYM=_binary_`echo %f | sed 's/\./_/g'`; \
|
||||||
echo ".global ${SYM}_start, ${SYM}_end; .data; .align 4; ${SYM}_start:; .incbin \"%f\"; ${SYM}_end:" \
|
echo ".global ${SYM}_start, ${SYM}_end; .data; .align 4; ${SYM}_start:; .incbin \"%f\"; ${SYM}_end:" \
|
||||||
| x86_64-unknown-genode-as $(AS_MARCH) -o %o - \
|
| llvm-mc -filetype=obj - > %o \
|
||||||
|> binary_%b.o
|
|> binary_%b.o
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
|
||||||
!ld = | $(DEV_DIR)/<lib> $(DEV_DIR)/<pkg-config> |> ^o LD %o^ $(LD) $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` --whole-archive --start-group %f --no-whole-archive --end-group -o %o |>
|
!ld = | $(DEV_DIR)/<lib> $(DEV_DIR)/<pkg-config> |> ^o LD %o^ $(LD) $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` --whole-archive --start-group %f --no-whole-archive --end-group -o %o |>
|
||||||
|
|
||||||
!incbin = |> ^ incbin %f^ \
|
!incbin = |> ^ incbin %f^ \
|
||||||
export SYM=_binary_`echo %b | sed 's/\./_/g'`; \
|
export SYM=_binary_`echo %f | sed 's/\./_/g'`; \
|
||||||
echo ".global ${SYM}_start, ${SYM}_end; .data; .align 4; ${SYM}_start:; .incbin \"%f\"; ${SYM}_end:" \
|
echo ".global ${SYM}_start, ${SYM}_end; .data; .align 4; ${SYM}_start:; .incbin \"%f\"; ${SYM}_end:" \
|
||||||
| llvm-mc -filetype=obj - > %o \
|
| llvm-mc -filetype=obj - > %o \
|
||||||
|> binary_%b.o
|
|> binary_%b.o
|
||||||
|
|
10
flake.lock
10
flake.lock
|
@ -30,9 +30,9 @@
|
||||||
"url": "github:edolstra/nixpkgs/7845bf5f4b3013df1cf036e9c9c3a55a30331db9"
|
"url": "github:edolstra/nixpkgs/7845bf5f4b3013df1cf036e9c9c3a55a30331db9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"narHash": "sha256-7eL2MfGgeEaIwJXPc4LQ7pBa4JeGicm9th7onjKgzsE=",
|
"narHash": "sha256-72QPBUP9EaIPGneWDLYIb6Wo5XR/lmijobDlaX8iKHA=",
|
||||||
"originalUrl": "git+https://gitea.c3d2.de/ehmry/genode-depot.git",
|
"originalUrl": "git+https://gitea.c3d2.de/ehmry/genode-depot.git",
|
||||||
"url": "git+https://gitea.c3d2.de/ehmry/genode-depot.git?ref=master&rev=8c2aafed45b4075e37f1cd93de0ebf93f38c83c3"
|
"url": "git+https://gitea.c3d2.de/ehmry/genode-depot.git?ref=master&rev=4e85cc4dd28d868d28815be4c925b1bb64d19939"
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"inputs": {},
|
"inputs": {},
|
||||||
|
@ -41,9 +41,9 @@
|
||||||
"url": "github:ehmry/nixpkgs/cf50f3b8bdc28832249afab6bca68acad832e011"
|
"url": "github:ehmry/nixpkgs/cf50f3b8bdc28832249afab6bca68acad832e011"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"narHash": "sha256-78eloDNkEjWAckNLbfNait0zb6QBG4QxltX6FyV1vAk=",
|
"narHash": "sha256-uVUZZTXUDZqOtoSee0YpJ8WIgIOaP9yv3lN127sr3h8=",
|
||||||
"originalUrl": "git+https://git.sr.ht/~ehmry/genodepkgs",
|
"originalUrl": "git+https://git.sr.ht/~ehmry/genodepkgs?ref=staging",
|
||||||
"url": "git+https://git.sr.ht/~ehmry/genodepkgs?ref=master&rev=dad28cc17b17542ada59ba2005fbf1af5d5f8209"
|
"url": "git+https://git.sr.ht/~ehmry/genodepkgs?ref=staging&rev=45df037912a53c035909a932802bad5e56921f78"
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"inputs": {},
|
"inputs": {},
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
edition = 201909;
|
edition = 201909;
|
||||||
|
|
||||||
inputs.genodepkgs.uri = "git+https://git.sr.ht/~ehmry/genodepkgs";
|
inputs.genodepkgs.uri = "git+https://git.sr.ht/~ehmry/genodepkgs?ref=staging";
|
||||||
|
|
||||||
outputs = { self, nixpkgs, genodepkgs }: {
|
outputs = { self, nixpkgs, genodepkgs }: {
|
||||||
|
|
||||||
|
|
|
@ -18,13 +18,8 @@ endif
|
||||||
-e "s/^\(\w\+\) W/.text; .weak \1; .type \1,%%function; \1:/" \
|
-e "s/^\(\w\+\) W/.text; .weak \1; .type \1,%%function; \1:/" \
|
||||||
-e "s/^\(\w\+\) B \(\w\+\)\$/.bss; .global \1; .type \1,%%object; .size \1,\2; \1:/" \
|
-e "s/^\(\w\+\) B \(\w\+\)\$/.bss; .global \1; .type \1,%%object; .size \1,\2; \1:/" \
|
||||||
-e "s/^\(\w\+\) U/.text; .global \1; $(ASM_SYM_DEPENDENCY)/" \
|
-e "s/^\(\w\+\) U/.text; .global \1; $(ASM_SYM_DEPENDENCY)/" \
|
||||||
%f > stub.s; \
|
%f \
|
||||||
$(CC) $(CC_MARCH) -x assembler -c stub.s; \
|
| $(CC) $(CC_MARCH) -x assembler -c - -Wl,-shared -Wl,-T&(LD_SCRIPT_SO) -o %o \
|
||||||
$(LD) -o %o \
|
|
||||||
-shared \
|
|
||||||
-T &(LD_SCRIPT_SO) \
|
|
||||||
stub.o; \
|
|
||||||
rm -v stub.o stub.s; \
|
|
||||||
|> $(DEV_LIB_DIR)/%B.lib.so $(DEV_DIR)/<lib>
|
|> $(DEV_LIB_DIR)/%B.lib.so $(DEV_DIR)/<lib>
|
||||||
|
|
||||||
BASE_DIR = $(GENODE_DIR)/repos/base
|
BASE_DIR = $(GENODE_DIR)/repos/base
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
ifeq (@(TUP_ARCH),x86_64)
|
|
||||||
CPPFLAGS += -I$(TUP_CWD)/include/spec/x86_64
|
|
||||||
endif
|
|
||||||
|
|
||||||
CPPFLAGS += -I$(TUP_CWD)/include
|
|
||||||
|
|
||||||
include &(BASE_DIR)/Tuprules.tup
|
|
||||||
REP_DIR = $(TUP_CWD)
|
|
|
@ -1,2 +0,0 @@
|
||||||
CPPFLAGS += -I$(TUP_CWD)/include
|
|
||||||
CPPFLAGS += -I$(BASE_DIR)/src/include
|
|
|
@ -1,71 +0,0 @@
|
||||||
ifeq (@(TUP_ARCH),x86_64)
|
|
||||||
CPPFLAGS += -I$(TUP_CWD)/spec/x86_64
|
|
||||||
NR_OF_CPUS = 32
|
|
||||||
CPPFLAGS += -DNR_OF_CPUS=$(NR_OF_CPUS)
|
|
||||||
LDFLAGS += --defsym NR_OF_CPUS=$(NR_OF_CPUS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
GEN_CORE_DIR = $(BASE_DIR)/src/core
|
|
||||||
|
|
||||||
# add include paths
|
|
||||||
CPPFLAGS += -I$(BASE_DIR)/../base-hw/src/core
|
|
||||||
CPPFLAGS += -I$(GEN_CORE_DIR)/include
|
|
||||||
CPPFLAGS += -I$(BASE_DIR)/../base-hw/src/include
|
|
||||||
CPPFLAGS += -I$(BASE_DIR)/src/include
|
|
||||||
|
|
||||||
# add C++ sources
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/core_log.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/core_mem_alloc.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/core_rpc_cap_alloc.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/cpu_session_component.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/cpu_thread_component.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/dataspace_component.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/default_log.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/dump_alloc.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/heartbeat.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/io_mem_session_component.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/main.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/pd_session_component.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/pd_session_support.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/platform_rom_modules.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/ram_dataspace_factory.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/region_map_component.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/rom_session_component.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/signal_receiver.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/signal_transmitter_noinit.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/stack_area.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/trace_session_component.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/version.cc
|
|
||||||
|
|
||||||
CXXFLAGS_$(GEN_CORE_DIR)/version.cc += -DGENODE_VERSION=\"`git describe`\"
|
|
||||||
|
|
||||||
SRC_CC += $(TUP_CWD)/capability.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/core_log_out.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/core_region_map.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/cpu_session_support.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/env.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/io_mem_session_support.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/irq_session_component.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/kernel_log.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/native_pd_component.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/native_utcb.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/pager.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/platform.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/platform_pd.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/platform_thread.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/ram_dataspace_support.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/region_map_support.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/stack_area_addr.cc
|
|
||||||
SRC_CC += $(TUP_CWD)/thread_start.cc
|
|
||||||
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/cpu.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/cpu_scheduler.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/double_list.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/init.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/ipc_node.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/irq.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/kernel.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/object.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/signal_receiver.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/thread.cc
|
|
||||||
SRC_CC_KERNEL += $(TUP_CWD)/kernel/timer.cc
|
|
|
@ -51,7 +51,7 @@ class Kernel::Ipc_node : private Ipc_node_queue::Element
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
friend struct Core_thread;
|
friend class Core_thread;
|
||||||
friend class Genode::Fifo<Ipc_node>;
|
friend class Genode::Fifo<Ipc_node>;
|
||||||
|
|
||||||
State _state = INACTIVE;
|
State _state = INACTIVE;
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace Genode
|
||||||
class Kernel::Irq : Genode::Avl_node<Irq>
|
class Kernel::Irq : Genode::Avl_node<Irq>
|
||||||
{
|
{
|
||||||
friend class Genode::Avl_tree<Irq>;
|
friend class Genode::Avl_tree<Irq>;
|
||||||
friend struct Genode::Avl_node<Irq>;
|
friend class Genode::Avl_node<Irq>;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ namespace Kernel
|
||||||
/**
|
/**
|
||||||
* Base class of all Kernel objects
|
* Base class of all Kernel objects
|
||||||
*/
|
*/
|
||||||
struct Object;
|
class Object;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object identity helps to distinguish different capability owners
|
* An object identity helps to distinguish different capability owners
|
||||||
|
|
|
@ -29,7 +29,7 @@ namespace Kernel
|
||||||
{
|
{
|
||||||
struct Thread_fault;
|
struct Thread_fault;
|
||||||
class Thread;
|
class Thread;
|
||||||
struct Core_thread;
|
class Core_thread;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
ifeq (@(TUP_ARCH),x86_64)
|
|
||||||
include_rules
|
|
||||||
|
|
||||||
GEN_CORE_DIR = $(BASE_DIR)/src/core
|
|
||||||
|
|
||||||
# add C++ sources
|
|
||||||
SRC_CC += $(REP_DIR)/src/lib/hw/spec/64bit/memory_map.cc
|
|
||||||
SRC_CC += ../kernel/cpu_mp.cc
|
|
||||||
SRC_CC += ../kernel/lock.cc
|
|
||||||
SRC_CC += ../kernel/vm_thread_off.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/spec/x86/io_port_session_component.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/spec/x86/io_port_session_support.cc
|
|
||||||
SRC_CC += $(GEN_CORE_DIR)/spec/x86/platform_services.cc
|
|
||||||
SRC_CC += ../spec/x86_64/bios_data_area.cc
|
|
||||||
SRC_CC += ../spec/x86_64/cpu.cc
|
|
||||||
SRC_CC += ../spec/x86_64/pic.cc
|
|
||||||
SRC_CC += ../spec/x86_64/pit.cc
|
|
||||||
SRC_CC += ../spec/x86_64/platform_support.cc
|
|
||||||
SRC_CC += ../spec/x86_64/platform_support_common.cc
|
|
||||||
|
|
||||||
: foreach $(SRC_S) |> !asm |> {obj}
|
|
||||||
: foreach $(SRC_CC) |> !cxx |> {obj}
|
|
||||||
|
|
||||||
: foreach $(SRC_CC_KERNEL) |> !cxx |> ../kernel/%B.o {obj}
|
|
||||||
|
|
||||||
: {obj} | \
|
|
||||||
$(DEV_DIR)/<lib> \
|
|
||||||
$(DEV_DIR)/<pkg-config> \
|
|
||||||
$(BASE_DIR)/<base-libs> \
|
|
||||||
$(REP_DIR)/<base-common> \
|
|
||||||
$(REP_DIR)/<core-obj> \
|
|
||||||
|> $(LD) $(LDFLAGS) -u _start -r \
|
|
||||||
--whole-archive --start-group %f %<core-obj> %<base-libs> %<base-common> $(PKG_LIBS) --no-whole-archive --end-group -o %o \
|
|
||||||
|> core.a $(REP_DIR)/<core> {core}
|
|
||||||
: {core} |> cp %f %o |> $(OUT_DIR)/lib/core-hw-pc.a
|
|
||||||
|
|
||||||
endif
|
|
|
@ -24,8 +24,8 @@
|
||||||
|
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
|
|
||||||
struct Signal_context_component;
|
class Signal_context_component;
|
||||||
struct Signal_source_component;
|
class Signal_source_component;
|
||||||
|
|
||||||
typedef Object_pool<Signal_context_component> Signal_context_pool;
|
typedef Object_pool<Signal_context_component> Signal_context_pool;
|
||||||
typedef Object_pool<Signal_source_component> Signal_source_pool;
|
typedef Object_pool<Signal_source_component> Signal_source_pool;
|
||||||
|
@ -50,7 +50,7 @@ struct Genode::Signal_source_component : private Kernel_object<Kernel::Signal_re
|
||||||
public Signal_source_pool::Entry
|
public Signal_source_pool::Entry
|
||||||
{
|
{
|
||||||
friend class Object_pool<Signal_source_component>;
|
friend class Object_pool<Signal_source_component>;
|
||||||
friend struct Signal_context_component;
|
friend class Signal_context_component;
|
||||||
|
|
||||||
using Signal_source_pool::Entry::cap;
|
using Signal_source_pool::Entry::cap;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
ifeq (@(TUP_ARCH),x86_64)
|
|
||||||
include_rules
|
|
||||||
|
|
||||||
: foreach *.s |> !asm |> | $(REP_DIR)/<core-obj>
|
|
||||||
|
|
||||||
endif
|
|
|
@ -1,6 +0,0 @@
|
||||||
ifeq (@(TUP_ARCH),x86_64)
|
|
||||||
include_rules
|
|
||||||
|
|
||||||
: foreach *.cc |> !cxx |> | $(REP_DIR)/<core-obj>
|
|
||||||
|
|
||||||
endif
|
|
|
@ -13,8 +13,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* core includes */
|
/* core includes */
|
||||||
#include "../../../kernel/cpu.h"
|
#include "../../kernel/cpu.h"
|
||||||
#include "../../../kernel/kernel.h"
|
#include "../../kernel/kernel.h"
|
||||||
|
|
||||||
void Kernel::Cpu::_arch_init()
|
void Kernel::Cpu::_arch_init()
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,8 +11,8 @@
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
* under the terms of the GNU Affero General Public License version 3.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../../kernel/cpu.h"
|
#include "../../kernel/cpu.h"
|
||||||
#include "../../../kernel/pd.h"
|
#include "../../kernel/pd.h"
|
||||||
|
|
||||||
|
|
||||||
bool Kernel::Pd::invalidate_tlb(Cpu & cpu, addr_t, size_t)
|
bool Kernel::Pd::invalidate_tlb(Cpu & cpu, addr_t, size_t)
|
||||||
|
|
|
@ -14,9 +14,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* core includes */
|
/* core includes */
|
||||||
#include "../../../kernel/cpu.h"
|
#include "../../kernel/cpu.h"
|
||||||
#include "../../../kernel/thread.h"
|
#include "../../kernel/thread.h"
|
||||||
#include "../../../kernel/pd.h"
|
#include "../../kernel/pd.h"
|
||||||
|
|
||||||
void Kernel::Thread::Tlb_invalidation::execute()
|
void Kernel::Thread::Tlb_invalidation::execute()
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* core includes */
|
/* core includes */
|
||||||
#include "../../../kernel/cpu.h"
|
#include "../../kernel/cpu.h"
|
||||||
#include "../../../kernel/thread.h"
|
#include "../../kernel/thread.h"
|
||||||
|
|
||||||
using namespace Kernel;
|
using namespace Kernel;
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include <port_io.h>
|
#include <port_io.h>
|
||||||
#include <board.h>
|
#include <board.h>
|
||||||
|
|
||||||
namespace Board { struct Timer; }
|
namespace Board { class Timer; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LAPIC-based timer driver for core
|
* LAPIC-based timer driver for core
|
||||||
|
|
|
@ -28,8 +28,8 @@
|
||||||
#include <kernel/interface.h>
|
#include <kernel/interface.h>
|
||||||
|
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
|
|
||||||
class Native_utcb;
|
struct Native_utcb;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The main thread's UTCB, used during bootstrap of the main thread before it
|
* The main thread's UTCB, used during bootstrap of the main thread before it
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#include <board.h>
|
#include <board.h>
|
||||||
|
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
struct Address_space;
|
class Address_space;
|
||||||
class Platform;
|
class Platform;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace Genode
|
||||||
/**
|
/**
|
||||||
* Platform specific part of Core's protection domain
|
* Platform specific part of Core's protection domain
|
||||||
*/
|
*/
|
||||||
struct Core_platform_pd;
|
class Core_platform_pd;
|
||||||
|
|
||||||
using Hw::Page_flags;
|
using Hw::Page_flags;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
|
|
||||||
class Pager_object;
|
class Pager_object;
|
||||||
struct Thread_state;
|
class Thread_state;
|
||||||
class Rm_client;
|
class Rm_client;
|
||||||
class Platform_thread;
|
class Platform_thread;
|
||||||
class Platform_pd;
|
class Platform_pd;
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
include_rules
|
|
||||||
|
|
||||||
BASE_COMMON_DIR = $(BASE_DIR)/src/lib/base-common
|
|
||||||
include $(BASE_COMMON_DIR)/Tupfile.inc
|
|
||||||
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/ansi_c.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/allocator_avl.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/avl_tree.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/child.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/child_process.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/component.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/console.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/elf_binary.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/entrypoint.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/env_session_id_space.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/heap.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/lock.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/log.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/output.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/raw_output.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/region_map_client.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/registry.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/rm_session_client.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/root_proxy.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/rpc_dispatch_loop.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/rpc_entrypoint.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/session_state.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/signal_common.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/slab.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/sleep.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/sliced_heap.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/stack_allocator.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/stack_protector.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/thread.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/thread_myself.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/trace.cc
|
|
||||||
SRC_CC += $(BASE_COMMON_DIR)/vm_session.cc
|
|
||||||
|
|
||||||
SRC_CC += ipc.cc
|
|
||||||
SRC_CC += signal_transmitter.cc
|
|
||||||
SRC_CC += thread_bootstrap.cc
|
|
||||||
|
|
||||||
: foreach $(SRC_CC) |> !cxx |> {obj}
|
|
||||||
: foreach $(SRC_S) |> !asm |> {obj}
|
|
||||||
|
|
||||||
: {obj} |> !ar |> base-hw-common.lib.a | $(REP_DIR)/<base-hw-common>
|
|
|
@ -1,22 +0,0 @@
|
||||||
include_rules
|
|
||||||
|
|
||||||
BASE_LIB_DIR = $(BASE_DIR)/src/lib/base
|
|
||||||
|
|
||||||
SRC_CC += $(BASE_LIB_DIR)/default_log.cc
|
|
||||||
SRC_CC += $(BASE_LIB_DIR)/env_reinit.cc
|
|
||||||
SRC_CC += $(BASE_LIB_DIR)/heartbeat.cc
|
|
||||||
SRC_CC += $(BASE_LIB_DIR)/main_thread_cap.cc
|
|
||||||
SRC_CC += $(BASE_LIB_DIR)/rpc_cap_alloc.cc
|
|
||||||
SRC_CC += $(BASE_LIB_DIR)/stack_area.cc
|
|
||||||
SRC_CC += $(BASE_LIB_DIR)/stack_area_addr.cc
|
|
||||||
SRC_CC += cache.cc
|
|
||||||
SRC_CC += capability.cc
|
|
||||||
SRC_CC += env_deprecated.cc
|
|
||||||
SRC_CC += native_utcb.cc
|
|
||||||
SRC_CC += raw_write_string.cc
|
|
||||||
SRC_CC += signal_receiver.cc
|
|
||||||
SRC_CC += thread_start.cc
|
|
||||||
|
|
||||||
: foreach $(SRC_CC) |> !cxx |> {base-obj}
|
|
||||||
|
|
||||||
: {base-obj} |> !ar |> base-hw.lib.a | $(REP_DIR)/<base-hw>
|
|
|
@ -1,46 +0,0 @@
|
||||||
include_rules
|
|
||||||
|
|
||||||
include $(BASE_DIR)/src/lib/ldso/Tuprules.tup
|
|
||||||
|
|
||||||
: foreach $(LDSO_DIR)/*.cc |> !cxx |> {obj}
|
|
||||||
: foreach $(LDSO_SPEC_DIR)/*.s |> !asm |> {obj}
|
|
||||||
|
|
||||||
LDFLAGS += -shared --eh-frame-hdr
|
|
||||||
|
|
||||||
: $(BASE_DIR)/lib/symbols/ld \
|
|
||||||
|> \
|
|
||||||
echo -e '{\n\tglobal:' >> %o; \
|
|
||||||
sed -n "s/^\(\w\+\) .*/\t\t\1;/p" %f >> %o; \
|
|
||||||
echo -e "\tlocal: *;\n};" >> %o; \
|
|
||||||
|> symbol.map
|
|
||||||
|
|
||||||
LDFLAGS += -Bsymbolic-functions --version-script=symbol.map
|
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),i386)
|
|
||||||
LDFLAGS += -T$(LDSO_DIR)/linux-32.ld
|
|
||||||
else
|
|
||||||
LDFLAGS += -T$(LDSO_DIR)/linker.ld
|
|
||||||
LDFLAGS += --entry=_start
|
|
||||||
endif
|
|
||||||
|
|
||||||
LDFLAGS += -z max-page-size=0x1000
|
|
||||||
LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld
|
|
||||||
|
|
||||||
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs alarm cxx ldso-startup timeout`
|
|
||||||
|
|
||||||
OUTPUT = ld-hw.lib.so
|
|
||||||
ifdef NIX_OUTPUTS_DEV
|
|
||||||
OUTPUT = ld.lib.so
|
|
||||||
endif
|
|
||||||
|
|
||||||
: {obj} | \
|
|
||||||
$(DEV_DIR)/<lib> \
|
|
||||||
$(DEV_DIR)/<pkg-config> \
|
|
||||||
$(REP_DIR)/<base-common> \
|
|
||||||
$(REP_DIR)/<base-hw> \
|
|
||||||
$(REP_DIR)/<startup> \
|
|
||||||
symbol.map \
|
|
||||||
|> $(LD) -o %o $(LD_MARCH) $(LDFLAGS) --whole-archive --start-group $(PKG_LIBS) %<base-common> %<base-hw> %<startup> %f --end-group --no-whole-archive $(LIBGCC) \
|
|
||||||
|> $(OUTPUT) $(REP_DIR)/<ld> {lib}
|
|
||||||
|
|
||||||
: foreach {lib} |> !collect_shared |>
|
|
|
@ -1,2 +0,0 @@
|
||||||
include_rules
|
|
||||||
include &(BASE_DIR)/src/lib/startup/Tupfile.inc
|
|
|
@ -1,21 +0,0 @@
|
||||||
include_rules
|
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),arm)
|
|
||||||
SRC_CC += ../base-common/arm/kernel/*.cc
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),aarch64)
|
|
||||||
SRC_CC += ../base-common/arm_64/kernel/*.cc
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),riscv)
|
|
||||||
SRC_CC += ../base-common/riscv/kernel/*.cc
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),x86_64)
|
|
||||||
SRC_CC += ../base-common/x86_64/kernel/*.cc
|
|
||||||
endif
|
|
||||||
|
|
||||||
: foreach $(SRC_CC) |> !cxx |> {obj}
|
|
||||||
|
|
||||||
: {obj} |> !ar |> syscall-hw.lib.a | $(REP_DIR)/<syscall-hw>
|
|
|
@ -1,12 +0,0 @@
|
||||||
LIBS += genode-base
|
|
||||||
include_rules
|
|
||||||
|
|
||||||
BASE_TIMER_DIR = $(BASE_DIR)/src/timer
|
|
||||||
|
|
||||||
CPPFLAGS += -I$(BASE_TIMER_DIR)/include
|
|
||||||
CPPFLAGS += -I.
|
|
||||||
#TODO: ^ FAIL
|
|
||||||
|
|
||||||
: foreach *.cc $(BASE_TIMER_DIR)/*.cc |> !cxx |> %B.hw.o {obj}
|
|
||||||
: {obj} | $(REP_DIR)/<syscall-hw> |> !prg %<syscall-hw> |> hw_timer_drv {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -41,11 +41,7 @@ LDFLAGS += -Ttext=0x01000000
|
||||||
LDFLAGS += -T$(BASE_DIR)/src/ld/genode.ld
|
LDFLAGS += -T$(BASE_DIR)/src/ld/genode.ld
|
||||||
LDFLAGS += -T$(REP_DIR)/src/ld/stack_area.ld
|
LDFLAGS += -T$(REP_DIR)/src/ld/stack_area.ld
|
||||||
|
|
||||||
ifdef IS_LLVM
|
|
||||||
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs cxx-baremetal`
|
|
||||||
else
|
|
||||||
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs cxx`
|
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs cxx`
|
||||||
endif
|
|
||||||
|
|
||||||
: {obj} | \
|
: {obj} | \
|
||||||
$(DEV_DIR)/<lib> \
|
$(DEV_DIR)/<lib> \
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
include_rules
|
include_rules
|
||||||
GENERIC_DIR = $(BASE_DIR)/src/lib/base-common
|
GENERIC_DIR = $(BASE_DIR)/src/lib/base-common
|
||||||
include $(GENERIC_DIR)/Tupfile.inc
|
|
||||||
GENERIC_SRC_CC += \
|
GENERIC_SRC_CC += \
|
||||||
$(GENERIC_DIR)/ansi_c.cc \
|
|
||||||
$(GENERIC_DIR)/allocator_avl.cc \
|
$(GENERIC_DIR)/allocator_avl.cc \
|
||||||
$(GENERIC_DIR)/avl_tree.cc \
|
$(GENERIC_DIR)/avl_tree.cc \
|
||||||
$(GENERIC_DIR)/capability.cc \
|
$(GENERIC_DIR)/capability.cc \
|
||||||
|
@ -34,5 +32,4 @@ GENERIC_SRC_CC += \
|
||||||
|
|
||||||
: foreach $(GENERIC_SRC_CC) |> !cxx |> {obj}
|
: foreach $(GENERIC_SRC_CC) |> !cxx |> {obj}
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
: foreach *.cc |> !cxx |> {obj}
|
||||||
: foreach $(SRC_S) |> !asm |> {obj}
|
|
||||||
: {obj} |> !ar |> base-linux-common.lib.a | $(REP_DIR)/<base-common>
|
: {obj} |> !ar |> base-linux-common.lib.a | $(REP_DIR)/<base-common>
|
||||||
|
|
|
@ -25,11 +25,6 @@ BASE_LIBS += $(REP_DIR)/src/lib/base/base-linux.lib.a
|
||||||
|
|
||||||
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs alarm cxx ldso-startup timeout`
|
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs alarm cxx ldso-startup timeout`
|
||||||
|
|
||||||
OUTPUT = ld-linux.lib.so
|
|
||||||
ifdef NIX_OUTPUTS_DEV
|
|
||||||
OUTPUT = ld.lib.so
|
|
||||||
endif
|
|
||||||
|
|
||||||
: $(BASE_LIBS) {obj} | \
|
: $(BASE_LIBS) {obj} | \
|
||||||
symbol.map \
|
symbol.map \
|
||||||
$(DEV_DIR)/<lib> \
|
$(DEV_DIR)/<lib> \
|
||||||
|
@ -37,6 +32,6 @@ endif
|
||||||
$(REP_DIR)/<base-common> \
|
$(REP_DIR)/<base-common> \
|
||||||
$(REP_DIR)/<startup> \
|
$(REP_DIR)/<startup> \
|
||||||
$(REP_DIR)/<syscall> \
|
$(REP_DIR)/<syscall> \
|
||||||
|> $(LD) -o %o $(LD_MARCH) $(LDFLAGS) --whole-archive --start-group %<base-common> %<startup> %<syscall> %f $(PKG_LIBS) --end-group --no-whole-archive $(LIBGCC); printf "\x02" | dd of=%o bs=1 seek=16 count=1 conv=notrunc; |> $(OUTPUT) $(REP_DIR)/<ld> {bin}
|
|> $(LD) -o %o $(LD_MARCH) $(LDFLAGS) --whole-archive --start-group %<base-common> %<startup> %<syscall> %f $(PKG_LIBS) --end-group --no-whole-archive $(LIBGCC); printf "\x02" | dd of=%o bs=1 seek=16 count=1 conv=notrunc; |> ld-linux.lib.so $(REP_DIR)/<ld> {bin}
|
||||||
|
|
||||||
: {bin} |> !collect_bin |>
|
: {bin} |> !collect_bin |>
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
include_rules
|
include_rules
|
||||||
|
|
||||||
GENERIC_DIR = $(BASE_DIR)/src/lib/base-common
|
GENERIC_DIR = $(BASE_DIR)/src/lib/base-common
|
||||||
include $(GENERIC_DIR)/Tupfile.inc
|
|
||||||
|
|
||||||
GENERIC_SRC_CC += \
|
GENERIC_SRC_CC += \
|
||||||
$(GENERIC_DIR)/ansi_c.cc \
|
|
||||||
$(GENERIC_DIR)/allocator_avl.cc \
|
$(GENERIC_DIR)/allocator_avl.cc \
|
||||||
$(GENERIC_DIR)/avl_tree.cc \
|
$(GENERIC_DIR)/avl_tree.cc \
|
||||||
$(GENERIC_DIR)/child.cc \
|
$(GENERIC_DIR)/child.cc \
|
||||||
|
@ -36,6 +34,5 @@ GENERIC_SRC_CC += \
|
||||||
$(GENERIC_DIR)/vm_session.cc \
|
$(GENERIC_DIR)/vm_session.cc \
|
||||||
|
|
||||||
: foreach $(GENERIC_SRC_CC) |> !cxx |> %B.o {obj}
|
: foreach $(GENERIC_SRC_CC) |> !cxx |> %B.o {obj}
|
||||||
: foreach $(SRC_S) |> !asm |> {obj}
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
: foreach *.cc |> !cxx |> {obj}
|
||||||
: {obj} |> !ar |> base-nova-common.lib.a | $(REP_DIR)/<base-common>
|
: {obj} |> !ar |> base-nova-common.lib.a | $(REP_DIR)/<base-common>
|
||||||
|
|
|
@ -28,11 +28,6 @@ LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld
|
||||||
|
|
||||||
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs alarm cxx ldso-startup timeout`
|
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs alarm cxx ldso-startup timeout`
|
||||||
|
|
||||||
OUTPUT = ld-nova.lib.so
|
|
||||||
ifdef NIX_OUTPUTS_DEV
|
|
||||||
OUTPUT = ld.lib.so
|
|
||||||
endif
|
|
||||||
|
|
||||||
: {obj} | \
|
: {obj} | \
|
||||||
$(DEV_DIR)/<lib> \
|
$(DEV_DIR)/<lib> \
|
||||||
$(DEV_DIR)/<pkg-config> \
|
$(DEV_DIR)/<pkg-config> \
|
||||||
|
@ -41,6 +36,6 @@ endif
|
||||||
$(REP_DIR)/<startup> \
|
$(REP_DIR)/<startup> \
|
||||||
symbol.map \
|
symbol.map \
|
||||||
|> $(LD) -o %o $(LD_MARCH) $(LDFLAGS) --whole-archive --start-group $(PKG_LIBS) %<base-common> %<base-nova> %<startup> %f --end-group --no-whole-archive $(LIBGCC) \
|
|> $(LD) -o %o $(LD_MARCH) $(LDFLAGS) --whole-archive --start-group $(PKG_LIBS) %<base-common> %<base-nova> %<startup> %f --end-group --no-whole-archive $(LIBGCC) \
|
||||||
|> $(OUTPUT) $(REP_DIR)/<ld> {lib}
|
|> ld-nova.lib.so $(REP_DIR)/<ld> {lib}
|
||||||
|
|
||||||
: foreach {lib} |> !collect_shared |>
|
: foreach {lib} |> !collect_shared |>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include <base/capability.h>
|
#include <base/capability.h>
|
||||||
|
|
||||||
/* only needed for base-hw */
|
/* only needed for base-hw */
|
||||||
namespace Kernel { class Signal_receiver; }
|
namespace Kernel { struct Signal_receiver; }
|
||||||
|
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ class Genode::Signal
|
||||||
*/
|
*/
|
||||||
Signal(Data data);
|
Signal(Data data);
|
||||||
|
|
||||||
friend class Kernel::Signal_receiver;
|
friend struct Kernel::Signal_receiver;
|
||||||
friend class Signal_receiver;
|
friend class Signal_receiver;
|
||||||
friend class Signal_context;
|
friend class Signal_context;
|
||||||
|
|
||||||
|
|
|
@ -649,14 +649,9 @@ dl_unwind_find_exidx T
|
||||||
genode_argc D 4
|
genode_argc D 4
|
||||||
genode_argv D 8
|
genode_argv D 8
|
||||||
genode_envp B 8
|
genode_envp B 8
|
||||||
longjmp W
|
|
||||||
lx_environ B 8
|
lx_environ B 8
|
||||||
memcmp W
|
|
||||||
memcpy W
|
memcpy W
|
||||||
memmove W
|
memmove W
|
||||||
memset W
|
memset W
|
||||||
setjmp W
|
|
||||||
stdout_reconnect T
|
stdout_reconnect T
|
||||||
strcmp W
|
|
||||||
strlen W
|
|
||||||
wait_for_continue T
|
wait_for_continue T
|
||||||
|
|
|
@ -28,12 +28,12 @@ namespace Genode {
|
||||||
|
|
||||||
Session_label const _label;
|
Session_label const _label;
|
||||||
|
|
||||||
static Session_label _expand_label(Session_label const &label)
|
Session_label _expand_label(Session_label const &label)
|
||||||
{
|
{
|
||||||
if (label == "init -> unlabeled")
|
if (label == "init -> unlabeled")
|
||||||
return "";
|
return "";
|
||||||
else
|
else
|
||||||
return Session_label("[", label, "] ");
|
return Session_label("[", _label, "] ");
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -59,11 +59,14 @@ namespace Genode {
|
||||||
char const *string = string_buf.string();
|
char const *string = string_buf.string();
|
||||||
size_t len = strlen(string);
|
size_t len = strlen(string);
|
||||||
|
|
||||||
|
char buf[string_buf.MAX_SIZE];
|
||||||
unsigned from_i = 0;
|
unsigned from_i = 0;
|
||||||
|
|
||||||
for (unsigned i = 0; i < len; i++) {
|
for (unsigned i = 0; i < len; i++) {
|
||||||
if (string[i] == '\n') {
|
if (string[i] == '\n') {
|
||||||
log(_label, Cstring(string + from_i, i - from_i));
|
memcpy(buf, string + from_i, i - from_i);
|
||||||
|
buf[i - from_i] = 0;
|
||||||
|
log(_label, Cstring(buf));
|
||||||
from_i = i + 1;
|
from_i = i + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,16 +29,14 @@ namespace Genode {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class Genode::Native_cpu_component
|
struct Genode::Native_cpu_component
|
||||||
{
|
{
|
||||||
public:
|
Native_cpu_component(Cpu_session_component &, char const *) { }
|
||||||
|
|
||||||
Native_cpu_component(Cpu_session_component &, char const *) { }
|
Capability<Cpu_session::Native_cpu> cap()
|
||||||
|
{
|
||||||
Capability<Cpu_session::Native_cpu> cap()
|
return Capability<Cpu_session::Native_cpu>();
|
||||||
{
|
}
|
||||||
return Capability<Cpu_session::Native_cpu>();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _CORE__INCLUDE__NATIVE_CPU_COMPONENT_H_ */
|
#endif /* _CORE__INCLUDE__NATIVE_CPU_COMPONENT_H_ */
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
ifeq (@(TUP_ARCH),arm)
|
|
||||||
SRC_S += $(BASE_DIR)/src/lib/base-common/arm/*.S
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),arm64)
|
|
||||||
SRC_S += $(BASE_DIR)/src/lib/base-common/arm_64/*.S
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),i386)
|
|
||||||
SRC_S += $(BASE_DIR)/src/lib/base-common/x86_32/*.S
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),x86_64)
|
|
||||||
SRC_S += $(BASE_DIR)/src/lib/base-common/x86_64/*.S
|
|
||||||
endif
|
|
|
@ -1,28 +0,0 @@
|
||||||
/*
|
|
||||||
* \brief Implementation of basic C utilities
|
|
||||||
* \author Emery Hemingway
|
|
||||||
* \date 2020-01-14
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2020 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <util/string.h>
|
|
||||||
|
|
||||||
using namespace Genode;
|
|
||||||
|
|
||||||
extern "C" __attribute__((weak))
|
|
||||||
int memcmp(const void *p0, const void *p1, size_t size)
|
|
||||||
{
|
|
||||||
return Genode::memcmp(p0, p1, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" __attribute__((weak))
|
|
||||||
size_t strlen(const char *s)
|
|
||||||
{
|
|
||||||
return Genode::strlen(s);
|
|
||||||
}
|
|
|
@ -1,120 +0,0 @@
|
||||||
/* $NetBSD: setjmp.S,v 1.5 2003/04/05 23:08:51 bjh21 Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (c) 1997 Mark Brinicombe
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. All advertising materials mentioning features or use of this software
|
|
||||||
* must display the following acknowledgement:
|
|
||||||
* This product includes software developed by Mark Brinicombe
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* needed parts from <machine/asm.h> */
|
|
||||||
#define __FBSDID(x)
|
|
||||||
#define ENTRY(x) .text; .align 0; .globl x; .type x,#function; x:;
|
|
||||||
#define WEAK_ALIAS(x,y)
|
|
||||||
#define RET mov pc, lr
|
|
||||||
#define _JB_MAGIC__SETJMP 0x4278f500
|
|
||||||
|
|
||||||
#define __SOFTFP__ 1
|
|
||||||
#define _STANDALONE
|
|
||||||
/* end of <machine/asm.h> */
|
|
||||||
|
|
||||||
__FBSDID("$FreeBSD: release/8.2.0/lib/libc/arm/gen/setjmp.S 193145 2009-05-31 02:03:40Z marcel $");
|
|
||||||
|
|
||||||
/*
|
|
||||||
* C library -- setjmp, longjmp
|
|
||||||
*
|
|
||||||
* longjmp(a,v)
|
|
||||||
* will generate a "return(v)" from the last call to
|
|
||||||
* setjmp(a)
|
|
||||||
* by restoring registers from the stack.
|
|
||||||
* The previous signal state is NOT restored.
|
|
||||||
*
|
|
||||||
* Note: r0 is the return value
|
|
||||||
* r1-r3 are scratch registers in functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
ENTRY(setjmp)
|
|
||||||
ldr r1, .Lsetjmp_magic
|
|
||||||
str r1, [r0], #4
|
|
||||||
#ifdef __SOFTFP__
|
|
||||||
add r0, r0, #52
|
|
||||||
#else
|
|
||||||
/* Store fp registers */
|
|
||||||
sfm f4, 4, [r0], #48
|
|
||||||
/* Store fpsr */
|
|
||||||
rfs r1
|
|
||||||
str r1, [r0], #0x0004
|
|
||||||
#endif /* __SOFTFP__ */
|
|
||||||
/* Store integer registers */
|
|
||||||
stmia r0, {r4-r14}
|
|
||||||
|
|
||||||
mov r0, #0x00000000
|
|
||||||
RET
|
|
||||||
|
|
||||||
.Lsetjmp_magic:
|
|
||||||
.word _JB_MAGIC__SETJMP
|
|
||||||
|
|
||||||
WEAK_ALIAS(__longjmp, longjmp)
|
|
||||||
ENTRY(longjmp)
|
|
||||||
ldr r2, .Lsetjmp_magic
|
|
||||||
ldr r3, [r0], #4
|
|
||||||
teq r2, r3
|
|
||||||
bne botch
|
|
||||||
|
|
||||||
#ifdef __SOFTFP__
|
|
||||||
add r0, r0, #52
|
|
||||||
#else
|
|
||||||
/* Restore fp registers */
|
|
||||||
lfm f4, 4, [r0], #48
|
|
||||||
/* Restore fpsr */
|
|
||||||
ldr r4, [r0], #0x0004
|
|
||||||
wfs r4
|
|
||||||
#endif /* __SOFTFP__ */
|
|
||||||
/* Restore integer registers */
|
|
||||||
ldmia r0, {r4-r14}
|
|
||||||
|
|
||||||
/* Validate sp and r14 */
|
|
||||||
teq sp, #0
|
|
||||||
teqne r14, #0
|
|
||||||
beq botch
|
|
||||||
|
|
||||||
/* Set return value */
|
|
||||||
mov r0, r1
|
|
||||||
teq r0, #0x00000000
|
|
||||||
moveq r0, #0x00000001
|
|
||||||
RET
|
|
||||||
|
|
||||||
/* validation failed, die die die. */
|
|
||||||
botch:
|
|
||||||
#if !defined(_STANDALONE)
|
|
||||||
bl PIC_SYM(_C_LABEL(longjmperror), PLT)
|
|
||||||
bl PIC_SYM(_C_LABEL(abort), PLT)
|
|
||||||
b . - 8 /* Cannot get here */
|
|
||||||
#else
|
|
||||||
b .
|
|
||||||
#endif
|
|
|
@ -1,108 +0,0 @@
|
||||||
/*-
|
|
||||||
* Copyright (c) 2014 Andrew Turner
|
|
||||||
* Copyright (c) 2014 The FreeBSD Foundation
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Portions of this software were developed by Andrew Turner
|
|
||||||
* under sponsorship from the FreeBSD Foundation
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* needed parts from <machine/asm.h> */
|
|
||||||
#define __FBSDID(x)
|
|
||||||
#define ENTRY(sym) .text; .globl sym; .align 2; .type sym,#function; sym:
|
|
||||||
#define END(sym) .size sym, . - sym
|
|
||||||
/* end of <machine/asm.h> */
|
|
||||||
|
|
||||||
__FBSDID("$FreeBSD: releng/12.0/lib/libc/aarch64/gen/setjmp.S 313146 2017-02-03 11:51:06Z andrew $");
|
|
||||||
|
|
||||||
/* needed parts from <machine/setjmp.h> */
|
|
||||||
#define _JB_SIGMASK 22
|
|
||||||
#define _JB_MAGIC__SETJMP 0xfb5d25837d7ff700
|
|
||||||
/* end of <machine/asm.h> */
|
|
||||||
|
|
||||||
ENTRY(setjmp)
|
|
||||||
/* Store the magic value and stack pointer */
|
|
||||||
ldr x8, .Lmagic
|
|
||||||
mov x9, sp
|
|
||||||
stp x8, x9, [x0], #16
|
|
||||||
|
|
||||||
/* Store the general purpose registers and lr */
|
|
||||||
stp x19, x20, [x0], #16
|
|
||||||
stp x21, x22, [x0], #16
|
|
||||||
stp x23, x24, [x0], #16
|
|
||||||
stp x25, x26, [x0], #16
|
|
||||||
stp x27, x28, [x0], #16
|
|
||||||
stp x29, lr, [x0], #16
|
|
||||||
|
|
||||||
#ifndef _STANDALONE
|
|
||||||
/* Store the vfp registers */
|
|
||||||
stp d8, d9, [x0], #16
|
|
||||||
stp d10, d11, [x0], #16
|
|
||||||
stp d12, d13, [x0], #16
|
|
||||||
stp d14, d15, [x0]
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Return value */
|
|
||||||
mov x0, #0
|
|
||||||
ret
|
|
||||||
.align 3
|
|
||||||
.Lmagic:
|
|
||||||
.quad _JB_MAGIC__SETJMP
|
|
||||||
END(setjmp)
|
|
||||||
|
|
||||||
ENTRY(longjmp)
|
|
||||||
/* Check the magic value */
|
|
||||||
ldr x8, [x0], #8
|
|
||||||
ldr x9, .Lmagic
|
|
||||||
cmp x8, x9
|
|
||||||
b.ne botch
|
|
||||||
|
|
||||||
/* Restore the stack pointer */
|
|
||||||
ldr x8, [x0], #8
|
|
||||||
mov sp, x8
|
|
||||||
|
|
||||||
/* Restore the general purpose registers and lr */
|
|
||||||
ldp x19, x20, [x0], #16
|
|
||||||
ldp x21, x22, [x0], #16
|
|
||||||
ldp x23, x24, [x0], #16
|
|
||||||
ldp x25, x26, [x0], #16
|
|
||||||
ldp x27, x28, [x0], #16
|
|
||||||
ldp x29, lr, [x0], #16
|
|
||||||
|
|
||||||
#ifndef _STANDALONE
|
|
||||||
/* Restore the vfp registers */
|
|
||||||
ldp d8, d9, [x0], #16
|
|
||||||
ldp d10, d11, [x0], #16
|
|
||||||
ldp d12, d13, [x0], #16
|
|
||||||
ldp d14, d15, [x0]
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Load the return value */
|
|
||||||
mov x0, x1
|
|
||||||
ret
|
|
||||||
|
|
||||||
botch:
|
|
||||||
b botch
|
|
||||||
END(longjmp)
|
|
|
@ -1,79 +0,0 @@
|
||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This code is derived from software contributed to Berkeley by
|
|
||||||
* William Jolitz.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)setjmp.s 5.1 (Berkeley) 4/23/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
//#include <machine/asm.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* C library -- setjmp, longjmp
|
|
||||||
*
|
|
||||||
* longjmp(a,v)
|
|
||||||
* will generate a "return(v)" from the last call to
|
|
||||||
* setjmp(a)
|
|
||||||
* by restoring registers from the environment 'a'.
|
|
||||||
* The previous signal state is NOT restored.
|
|
||||||
*/
|
|
||||||
|
|
||||||
.text; .p2align 2,0x90
|
|
||||||
.globl setjmp; .type setjmp,@function; setjmp:
|
|
||||||
movl 4(%esp),%eax
|
|
||||||
movl 0(%esp),%edx
|
|
||||||
movl %edx, 0(%eax) /* rta */
|
|
||||||
movl %ebx, 4(%eax)
|
|
||||||
movl %esp, 8(%eax)
|
|
||||||
movl %ebp,12(%eax)
|
|
||||||
movl %esi,16(%eax)
|
|
||||||
movl %edi,20(%eax)
|
|
||||||
fnstcw 24(%eax)
|
|
||||||
xorl %eax,%eax
|
|
||||||
ret
|
|
||||||
.size setjmp, . - setjmp
|
|
||||||
|
|
||||||
.text; .p2align 2,0x90
|
|
||||||
.globl longjmp; .type longjmp,@function; longjmp:
|
|
||||||
movl 4(%esp),%edx
|
|
||||||
movl 8(%esp),%eax
|
|
||||||
movl 0(%edx),%ecx
|
|
||||||
movl 4(%edx),%ebx
|
|
||||||
movl 8(%edx),%esp
|
|
||||||
movl 12(%edx),%ebp
|
|
||||||
movl 16(%edx),%esi
|
|
||||||
movl 20(%edx),%edi
|
|
||||||
fldcw 24(%edx)
|
|
||||||
testl %eax,%eax
|
|
||||||
jnz 1f
|
|
||||||
incl %eax
|
|
||||||
1: movl %ecx,0(%esp)
|
|
||||||
ret
|
|
||||||
.size longjmp, . - longjmp
|
|
|
@ -1,93 +0,0 @@
|
||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This code is derived from software contributed to Berkeley by
|
|
||||||
* William Jolitz.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)setjmp.s 5.1 (Berkeley) 4/23/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
//#include <machine/asm.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* C library -- setjmp, longjmp
|
|
||||||
*
|
|
||||||
* longjmp(a,v)
|
|
||||||
* will generate a "return(v)" from the last call to
|
|
||||||
* setjmp(a)
|
|
||||||
* by restoring registers from the environment 'a'.
|
|
||||||
* The previous signal state is NOT restored.
|
|
||||||
*/
|
|
||||||
|
|
||||||
.text; .p2align 4,0x90
|
|
||||||
.globl setjmp; .type setjmp,@function; setjmp:
|
|
||||||
movq %rdi,%rax
|
|
||||||
movq 0(%rsp),%rdx /* retval */
|
|
||||||
movq %rdx, 0(%rax) /* 0; retval */
|
|
||||||
movq %rbx, 8(%rax) /* 1; rbx */
|
|
||||||
movq %rsp,16(%rax) /* 2; rsp */
|
|
||||||
movq %rbp,24(%rax) /* 3; rbp */
|
|
||||||
movq %r12,32(%rax) /* 4; r12 */
|
|
||||||
movq %r13,40(%rax) /* 5; r13 */
|
|
||||||
movq %r14,48(%rax) /* 6; r14 */
|
|
||||||
movq %r15,56(%rax) /* 7; r15 */
|
|
||||||
fnstcw 64(%rax) /* 8; fpu cw */
|
|
||||||
stmxcsr 68(%rax) /* and mxcsr */
|
|
||||||
xorq %rax,%rax
|
|
||||||
ret
|
|
||||||
.size setjmp, . - setjmp
|
|
||||||
|
|
||||||
.text; .p2align 4,0x90
|
|
||||||
.globl longjmp; .type longjmp,@function; longjmp:
|
|
||||||
movq %rdi,%rdx
|
|
||||||
/* Restore the mxcsr, but leave exception flags intact. */
|
|
||||||
stmxcsr -4(%rsp)
|
|
||||||
movl 68(%rdx),%eax
|
|
||||||
andl $0xffffffc0,%eax
|
|
||||||
movl -4(%rsp),%edi
|
|
||||||
andl $0x3f,%edi
|
|
||||||
xorl %eax,%edi
|
|
||||||
movl %edi,-4(%rsp)
|
|
||||||
ldmxcsr -4(%rsp)
|
|
||||||
movq %rsi,%rax /* retval */
|
|
||||||
movq 0(%rdx),%rcx
|
|
||||||
movq 8(%rdx),%rbx
|
|
||||||
movq 16(%rdx),%rsp
|
|
||||||
movq 24(%rdx),%rbp
|
|
||||||
movq 32(%rdx),%r12
|
|
||||||
movq 40(%rdx),%r13
|
|
||||||
movq 48(%rdx),%r14
|
|
||||||
movq 56(%rdx),%r15
|
|
||||||
fldcw 64(%rdx)
|
|
||||||
testq %rax,%rax
|
|
||||||
jnz 1f
|
|
||||||
incq %rax
|
|
||||||
1: movq %rcx,0(%rsp)
|
|
||||||
ret
|
|
||||||
.size longjmp, . - longjmp
|
|
|
@ -104,8 +104,8 @@ ifdef IS_LLVM
|
||||||
: supc++.tmp |> @(OBJCOPY) $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++.o
|
: supc++.tmp |> @(OBJCOPY) $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++.o
|
||||||
: supc++-baremetal.tmp |> @(OBJCOPY) $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++-baremetal.o
|
: supc++-baremetal.tmp |> @(OBJCOPY) $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++-baremetal.o
|
||||||
|
|
||||||
: supc++.o unwind.o |> !ar |> cxx.a {bin}
|
: supc++.o |> !ar |> cxx.a {bin}
|
||||||
: supc++-baremetal.o unwind.o |> !ar |> cxx-baremetal.a {bin}
|
: supc++-baremetal.o |> !ar |> cxx-baremetal.a {bin}
|
||||||
: foreach {bin} |> !collect_static |>
|
: foreach {bin} |> !collect_static |>
|
||||||
: |> !emit_lib_pkg_config |>
|
: |> !emit_lib_pkg_config |>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
REP_DIR = $(TUP_CWD)
|
REP_DIR = $(TUP_CWD)
|
||||||
|
|
||||||
CPPFLAGS += -I$(REP_DIR)/include
|
|
||||||
|
|
||||||
LIBS += genode-os
|
LIBS += genode-os
|
||||||
|
|
||||||
ifndef NIX_OUTPUTS_DEV
|
ifndef NIX_OUTPUTS_DEV
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _INCLUDE__NANO3D__SQRT_H_
|
#ifndef _INCLUDE__NANO3D__SQRT_H_
|
||||||
#define _INCLUDE__NANO3D__SQRT_H_
|
#define _INCLUDE__NANO3D__SQRT_H__
|
||||||
|
|
||||||
namespace Nano3d {
|
namespace Nano3d {
|
||||||
|
|
||||||
|
@ -38,4 +38,4 @@ namespace Nano3d {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* _INCLUDE__NANO3D__SQRT_H_ */
|
#endif /* _INCLUDE__NANO3D__SQRT_H__ */
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
include_rules
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,8 +0,0 @@
|
||||||
include_rules
|
|
||||||
CPPFLAGS += -I. -I$(REP_DIR)/../demo/include
|
|
||||||
SRC_BIN += $(REP_DIR)/../demo/src/app/scout/data/droidsansb10.tff
|
|
||||||
SRC_BIN += closer.rgba maximize.rgba minimize.rgba windowed.rgba
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: foreach $(SRC_BIN) |> !incbin |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,5 +0,0 @@
|
||||||
include_rules
|
|
||||||
CPPFLAGS += -I.
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,4 +0,0 @@
|
||||||
include_rules
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,4 +0,0 @@
|
||||||
include_rules
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,5 +0,0 @@
|
||||||
include_rules
|
|
||||||
LIBS += vfs
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,8 +0,0 @@
|
||||||
include_rules
|
|
||||||
ifneq ($(X86),)
|
|
||||||
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
||||||
|
|
||||||
endif
|
|
|
@ -1,5 +0,0 @@
|
||||||
include_rules
|
|
||||||
LIBS += vfs
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,5 +0,0 @@
|
||||||
include_rules
|
|
||||||
LIBS += vfs
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,5 +0,0 @@
|
||||||
include_rules
|
|
||||||
CPPFLAGS += -I.
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,5 +0,0 @@
|
||||||
include_rules
|
|
||||||
CPPFLAGS += -I. -I../depot_deploy
|
|
||||||
: foreach *.cc view/*.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,5 +0,0 @@
|
||||||
include_rules
|
|
||||||
CPPFLAGS += -I.
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,5 +0,0 @@
|
||||||
include_rules
|
|
||||||
LIBS += blit
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,4 +0,0 @@
|
||||||
include_rules
|
|
||||||
: foreach *.cc |> !cxx |> %B.o {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
|
@ -1,5 +0,0 @@
|
||||||
include_rules
|
|
||||||
CPPFLAGS += -I.
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
|
||||||
: {obj} |> !prg |> {bin}
|
|
||||||
: {bin} |> !collect_bin |>
|
|
Loading…
Reference in New Issue
Block a user