mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 20:42:56 +01:00
Move context area definition to native_type
This commit is contained in:
committed by
Norman Feske
parent
62d81ae487
commit
ea38aad30e
@@ -15,6 +15,7 @@
|
||||
#define _INCLUDE__BASE__NATIVE_TYPES_H_
|
||||
|
||||
#include <base/native_capability.h>
|
||||
#include <base/stdint.h>
|
||||
|
||||
/*
|
||||
* We cannot just include <semaphore.h> and <pthread.h> here
|
||||
@@ -107,6 +108,24 @@ namespace Genode {
|
||||
|
||||
typedef Native_capability_tpl<Cap_dst_policy> Native_capability;
|
||||
typedef int Native_connection_state; /* socket descriptor */
|
||||
|
||||
struct Native_config
|
||||
{
|
||||
/**
|
||||
* Thread-context area configuration.
|
||||
*
|
||||
* Please update platform-specific files after changing these
|
||||
* values, e.g., 'base-linux/src/platform/context_area.*.ld'.
|
||||
*/
|
||||
static addr_t context_area_virtual_base() { return 0x40000000UL; }
|
||||
static addr_t context_area_virtual_size() { return 0x10000000UL; }
|
||||
|
||||
/**
|
||||
* Size of virtual address region holding the context of one thread
|
||||
*/
|
||||
static addr_t context_virtual_size() { return 0x00100000UL; }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* _INCLUDE__BASE__NATIVE_TYPES_H_ */
|
||||
|
||||
@@ -46,7 +46,7 @@ class Context_area_rm_session : public Genode::Rm_session
|
||||
|
||||
/* convert context-area-relative to absolute virtual address */
|
||||
addr_t addr = local_addr;
|
||||
addr += Thread_base::CONTEXT_AREA_VIRTUAL_BASE;
|
||||
addr += Native_config::context_area_virtual_base();
|
||||
|
||||
/* use anonymous mmap for allocating stack backing store */
|
||||
int flags = MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE;
|
||||
|
||||
@@ -30,8 +30,8 @@ static inline void main_thread_bootstrap()
|
||||
using namespace Genode;
|
||||
|
||||
/* reserve context area */
|
||||
Genode::addr_t base = Thread_base::CONTEXT_AREA_VIRTUAL_BASE;
|
||||
Genode::size_t size = Thread_base::CONTEXT_AREA_VIRTUAL_SIZE;
|
||||
Genode::addr_t base = Native_config::context_area_virtual_base();
|
||||
Genode::size_t size = Native_config::context_area_virtual_size();
|
||||
if (lx_vm_reserve(base, size) != base)
|
||||
PERR("reservation of context area [%lx,%lx) failed",
|
||||
(unsigned long) base, (unsigned long) base + size);
|
||||
|
||||
Reference in New Issue
Block a user