mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-25 16:31:06 +00:00
4e97a6511b
* Instead of always re-load page-tables when a thread context is switched only do this when another user PD's thread is the next target, core-threads are always executed within the last PD's page-table set * remove the concept of the mode transition * instead map the exception vector once in bootstrap code into kernel's memory segment * when a new page directory is constructed for a user PD, copy over the top-level kernel segment entries on RISCV and X86, on ARM we use a designated page directory register for the kernel segment * transfer the current CPU id from bootstrap to core/kernel in a register to ease first stack address calculation * align cpu context member of threads and vms, because of x86 constraints regarding the stack-pointer loading * introduce Align_at template for members with alignment constraints * let the x86 hardware do part of the context saving in ISS, by passing the thread context into the TSS before leaving to user-land * use one exception vector for all ARM platforms including Arm_v6 Fix #2091
78 lines
2.1 KiB
PHP
78 lines
2.1 KiB
PHP
#
|
|
# \brief Build config for Genodes core process
|
|
# \author Martin Stein
|
|
# \date 2011-12-16
|
|
#
|
|
|
|
LIBS += base-hw-common cxx
|
|
|
|
# add include paths
|
|
INC_DIR += $(BASE_DIR)/../base-hw/src/core
|
|
INC_DIR += $(BASE_DIR)/src/core/include
|
|
INC_DIR += $(BASE_DIR)/../base-hw/src/include
|
|
INC_DIR += $(BASE_DIR)/src/include
|
|
INC_DIR += $(BASE_DIR)/../base-hw/src/lib
|
|
|
|
# add C++ sources
|
|
SRC_CC += cpu_session_component.cc
|
|
SRC_CC += cpu_session_support.cc
|
|
SRC_CC += cpu_thread_component.cc
|
|
SRC_CC += core_log.cc
|
|
SRC_CC += core_region_map.cc
|
|
SRC_CC += core_mem_alloc.cc
|
|
SRC_CC += core_rpc_cap_alloc.cc
|
|
SRC_CC += dataspace_component.cc
|
|
SRC_CC += default_log.cc
|
|
SRC_CC += dump_alloc.cc
|
|
SRC_CC += kernel_log.cc
|
|
SRC_CC += io_mem_session_component.cc
|
|
SRC_CC += io_mem_session_support.cc
|
|
SRC_CC += irq_session_component.cc
|
|
SRC_CC += main.cc
|
|
SRC_CC += native_pd_component.cc
|
|
SRC_CC += native_utcb.cc
|
|
SRC_CC += pd_session_support.cc
|
|
SRC_CC += platform.cc
|
|
SRC_CC += platform_rom_modules.cc
|
|
SRC_CC += platform_pd.cc
|
|
SRC_CC += platform_thread.cc
|
|
SRC_CC += stack_area.cc
|
|
SRC_CC += pd_session_component.cc
|
|
SRC_CC += ram_dataspace_support.cc
|
|
SRC_CC += region_map_component.cc
|
|
SRC_CC += rom_session_component.cc
|
|
SRC_CC += trace_session_component.cc
|
|
SRC_CC += signal_receiver.cc
|
|
SRC_CC += ram_dataspace_factory.cc
|
|
SRC_CC += signal_transmitter_noinit.cc
|
|
SRC_CC += thread_start.cc
|
|
SRC_CC += env.cc
|
|
SRC_CC += region_map_support.cc
|
|
SRC_CC += pager.cc
|
|
SRC_CC += _main.cc
|
|
SRC_CC += kernel/cpu_scheduler.cc
|
|
SRC_CC += kernel/double_list.cc
|
|
SRC_CC += kernel/init.cc
|
|
SRC_CC += kernel/thread.cc
|
|
SRC_CC += kernel/signal_receiver.cc
|
|
SRC_CC += kernel/ipc_node.cc
|
|
SRC_CC += kernel/irq.cc
|
|
SRC_CC += kernel/cpu.cc
|
|
SRC_CC += kernel/timer.cc
|
|
SRC_CC += kernel/object.cc
|
|
SRC_CC += init_main_thread.cc
|
|
SRC_CC += capability.cc
|
|
SRC_CC += stack_area_addr.cc
|
|
|
|
# provide Genode version information
|
|
include $(BASE_DIR)/src/core/version.inc
|
|
|
|
# configure multiprocessor mode
|
|
NR_OF_CPUS ?= 1
|
|
CC_OPT += -Wa,--defsym -Wa,NR_OF_CPUS=$(NR_OF_CPUS) -DNR_OF_CPUS=$(NR_OF_CPUS)
|
|
|
|
# declare source locations
|
|
vpath % $(BASE_DIR)/../base-hw/src/core
|
|
vpath % $(BASE_DIR)/src/core
|
|
vpath % $(BASE_DIR)/src/lib/startup
|