mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 21:57:55 +00:00
hw_x86_64: move Cpu_context stuff to extra unit
Other platforms implement Kernel::Cpu_context stuff in kernel/cpu_context.cc. On x86_64, it was implemented in kernel/thread.cc. The commit fixes this inconsistency to the other platforms. Ref #1652
This commit is contained in:
parent
4e98a0f64a
commit
91cb3decdb
@ -17,6 +17,7 @@ SRC_S += spec/x86_64/crt0.s
|
|||||||
SRC_CC += spec/x86_64/kernel/thread.cc
|
SRC_CC += spec/x86_64/kernel/thread.cc
|
||||||
SRC_CC += spec/x86_64/idt.cc
|
SRC_CC += spec/x86_64/idt.cc
|
||||||
SRC_CC += spec/x86_64/tss.cc
|
SRC_CC += spec/x86_64/tss.cc
|
||||||
|
SRC_CC += spec/x86_64/kernel/cpu_context.cc
|
||||||
|
|
||||||
# include less specific configuration
|
# include less specific configuration
|
||||||
include $(REP_DIR)/lib/mk/x86/core.inc
|
include $(REP_DIR)/lib/mk/x86/core.inc
|
||||||
|
25
repos/base-hw/src/core/spec/x86_64/kernel/cpu_context.cc
Normal file
25
repos/base-hw/src/core/spec/x86_64/kernel/cpu_context.cc
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* \brief Kernel cpu context specific implementation
|
||||||
|
* \author Stefan Kalkowski
|
||||||
|
* \date 2015-02-11
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2015 Genode Labs GmbH
|
||||||
|
*
|
||||||
|
* This file is part of the Genode OS framework, which is distributed
|
||||||
|
* under the terms of the GNU General Public License version 2.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* core includes */
|
||||||
|
#include <kernel/cpu.h>
|
||||||
|
|
||||||
|
void Kernel::Cpu_context::_init(size_t const stack_size, addr_t const table)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* The stack pointer already contains the stack base address
|
||||||
|
* of all CPU's kernel stacks, on this uni-processor platform
|
||||||
|
* it is sufficient to increase it by the stack's size
|
||||||
|
*/
|
||||||
|
sp = sp + stack_size;
|
||||||
|
}
|
@ -16,16 +16,8 @@
|
|||||||
/* core includes */
|
/* core includes */
|
||||||
#include <kernel/thread.h>
|
#include <kernel/thread.h>
|
||||||
#include <kernel/pd.h>
|
#include <kernel/pd.h>
|
||||||
#include <kernel/kernel.h>
|
|
||||||
|
|
||||||
using namespace Kernel;
|
void Kernel::Thread::_mmu_exception()
|
||||||
|
|
||||||
|
|
||||||
/********************
|
|
||||||
** Kernel::Thread **
|
|
||||||
********************/
|
|
||||||
|
|
||||||
void Thread::_mmu_exception()
|
|
||||||
{
|
{
|
||||||
_become_inactive(AWAITS_RESUME);
|
_become_inactive(AWAITS_RESUME);
|
||||||
_fault_pd = (addr_t)_pd->platform_pd();
|
_fault_pd = (addr_t)_pd->platform_pd();
|
||||||
@ -45,22 +37,7 @@ void Thread::_mmu_exception()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Thread::_init() { }
|
void Kernel::Thread::_init() { }
|
||||||
|
|
||||||
|
|
||||||
void Thread::_call_update_pd() { }
|
void Kernel::Thread::_call_update_pd() { }
|
||||||
|
|
||||||
|
|
||||||
/*************************
|
|
||||||
** Kernel::Cpu_context **
|
|
||||||
*************************/
|
|
||||||
|
|
||||||
void Kernel::Cpu_context::_init(size_t const stack_size, addr_t const table)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* the stack pointer already contains the stack base address
|
|
||||||
* of all CPU's kernel stacks, on this uni-processor platform
|
|
||||||
* it is sufficient to increase it by the stack's size
|
|
||||||
*/
|
|
||||||
sp = sp + stack_size;
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user