mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-21 02:01:38 +00:00
parent
d2fd00a828
commit
194b6b64c1
@ -180,7 +180,7 @@ extern "C" void init_kernel_uniprocessor()
|
||||
core_pd_id = core_id();
|
||||
|
||||
/* initialize all processor objects */
|
||||
multiprocessor();
|
||||
processor_pool();
|
||||
|
||||
/* go multiprocessor mode */
|
||||
Processor::start_secondary_processors(&_start_secondary_processors);
|
||||
@ -263,7 +263,7 @@ extern "C" void init_kernel_multiprocessor()
|
||||
_main_thread_utcb->start_info()->init(t.id(), Genode::Native_capability());
|
||||
t.ip = (addr_t)CORE_MAIN;;
|
||||
t.sp = (addr_t)s + STACK_SIZE;
|
||||
t.init(multiprocessor()->select(processor_id), core_id(), &utcb, 1);
|
||||
t.init(processor_pool()->select(processor_id), core_id(), &utcb, 1);
|
||||
|
||||
/* kernel initialization finished */
|
||||
init_platform();
|
||||
@ -279,7 +279,7 @@ extern "C" void kernel()
|
||||
{
|
||||
data_lock().lock();
|
||||
unsigned const processor_id = Processor::id();
|
||||
Processor * const processor = multiprocessor()->select(processor_id);
|
||||
Processor * const processor = processor_pool()->select(processor_id);
|
||||
Processor_scheduler * const scheduler = processor->scheduler();
|
||||
scheduler->head()->exception(processor_id);
|
||||
scheduler->head()->proceed(processor_id);
|
||||
|
@ -17,8 +17,8 @@
|
||||
using namespace Kernel;
|
||||
|
||||
|
||||
Multiprocessor * Kernel::multiprocessor()
|
||||
Processor_pool * Kernel::processor_pool()
|
||||
{
|
||||
static Multiprocessor s;
|
||||
static Processor_pool s;
|
||||
return &s;
|
||||
}
|
||||
|
@ -38,12 +38,12 @@ namespace Kernel
|
||||
/**
|
||||
* Provides a processor object for every provided processor
|
||||
*/
|
||||
class Multiprocessor;
|
||||
class Processor_pool;
|
||||
|
||||
/**
|
||||
* Return multiprocessor singleton
|
||||
* Return Processor_pool singleton
|
||||
*/
|
||||
Multiprocessor * multiprocessor();
|
||||
Processor_pool * processor_pool();
|
||||
|
||||
/**
|
||||
* Return kernel name of the core protection-domain
|
||||
@ -110,7 +110,7 @@ class Kernel::Processor : public Processor_driver
|
||||
Processor_scheduler * scheduler() { return &_scheduler; }
|
||||
};
|
||||
|
||||
class Kernel::Multiprocessor
|
||||
class Kernel::Processor_pool
|
||||
{
|
||||
private:
|
||||
|
||||
@ -123,7 +123,7 @@ class Kernel::Multiprocessor
|
||||
*
|
||||
* \param id kernel name of the targeted processor
|
||||
*/
|
||||
Multiprocessor()
|
||||
Processor_pool()
|
||||
{
|
||||
for (unsigned i = 0; i < PROCESSORS; i++) {
|
||||
new (_data[i]) Processor;
|
||||
|
@ -376,7 +376,7 @@ void Thread::_call_start_thread()
|
||||
* Instead we always assign the primary processor.
|
||||
*/
|
||||
if (cpu_id) { PERR("multiprocessing not supported"); }
|
||||
t->init(multiprocessor()->primary(), pd_id, utcb, 1);
|
||||
t->init(processor_pool()->primary(), pd_id, utcb, 1);
|
||||
user_arg_0((Call_ret)t->_pd->tlb());
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ class Kernel::Vm : public Object<Vm, MAX_VMS, Vm_ids, vm_ids, vm_pool>,
|
||||
Vm(void * const state,
|
||||
Signal_context * const context)
|
||||
:
|
||||
Execution_context(multiprocessor()->primary(), Priority::MIN),
|
||||
Execution_context(processor_pool()->primary(), Priority::MIN),
|
||||
_state((Vm_state * const)state),
|
||||
_context(context)
|
||||
{ }
|
||||
|
Loading…
x
Reference in New Issue
Block a user