From 8fe0c6c91ca1411f88e887085eff3df2c839b779 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Fri, 11 Jan 2013 23:10:21 +0100 Subject: [PATCH] base-nova: Coding style --- base-nova/include/32bit/nova/syscalls.h | 1 + base-nova/include/64bit/nova/syscalls.h | 7 ++-- base-nova/include/base/bit_allocator.h | 4 +-- base-nova/include/base/native_types.h | 9 ++--- base-nova/include/base/pager.h | 7 ++-- .../include/nova_cpu_session/connection.h | 2 +- .../nova_cpu_session/nova_cpu_session.h | 7 ++-- base-nova/src/base/env/cap_sel_alloc.cc | 1 + base-nova/src/base/pager/pager.cc | 29 +++++++++------ base-nova/src/base/pager/x86_32/pager.cc | 18 +++++----- base-nova/src/base/pager/x86_64/pager.cc | 32 ++++++++--------- base-nova/src/base/server/server.cc | 23 ++++++------ base-nova/src/core/cpu_session_extension.cc | 3 ++ base-nova/src/core/cpu_session_support.cc | 2 +- base-nova/src/core/echo.cc | 1 + .../src/core/include/cap_session_component.h | 19 +++++----- base-nova/src/core/include/nova_util.h | 1 + base-nova/src/core/include/platform_pd.h | 1 - base-nova/src/core/irq_session_component.cc | 6 ++-- base-nova/src/core/platform.cc | 8 ++--- base-nova/src/core/platform_pd.cc | 1 + base-nova/src/core/platform_thread.cc | 35 +++++++++++-------- base-nova/src/core/ram_session_support.cc | 2 ++ base-nova/src/core/rm_session_support.cc | 3 +- base-nova/src/core/signal_source_component.cc | 1 + 25 files changed, 125 insertions(+), 98 deletions(-) diff --git a/base-nova/include/32bit/nova/syscalls.h b/base-nova/include/32bit/nova/syscalls.h index 20ba7b6331..6c179fa5bb 100644 --- a/base-nova/include/32bit/nova/syscalls.h +++ b/base-nova/include/32bit/nova/syscalls.h @@ -198,6 +198,7 @@ namespace Nova { return syscall_0(NOVA_EC_CTRL, 0, ec); } + ALWAYS_INLINE inline uint8_t create_sc(unsigned sc, unsigned pd, unsigned ec, Qpd qpd) { diff --git a/base-nova/include/64bit/nova/syscalls.h b/base-nova/include/64bit/nova/syscalls.h index 1673e46c38..4a4c8b9541 100644 --- a/base-nova/include/64bit/nova/syscalls.h +++ b/base-nova/include/64bit/nova/syscalls.h @@ -55,7 +55,7 @@ namespace Nova { asm volatile ("syscall" : "+D" (status) - : + : : "rcx", "r11", "memory"); return status; } @@ -68,7 +68,7 @@ namespace Nova { asm volatile ("syscall" : "+D" (status), "+S" (p1) - : + : : "rcx", "r11", "memory"); if (p2) *p2 = p1; return status; @@ -125,7 +125,7 @@ namespace Nova { asm volatile ("syscall" : "+D" (status), "+S"(p3), "+d"(p4) - : + : : "rcx", "r11", "memory"); return status; } @@ -174,6 +174,7 @@ namespace Nova { return syscall_0(NOVA_EC_CTRL, 0, ec); } + ALWAYS_INLINE inline uint8_t create_sc(mword_t sc, mword_t pd, mword_t ec, Qpd qpd) { diff --git a/base-nova/include/base/bit_allocator.h b/base-nova/include/base/bit_allocator.h index e8a24269b6..fc787c1905 100644 --- a/base-nova/include/base/bit_allocator.h +++ b/base-nova/include/base/bit_allocator.h @@ -22,6 +22,7 @@ namespace Genode { class Bit_allocator { protected: + Bit_array _array; void _reserve(addr_t bit_start, size_t const num_cap) @@ -40,8 +41,7 @@ namespace Genode { try { /* - * Throws exception if array is - * accessed outside bounds + * Throws exception if array is * accessed outside bounds */ while (true) { if (_array.get(i, step)) { diff --git a/base-nova/include/base/native_types.h b/base-nova/include/base/native_types.h index e081dbd6fb..544085fa73 100644 --- a/base-nova/include/base/native_types.h +++ b/base-nova/include/base/native_types.h @@ -75,10 +75,11 @@ namespace Genode { struct Raw { - Dst dst; - /* - * It is obsolete and unused in NOVA, - * however still used by generic base part + Dst dst; + + /* + * It is obsolete and unused in NOVA, however still used by + * generic base part */ addr_t local_name; }; diff --git a/base-nova/include/base/pager.h b/base-nova/include/base/pager.h index f184afcb51..871fa72fe7 100644 --- a/base-nova/include/base/pager.h +++ b/base-nova/include/base/pager.h @@ -44,12 +44,12 @@ namespace Genode { */ Signal_context_capability _exception_sigh; - /** + /** * Portal selector for object cleanup/destruction */ addr_t _pt_cleanup; - /** + /** * Semaphore selector to synchronize pause/state/resume operations */ addr_t _sm_state_notify; @@ -57,7 +57,8 @@ namespace Genode { addr_t _initial_esp; addr_t _initial_eip; - struct { + struct + { struct Thread_state thread; addr_t sel_client_ec; bool valid; diff --git a/base-nova/include/nova_cpu_session/connection.h b/base-nova/include/nova_cpu_session/connection.h index 5b7fa18d7e..28b7101477 100644 --- a/base-nova/include/nova_cpu_session/connection.h +++ b/base-nova/include/nova_cpu_session/connection.h @@ -28,7 +28,7 @@ namespace Genode { * \param priority designated priority of all threads created * with this CPU session */ - Nova_cpu_connection(const char *label = "", long priority = DEFAULT_PRIORITY) + Nova_cpu_connection(const char *label = "", long priority = DEFAULT_PRIORITY) : Connection( session("priority=0x%lx, ram_quota=32K, label=\"%s\"", diff --git a/base-nova/include/nova_cpu_session/nova_cpu_session.h b/base-nova/include/nova_cpu_session/nova_cpu_session.h index 8510a9cef5..290ffea7f8 100644 --- a/base-nova/include/nova_cpu_session/nova_cpu_session.h +++ b/base-nova/include/nova_cpu_session/nova_cpu_session.h @@ -23,11 +23,10 @@ namespace Genode { { virtual ~Nova_cpu_session() { } - virtual - Native_capability native_cap(Thread_capability cap) = 0; + virtual Native_capability native_cap(Thread_capability cap) = 0; + + virtual Native_capability pause_sync(Thread_capability) = 0; - virtual - Native_capability pause_sync(Thread_capability) = 0; /********************* ** RPC declaration ** diff --git a/base-nova/src/base/env/cap_sel_alloc.cc b/base-nova/src/base/env/cap_sel_alloc.cc index b3d525724d..7048ddf48c 100644 --- a/base-nova/src/base/env/cap_sel_alloc.cc +++ b/base-nova/src/base/env/cap_sel_alloc.cc @@ -42,6 +42,7 @@ addr_t Cap_selector_allocator::alloc(size_t num_caps_log2) return ret_base; } + void Cap_selector_allocator::free(addr_t cap, size_t num_caps_log2) { alloc_lock()->lock(); diff --git a/base-nova/src/base/pager/pager.cc b/base-nova/src/base/pager/pager.cc index 67fcdcb5fe..7625c548e0 100644 --- a/base-nova/src/base/pager/pager.cc +++ b/base-nova/src/base/pager/pager.cc @@ -27,6 +27,7 @@ using namespace Nova; enum { PF_HANDLER_STACK_SIZE = sizeof(addr_t) * 1024 }; extern Genode::addr_t __core_pd_sel; + Utcb * Pager_object::_check_handler(Thread_base *&myself, Pager_object *&obj) { Utcb * utcb; @@ -49,6 +50,7 @@ Utcb * Pager_object::_check_handler(Thread_base *&myself, Pager_object *&obj) sleep_forever(); } + void Pager_object::_page_fault_handler() { Ipc_pager ipc_pager; @@ -80,6 +82,7 @@ void Pager_object::_page_fault_handler() ipc_pager.reply_and_wait_for_fault(); } + void Pager_object::_exception_handler(addr_t portal_id) { Thread_base *myself; @@ -100,6 +103,7 @@ void Pager_object::_exception_handler(addr_t portal_id) reply(myself->stack_top()); } + void Pager_object::_recall_handler() { Thread_base *myself; @@ -139,6 +143,7 @@ void Pager_object::_recall_handler() reply(myself->stack_top()); } + void Pager_object::_startup_handler() { Thread_base *myself; @@ -169,7 +174,7 @@ void Pager_object::_invoke_handler() if (event < PT_SEL_PARENT || event == PT_SEL_STARTUP || event == SM_SEL_EC || event == PT_SEL_RECALL) { - /** + /* * Caller is requesting the SM cap of thread * this object is paging - it is stored at SM_SEL_EC_CLIENT */ @@ -188,14 +193,16 @@ void Pager_object::_invoke_handler() void Pager_object::wake_up() { cancel_blocking(); } -void Pager_object::client_cancel_blocking() { +void Pager_object::client_cancel_blocking() +{ uint8_t res = sm_ctrl(exc_pt_sel() + SM_SEL_EC_CLIENT, SEMAPHORE_UP); if (res != NOVA_OK) PWRN("cancel blocking failed"); } -uint8_t Pager_object::client_recall() { +uint8_t Pager_object::client_recall() +{ return ec_ctrl(_state.sel_client_ec); } @@ -217,7 +224,7 @@ Pager_object::Pager_object(unsigned long badge) /* creates local EC */ Thread_base::start(); - /* Create portal for exception handlers 0x0 - 0xd */ + /* create portal for exception handlers 0x0 - 0xd */ for (unsigned i = 0; i < PT_SEL_PAGE_FAULT; i++) { res = create_pt(exc_pt_sel() + i, pd_sel, _tid.ec_sel, Mtd(0), (addr_t)_exception_handler); @@ -241,7 +248,7 @@ Pager_object::Pager_object(unsigned long badge) throw Create_page_fault_pt_failed(); } - /* Create portal for exception handlers 0xf - 0x19 */ + /* create portal for exception handlers 0xf - 0x19 */ for (unsigned i = PT_SEL_PAGE_FAULT + 1; i < PT_SEL_PARENT; i++) { res = create_pt(exc_pt_sel() + i, pd_sel, _tid.ec_sel, Mtd(0), (addr_t)_exception_handler); @@ -261,7 +268,7 @@ Pager_object::Pager_object(unsigned long badge) throw Create_startup_pt_failed(); } - /* Create portal for recall handler */ + /* create portal for recall handler */ Mtd mtd(Mtd::ESP | Mtd::EIP | Mtd::ACDB | Mtd::EFL | Mtd::EBSD | Mtd::FSGS); res = create_pt(exc_pt_sel() + PT_SEL_RECALL, pd_sel, _tid.ec_sel, mtd, (addr_t)_recall_handler); @@ -271,7 +278,7 @@ Pager_object::Pager_object(unsigned long badge) throw Create_recall_pt_failed(); } - /* Create portal for final cleanup call used during destruction */ + /* create portal for final cleanup call used during destruction */ res = create_pt(_pt_cleanup, pd_sel, _tid.ec_sel, Mtd(0), reinterpret_cast(_invoke_handler)); if (res) { @@ -287,9 +294,10 @@ Pager_object::Pager_object(unsigned long badge) } } + Pager_object::~Pager_object() { - /** + /* * Revoke all portals of Pager_object from others. * The portals will be finally revoked during thread destruction. */ @@ -302,7 +310,8 @@ Pager_object::~Pager_object() sm_ctrl(sm_cap, SEMAPHORE_UP); revoke(Obj_crd(sm_cap, 0)); - /* Make sure nobody is in the handler anymore by doing an IPC to a + /* + * Make sure nobody is in the handler anymore by doing an IPC to a * local cap pointing to same serving thread (if not running in the * context of the serving thread). When the call returns * we know that nobody is handled by this object anymore, because @@ -315,7 +324,7 @@ Pager_object::~Pager_object() PERR("failure - cleanup call failed res=%d", res); } - /* Revoke portal used for the cleanup call */ + /* revoke portal used for the cleanup call */ revoke(Obj_crd(_pt_cleanup, 0)); cap_selector_allocator()->free(_pt_cleanup, 0); cap_selector_allocator()->free(sm_cap, 0); diff --git a/base-nova/src/base/pager/x86_32/pager.cc b/base-nova/src/base/pager/x86_32/pager.cc index fe43672a00..1b2d32ccb8 100644 --- a/base-nova/src/base/pager/x86_32/pager.cc +++ b/base-nova/src/base/pager/x86_32/pager.cc @@ -21,14 +21,14 @@ using namespace Genode; void Pager_object::_copy_state(Nova::Utcb * utcb) { - _state.thread.ebp = utcb->bp; - _state.thread.eax = utcb->ax; - _state.thread.ebx = utcb->bx; - _state.thread.ecx = utcb->cx; - _state.thread.edx = utcb->dx; - _state.thread.esi = utcb->si; - _state.thread.edi = utcb->di; + _state.thread.ebp = utcb->bp; + _state.thread.eax = utcb->ax; + _state.thread.ebx = utcb->bx; + _state.thread.ecx = utcb->cx; + _state.thread.edx = utcb->dx; + _state.thread.esi = utcb->si; + _state.thread.edi = utcb->di; - _state.thread.gs = utcb->gs.sel; - _state.thread.fs = utcb->fs.sel; + _state.thread.gs = utcb->gs.sel; + _state.thread.fs = utcb->fs.sel; } diff --git a/base-nova/src/base/pager/x86_64/pager.cc b/base-nova/src/base/pager/x86_64/pager.cc index ee65d9052c..c5ad519e69 100644 --- a/base-nova/src/base/pager/x86_64/pager.cc +++ b/base-nova/src/base/pager/x86_64/pager.cc @@ -21,22 +21,22 @@ using namespace Genode; void Pager_object::_copy_state(Nova::Utcb * utcb) { - _state.thread.rbp = utcb->bp; - _state.thread.rax = utcb->ax; - _state.thread.rbx = utcb->bx; - _state.thread.rcx = utcb->cx; - _state.thread.rdx = utcb->dx; - _state.thread.rsi = utcb->si; - _state.thread.rdi = utcb->di; + _state.thread.rbp = utcb->bp; + _state.thread.rax = utcb->ax; + _state.thread.rbx = utcb->bx; + _state.thread.rcx = utcb->cx; + _state.thread.rdx = utcb->dx; + _state.thread.rsi = utcb->si; + _state.thread.rdi = utcb->di; - _state.thread.r8 = utcb->r8; - _state.thread.r9 = utcb->r9; - _state.thread.r10 = utcb->r10; - _state.thread.r11 = utcb->r11; - _state.thread.r12 = utcb->r12; - _state.thread.r13 = utcb->r13; - _state.thread.r14 = utcb->r14; - _state.thread.r15 = utcb->r15; + _state.thread.r8 = utcb->r8; + _state.thread.r9 = utcb->r9; + _state.thread.r10 = utcb->r10; + _state.thread.r11 = utcb->r11; + _state.thread.r12 = utcb->r12; + _state.thread.r13 = utcb->r13; + _state.thread.r14 = utcb->r14; + _state.thread.r15 = utcb->r15; - _state.thread.ss = utcb->ss.sel; + _state.thread.ss = utcb->ss.sel; } diff --git a/base-nova/src/base/server/server.cc b/base-nova/src/base/server/server.cc index 6f9675de67..1701758572 100644 --- a/base-nova/src/base/server/server.cc +++ b/base-nova/src/base/server/server.cc @@ -26,6 +26,7 @@ using namespace Genode; + /*********************** ** Server entrypoint ** ***********************/ @@ -62,13 +63,11 @@ void Rpc_entrypoint::_dissolve(Rpc_object_base *obj) remove_locked(obj); /* - * The activation may execute a blocking operation - * in a dispatch function. Before resolving the - * corresponding object, we need to ensure that - * it is no longer used by an activation. Therefore, - * we to need cancel an eventually blocking operation - * and let the activation leave the context of the - * object. + * The activation may execute a blocking operation in a dispatch function. + * Before resolving the corresponding object, we need to ensure that it is + * no longer used by an activation. Therefore, we to need cancel an + * eventually blocking operation and let the activation leave the context + * of the object. */ _leave_server_object(obj); @@ -123,7 +122,9 @@ void Rpc_entrypoint::_activation_entry() ep->_curr_obj = curr_obj; } if (!ep->_curr_obj) { - /* Badge is used to suppress error message solely. + + /* + * Badge is used to suppress error message solely. * It's non zero during cleanup call of an * rpc_object_base object, see _leave_server_object. */ @@ -205,7 +206,7 @@ Rpc_entrypoint::Rpc_entrypoint(Cap_session *cap_session, size_t stack_size, _delay_start(Lock::LOCKED), _cap_session(cap_session) { - /** + /* * Create thread if we aren't running in core. * * For core this code can't be performed since the sessions aren't @@ -242,7 +243,7 @@ Rpc_entrypoint::Rpc_entrypoint(Cap_session *cap_session, size_t stack_size, request_event_portal(pager_cap, _tid.exc_pt_sel, Nova::PT_SEL_RECALL); - /** + /* * Request native thread cap, _thread_cap only a token. * The native thread cap is required to attach new rpc objects * (to create portals bound to the ec) @@ -254,7 +255,7 @@ Rpc_entrypoint::Rpc_entrypoint(Cap_session *cap_session, size_t stack_size, _tid.ec_sel = ec_cap.local_name(); } else - /** + /* * Required for core threads (creates local EC) */ Thread_base::start(); diff --git a/base-nova/src/core/cpu_session_extension.cc b/base-nova/src/core/cpu_session_extension.cc index 0f6adf4450..72b46f583e 100644 --- a/base-nova/src/core/cpu_session_extension.cc +++ b/base-nova/src/core/cpu_session_extension.cc @@ -19,6 +19,7 @@ using namespace Genode; + Native_capability Cpu_session_component::native_cap(Thread_capability thread_cap) { @@ -30,6 +31,7 @@ Cpu_session_component::native_cap(Thread_capability thread_cap) return thread->platform_thread()->native_cap(); } + Native_capability Cpu_session_component::pause_sync(Thread_capability thread_cap) { @@ -41,6 +43,7 @@ Cpu_session_component::pause_sync(Thread_capability thread_cap) return thread->platform_thread()->pause(); } + void Cpu_session_component::single_step(Thread_capability thread_cap, bool enable) { diff --git a/base-nova/src/core/cpu_session_support.cc b/base-nova/src/core/cpu_session_support.cc index 754544838b..d55cadadec 100644 --- a/base-nova/src/core/cpu_session_support.cc +++ b/base-nova/src/core/cpu_session_support.cc @@ -14,7 +14,7 @@ /* Genode includes */ #include -/* Core includes */ +/* core includes */ #include using namespace Genode; diff --git a/base-nova/src/core/echo.cc b/base-nova/src/core/echo.cc index a474ab34de..6dc881e14a 100644 --- a/base-nova/src/core/echo.cc +++ b/base-nova/src/core/echo.cc @@ -28,6 +28,7 @@ enum { ECHO_EXC_BASE = 0 }; + inline void *echo_stack_top() { static char echo_stack[ECHO_STACK_SIZE]; diff --git a/base-nova/src/core/include/cap_session_component.h b/base-nova/src/core/include/cap_session_component.h index 8f9e4ae536..7de480ac1a 100644 --- a/base-nova/src/core/include/cap_session_component.h +++ b/base-nova/src/core/include/cap_session_component.h @@ -29,12 +29,9 @@ namespace Genode { static long _unique_id_cnt; - class Cap_object : public Native_capability, - public List::Element + struct Cap_object : Native_capability, List::Element { - public: - - Cap_object(addr_t cap_sel) : Native_capability(cap_sel) {} + Cap_object(addr_t cap_sel) : Native_capability(cap_sel) {} }; Tslab _cap_slab; @@ -47,8 +44,7 @@ namespace Genode { * Constructor */ Cap_session_component(Allocator *md_alloc, const char *args) - : - _cap_slab(md_alloc) { } + : _cap_slab(md_alloc) { } /** * Destructor @@ -71,9 +67,9 @@ namespace Genode { addr_t pt_sel = cap_selector_allocator()->alloc(0); addr_t pd_sel = Platform_pd::pd_core_sel(); addr_t ec_sel = ep.local_name(); - + using namespace Nova; - + Lock::Guard cap_lock(_cap_lock); /* create cap object */ @@ -105,7 +101,8 @@ namespace Genode { return Native_capability::invalid_cap(); } - void free(Native_capability cap) { + void free(Native_capability cap) + { if (!cap.valid()) return; Lock::Guard cap_lock(_cap_lock); @@ -120,7 +117,7 @@ namespace Genode { } } PDBG("invalid cap object"); - } + } }; } diff --git a/base-nova/src/core/include/nova_util.h b/base-nova/src/core/include/nova_util.h index 82a7b4f5b7..b3b080c180 100644 --- a/base-nova/src/core/include/nova_util.h +++ b/base-nova/src/core/include/nova_util.h @@ -155,6 +155,7 @@ inline int map_local(Nova::Utcb *utcb, return 0; } + /** * Unmap pages from the local address space * diff --git a/base-nova/src/core/include/platform_pd.h b/base-nova/src/core/include/platform_pd.h index 303e7acf91..6a8986cae5 100644 --- a/base-nova/src/core/include/platform_pd.h +++ b/base-nova/src/core/include/platform_pd.h @@ -88,7 +88,6 @@ namespace Genode { * \return PD selector */ static addr_t pd_core_sel() { return __core_pd_sel; } - }; } diff --git a/base-nova/src/core/irq_session_component.cc b/base-nova/src/core/irq_session_component.cc index c99c57496c..27deb94f28 100644 --- a/base-nova/src/core/irq_session_component.cc +++ b/base-nova/src/core/irq_session_component.cc @@ -117,11 +117,11 @@ class Genode::Irq_proxy_component : public Irq_proxy { /* alloc slector where IRQ will be mapped */ _irq_sel = cap_selector_allocator()->alloc(); - + /* since we run in APIC mode translate IRQ 0 (PIT) to 2 */ if (!_irq_number) _irq_number = 2; - + /* map IRQ number to selector */ int ret = map_local((Nova::Utcb *)Thread_base::myself()->utcb(), Nova::Obj_crd(platform_specific()->gsi_base_sel() + _irq_number, 0), @@ -131,7 +131,7 @@ class Genode::Irq_proxy_component : public Irq_proxy PERR("Could not map IRQ %ld", _irq_number); return false; } - + /* assign IRQ to CPU */ enum { CPU = 0 }; Nova::assign_gsi(_irq_sel, 0, CPU); diff --git a/base-nova/src/core/platform.cc b/base-nova/src/core/platform.cc index 3d722b390b..bcdbb9e89b 100644 --- a/base-nova/src/core/platform.cc +++ b/base-nova/src/core/platform.cc @@ -36,6 +36,7 @@ enum { verbose_boot_info = true }; Native_utcb *main_thread_utcb(); + /** * Initial value of esp register, saved by the crt0 startup code * @@ -304,7 +305,7 @@ Platform::Platform() : Native_config::context_area_virtual_base() + Native_config::context_area_virtual_size(), check[i]); nova_die(); - } + } } /* initialize core's physical-memory and I/O memory allocator */ @@ -392,7 +393,7 @@ Platform::Platform() : addr_t core_local_addr = _map_page(trunc_page(mem_desc->addr) >> get_page_size_log2(), - (round_page(mem_desc->addr + mem_desc->size) - + (round_page(mem_desc->addr + mem_desc->size) - trunc_page(mem_desc->addr)) >> get_page_size_log2()); if (!core_local_addr) { PERR("could not map multi boot module"); @@ -410,7 +411,7 @@ Platform::Platform() : if (trunc_page(mem_desc->addr) <= mem_desc->aux && mem_desc->aux < round_page(mem_desc->addr + mem_desc->size)) { aux = core_local_addr + (mem_desc->aux - mem_desc->addr); - } else { + } else { curr_cmd_line_page = mem_desc->aux >> get_page_size_log2(); if (curr_cmd_line_page != prev_cmd_line_page) { mapped_cmd_line = _map_page(curr_cmd_line_page, 2); @@ -425,7 +426,6 @@ Platform::Platform() : Rom_module *rom_module = new (core_mem_alloc()) Rom_module(core_local_addr, mem_desc->size, name); _rom_fs.insert(rom_module); - } /* export hypervisor info page as ROM module */ diff --git a/base-nova/src/core/platform_pd.cc b/base-nova/src/core/platform_pd.cc index 777e9839d4..9cf2287d57 100644 --- a/base-nova/src/core/platform_pd.cc +++ b/base-nova/src/core/platform_pd.cc @@ -20,6 +20,7 @@ using namespace Genode; + /*************************** ** Public object members ** ***************************/ diff --git a/base-nova/src/core/platform_thread.cc b/base-nova/src/core/platform_thread.cc index 061ea212d2..530129bafb 100644 --- a/base-nova/src/core/platform_thread.cc +++ b/base-nova/src/core/platform_thread.cc @@ -64,7 +64,7 @@ int Platform_thread::start(void *ip, void *sp) return -3; } - /** + /* * Create semaphore required for Genode locking. * It is created at the root pager exception base + * SM_SEL_EC_CLIENT and can be later on requested by the thread @@ -127,14 +127,14 @@ int Platform_thread::start(void *ip, void *sp) uint8_t res; - /* Create lock for EC used by lock_helper */ + /* create lock for EC used by lock_helper */ res = create_sm(sm_ec_sel, pd_core_sel, 0); if (res != NOVA_OK) { PERR("could not create semaphore for new thread"); goto cleanup_base; } - /* Remap exception portals for first thread */ + /* remap exception portals for first thread */ if (map_local((Utcb *)Thread_base::myself()->utcb(), Obj_crd(_pager->exc_pt_sel(), 4), Obj_crd(_sel_exc_base, 4))) @@ -155,7 +155,7 @@ int Platform_thread::start(void *ip, void *sp) goto cleanup_base; } - /* Remap Genode specific, RECALL and STARTUP portals for first thread */ + /* remap Genode specific, RECALL and STARTUP portals for first thread */ for (unsigned i = 0; i < sizeof(remap_dst)/sizeof(remap_dst[0]); i++) { if (map_local((Utcb *)Thread_base::myself()->utcb(), Obj_crd(remap_src[i], 0), @@ -172,7 +172,7 @@ int Platform_thread::start(void *ip, void *sp) goto cleanup_pd; } - /* Create first thread in task */ + /* create first thread in task */ enum { THREAD_GLOBAL = true }; res = create_ec(_sel_ec(), pd_sel, _cpu_no, pd_utcb, 0, 0, THREAD_GLOBAL); @@ -181,7 +181,7 @@ int Platform_thread::start(void *ip, void *sp) goto cleanup_pd; } - /** + /* * We have to assign the pd here, because after create_sc the thread * becomes running immediately. */ @@ -190,10 +190,10 @@ int Platform_thread::start(void *ip, void *sp) _pager->initial_eip((addr_t)ip); _pager->initial_esp((addr_t)sp); - /* Let the thread run */ + /* let the thread run */ res = create_sc(_sel_sc(), pd_sel, _sel_ec(), Qpd()); if (res != NOVA_OK) { - /** + /* * Reset pd cap since thread got not running and pd cap will * be revoked during cleanup. */ @@ -257,13 +257,15 @@ void Platform_thread::resume() _pager->wake_up(); } + Thread_state Platform_thread::state() { Thread_state s; if (!_pager) throw Cpu_session::State_access_failed(); _pager->copy_thread_state(&s); return s; -}; +} + void Platform_thread::state(Thread_state s) { @@ -274,7 +276,7 @@ void Platform_thread::state(Thread_state s) if (_sel_exc_base != Native_thread::INVALID_INDEX) throw Cpu_session::State_access_failed(); - /** + /* * _sel_exc_base exception base of thread in caller * protection domain - not in Core ! * _is_vcpu If true it will run as vCPU, @@ -282,7 +284,8 @@ void Platform_thread::state(Thread_state s) */ _sel_exc_base = s.sel_exc_base; _is_vcpu = s.is_vcpu; -}; +} + void Platform_thread::cancel_blocking() { @@ -291,6 +294,7 @@ void Platform_thread::cancel_blocking() _pager->client_cancel_blocking(); } + void Platform_thread::single_step(bool on) { if (!_pager) return; @@ -298,6 +302,7 @@ void Platform_thread::single_step(bool on) _pager->single_step(on); } + unsigned long Platform_thread::pager_object_badge() const { return Native_thread::INVALID_INDEX; @@ -305,9 +310,11 @@ unsigned long Platform_thread::pager_object_badge() const Platform_thread::Platform_thread(const char *name, unsigned, int thread_id) -: _pd(0), _pager(0), _id_base(cap_selector_allocator()->alloc(1)), - _sel_exc_base(Native_thread::INVALID_INDEX), _cpu_no(0), - _is_main_thread(false), _is_vcpu(false) { } +: + _pd(0), _pager(0), _id_base(cap_selector_allocator()->alloc(1)), + _sel_exc_base(Native_thread::INVALID_INDEX), _cpu_no(0), + _is_main_thread(false), _is_vcpu(false) +{ } Platform_thread::~Platform_thread() diff --git a/base-nova/src/core/ram_session_support.cc b/base-nova/src/core/ram_session_support.cc index b62a460300..2e1578b94f 100644 --- a/base-nova/src/core/ram_session_support.cc +++ b/base-nova/src/core/ram_session_support.cc @@ -30,6 +30,7 @@ using namespace Genode; void Ram_session_component::_export_ram_ds(Dataspace_component *ds) { } + void Ram_session_component::_revoke_ram_ds(Dataspace_component *ds) { size_t page_rounded_size = (ds->size() + get_page_size() - 1) & get_page_mask(); @@ -48,6 +49,7 @@ void Ram_session_component::_revoke_ram_ds(Dataspace_component *ds) ds->assign_core_local_addr(0); } + void Ram_session_component::_clear_ds(Dataspace_component *ds) { /* diff --git a/base-nova/src/core/rm_session_support.cc b/base-nova/src/core/rm_session_support.cc index e38e377ce6..d761cb1b73 100644 --- a/base-nova/src/core/rm_session_support.cc +++ b/base-nova/src/core/rm_session_support.cc @@ -24,6 +24,7 @@ using namespace Genode; static const bool verbose = false; + void Rm_client::unmap(addr_t core_local_base, addr_t virt_base, size_t size) { addr_t const core_local_end = core_local_base + (size - 1); @@ -48,7 +49,7 @@ void Rm_client::unmap(addr_t core_local_base, addr_t virt_base, size_t size) + (0x1000 << crd.order()); /* size of mapping */ } else { - /* This can happen if the region has never been touched */ + /* this can happen if the region has never been touched */ if (verbose) PINF("Nothing mapped at local: %08lx virt: %08lx", diff --git a/base-nova/src/core/signal_source_component.cc b/base-nova/src/core/signal_source_component.cc index e90c2d1cc8..e7111f058d 100644 --- a/base-nova/src/core/signal_source_component.cc +++ b/base-nova/src/core/signal_source_component.cc @@ -36,6 +36,7 @@ void Signal_source_component::release(Signal_context_component *context) _signal_queue.remove(context); } + void Signal_source_component::submit(Signal_context_component *context, Ipc_ostream *ostream, int cnt)