mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-03 04:26:45 +00:00
parent
b4209cb3bb
commit
df3e4edd76
@ -82,7 +82,6 @@ int SUPR3CallVMMR0Ex(PVMR0 pVMR0, VMCPUID idCpu, unsigned
|
|||||||
|
|
||||||
|
|
||||||
bool create_emt_vcpu(pthread_t * thread, size_t stack_size,
|
bool create_emt_vcpu(pthread_t * thread, size_t stack_size,
|
||||||
const pthread_attr_t *attr,
|
|
||||||
void *(*start_routine)(void *), void *arg,
|
void *(*start_routine)(void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
|
@ -697,7 +697,6 @@ int SUPR3CallVMMR0Ex(PVMR0 pVMR0, VMCPUID idCpu, unsigned
|
|||||||
|
|
||||||
|
|
||||||
bool create_emt_vcpu(pthread_t * thread, size_t stack_size,
|
bool create_emt_vcpu(pthread_t * thread, size_t stack_size,
|
||||||
const pthread_attr_t *attr,
|
|
||||||
void *(*start_routine)(void *), void *arg,
|
void *(*start_routine)(void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
|
@ -286,7 +286,6 @@ void *operator new (__SIZE_TYPE__ size, int log2_align)
|
|||||||
|
|
||||||
|
|
||||||
bool create_emt_vcpu(pthread_t * pthread, size_t stack,
|
bool create_emt_vcpu(pthread_t * pthread, size_t stack,
|
||||||
const pthread_attr_t *attr,
|
|
||||||
void *(*start_routine)(void *), void *arg,
|
void *(*start_routine)(void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
@ -305,13 +304,13 @@ bool create_emt_vcpu(pthread_t * pthread, size_t stack,
|
|||||||
|
|
||||||
if (vmx)
|
if (vmx)
|
||||||
vcpu_handler = new (0x10) Vcpu_handler_vmx(genode_env(),
|
vcpu_handler = new (0x10) Vcpu_handler_vmx(genode_env(),
|
||||||
stack, attr, start_routine,
|
stack, start_routine,
|
||||||
arg, cpu_session, location,
|
arg, cpu_session, location,
|
||||||
cpu_id, name, pd_vcpus);
|
cpu_id, name, pd_vcpus);
|
||||||
|
|
||||||
if (svm)
|
if (svm)
|
||||||
vcpu_handler = new (0x10) Vcpu_handler_svm(genode_env(),
|
vcpu_handler = new (0x10) Vcpu_handler_svm(genode_env(),
|
||||||
stack, attr, start_routine,
|
stack, start_routine,
|
||||||
arg, cpu_session, location,
|
arg, cpu_session, location,
|
||||||
cpu_id, name, pd_vcpus);
|
cpu_id, name, pd_vcpus);
|
||||||
|
|
||||||
|
@ -767,7 +767,7 @@ class Vcpu_handler : public Vmm::Vcpu_dispatcher<Genode::Thread>,
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Vcpu_handler(Genode::Env &env, size_t stack_size, const pthread_attr_t *attr,
|
Vcpu_handler(Genode::Env &env, size_t stack_size,
|
||||||
void *(*start_routine) (void *), void *arg,
|
void *(*start_routine) (void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
@ -776,7 +776,7 @@ class Vcpu_handler : public Vmm::Vcpu_dispatcher<Genode::Thread>,
|
|||||||
:
|
:
|
||||||
Vmm::Vcpu_dispatcher<Genode::Thread>(env, stack_size, cpu_session,
|
Vmm::Vcpu_dispatcher<Genode::Thread>(env, stack_size, cpu_session,
|
||||||
location, name),
|
location, name),
|
||||||
_pthread(*this, attr ? *attr : 0),
|
_pthread(*this),
|
||||||
_start_routine(start_routine),
|
_start_routine(start_routine),
|
||||||
_start_routine_arg(arg),
|
_start_routine_arg(arg),
|
||||||
_vcpu(cpu_session, location, pd_vcpu),
|
_vcpu(cpu_session, location, pd_vcpu),
|
||||||
|
@ -94,14 +94,14 @@ class Vcpu_handler_svm : public Vcpu_handler
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Vcpu_handler_svm(Genode::Env &env, size_t stack_size, const pthread_attr_t *attr,
|
Vcpu_handler_svm(Genode::Env &env, size_t stack_size,
|
||||||
void *(*start_routine) (void *), void *arg,
|
void *(*start_routine) (void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
unsigned int cpu_id, const char * name,
|
unsigned int cpu_id, const char * name,
|
||||||
Genode::Pd_session_capability pd_vcpu)
|
Genode::Pd_session_capability pd_vcpu)
|
||||||
:
|
:
|
||||||
Vcpu_handler(env, stack_size, attr, start_routine, arg, cpu_session,
|
Vcpu_handler(env, stack_size, start_routine, arg, cpu_session,
|
||||||
location, cpu_id, name, pd_vcpu)
|
location, cpu_id, name, pd_vcpu)
|
||||||
{
|
{
|
||||||
using namespace Nova;
|
using namespace Nova;
|
||||||
|
@ -158,14 +158,14 @@ class Vcpu_handler_vmx : public Vcpu_handler
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Vcpu_handler_vmx(Genode::Env &env, size_t stack_size, const pthread_attr_t *attr,
|
Vcpu_handler_vmx(Genode::Env &env, size_t stack_size,
|
||||||
void *(*start_routine) (void *), void *arg,
|
void *(*start_routine) (void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
unsigned int cpu_id, const char * name,
|
unsigned int cpu_id, const char * name,
|
||||||
Genode::Pd_session_capability pd_vcpu)
|
Genode::Pd_session_capability pd_vcpu)
|
||||||
:
|
:
|
||||||
Vcpu_handler(env, stack_size, attr, start_routine, arg, cpu_session,
|
Vcpu_handler(env, stack_size, start_routine, arg, cpu_session,
|
||||||
location, cpu_id, name, pd_vcpu)
|
location, cpu_id, name, pd_vcpu)
|
||||||
{
|
{
|
||||||
using namespace Nova;
|
using namespace Nova;
|
||||||
|
@ -33,7 +33,6 @@ HRESULT genode_check_memory_config(ComObjPtr<Machine> machine);
|
|||||||
* hardware acceleration support.
|
* hardware acceleration support.
|
||||||
*/
|
*/
|
||||||
bool create_emt_vcpu(pthread_t * pthread, size_t stack,
|
bool create_emt_vcpu(pthread_t * pthread, size_t stack,
|
||||||
const pthread_attr_t *attr,
|
|
||||||
void *(*start_routine)(void *), void *arg,
|
void *(*start_routine)(void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
|
@ -89,7 +89,7 @@ static int create_thread(pthread_t *thread, const pthread_attr_t *attr,
|
|||||||
Genode::Affinity::Space space = cpu_session->affinity_space();
|
Genode::Affinity::Space space = cpu_session->affinity_space();
|
||||||
Genode::Affinity::Location location(space.location_of_index(cpu_id));
|
Genode::Affinity::Location location(space.location_of_index(cpu_id));
|
||||||
|
|
||||||
if (create_emt_vcpu(thread, stack_size, attr, start_routine, arg,
|
if (create_emt_vcpu(thread, stack_size, start_routine, arg,
|
||||||
cpu_session, location, cpu_id, rtthread->szName))
|
cpu_session, location, cpu_id, rtthread->szName))
|
||||||
return 0;
|
return 0;
|
||||||
/*
|
/*
|
||||||
@ -99,10 +99,9 @@ static int create_thread(pthread_t *thread, const pthread_attr_t *attr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
pthread_t thread_obj = new (vmm_heap())
|
pthread_t thread_obj = new (vmm_heap())
|
||||||
pthread(attr ? *attr : 0, start_routine,
|
pthread(start_routine, arg, stack_size, rtthread->szName,
|
||||||
arg, stack_size, rtthread->szName,
|
cpu_connection(rtthread->enmType),
|
||||||
cpu_connection(rtthread->enmType),
|
Genode::Affinity::Location());
|
||||||
Genode::Affinity::Location());
|
|
||||||
|
|
||||||
if (!thread_obj)
|
if (!thread_obj)
|
||||||
return EAGAIN;
|
return EAGAIN;
|
||||||
|
@ -84,7 +84,6 @@ int SUPR3CallVMMR0Ex(PVMR0 pVMR0, VMCPUID idCpu, unsigned
|
|||||||
|
|
||||||
|
|
||||||
bool create_emt_vcpu(pthread_t * thread, size_t stack_size,
|
bool create_emt_vcpu(pthread_t * thread, size_t stack_size,
|
||||||
const pthread_attr_t *attr,
|
|
||||||
void *(*start_routine)(void *), void *arg,
|
void *(*start_routine)(void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
|
@ -772,7 +772,6 @@ void *operator new (__SIZE_TYPE__ size, int log2_align)
|
|||||||
|
|
||||||
|
|
||||||
bool create_emt_vcpu(pthread_t * pthread, ::size_t stack,
|
bool create_emt_vcpu(pthread_t * pthread, ::size_t stack,
|
||||||
const pthread_attr_t *attr,
|
|
||||||
void *(*start_routine)(void *), void *arg,
|
void *(*start_routine)(void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
@ -791,13 +790,13 @@ bool create_emt_vcpu(pthread_t * pthread, ::size_t stack,
|
|||||||
|
|
||||||
if (vmx)
|
if (vmx)
|
||||||
vcpu_handler = new (0x10) Vcpu_handler_vmx(genode_env(),
|
vcpu_handler = new (0x10) Vcpu_handler_vmx(genode_env(),
|
||||||
stack, attr, start_routine,
|
stack, start_routine,
|
||||||
arg, cpu_session, location,
|
arg, cpu_session, location,
|
||||||
cpu_id, name, pd_vcpus);
|
cpu_id, name, pd_vcpus);
|
||||||
|
|
||||||
if (svm)
|
if (svm)
|
||||||
vcpu_handler = new (0x10) Vcpu_handler_svm(genode_env(),
|
vcpu_handler = new (0x10) Vcpu_handler_svm(genode_env(),
|
||||||
stack, attr, start_routine,
|
stack, start_routine,
|
||||||
arg, cpu_session, location,
|
arg, cpu_session, location,
|
||||||
cpu_id, name, pd_vcpus);
|
cpu_id, name, pd_vcpus);
|
||||||
|
|
||||||
|
@ -788,7 +788,7 @@ class Vcpu_handler : public Vmm::Vcpu_dispatcher<Genode::Thread>,
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Vcpu_handler(Genode::Env &env, size_t stack_size, const pthread_attr_t *attr,
|
Vcpu_handler(Genode::Env &env, size_t stack_size,
|
||||||
pthread::start_routine_t start_routine, void *arg,
|
pthread::start_routine_t start_routine, void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
@ -797,7 +797,7 @@ class Vcpu_handler : public Vmm::Vcpu_dispatcher<Genode::Thread>,
|
|||||||
:
|
:
|
||||||
Vmm::Vcpu_dispatcher<Genode::Thread>(env, stack_size, cpu_session,
|
Vmm::Vcpu_dispatcher<Genode::Thread>(env, stack_size, cpu_session,
|
||||||
location, name),
|
location, name),
|
||||||
_pthread(*this, attr ? *attr : 0),
|
_pthread(*this),
|
||||||
_start_routine(start_routine),
|
_start_routine(start_routine),
|
||||||
_start_routine_arg(arg),
|
_start_routine_arg(arg),
|
||||||
_vcpu(cpu_session, location, pd_vcpu),
|
_vcpu(cpu_session, location, pd_vcpu),
|
||||||
|
@ -84,14 +84,14 @@ class Vcpu_handler_svm : public Vcpu_handler
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Vcpu_handler_svm(Genode::Env &env, size_t stack_size, const pthread_attr_t *attr,
|
Vcpu_handler_svm(Genode::Env &env, size_t stack_size,
|
||||||
void *(*start_routine) (void *), void *arg,
|
void *(*start_routine) (void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
unsigned int cpu_id, const char * name,
|
unsigned int cpu_id, const char * name,
|
||||||
Genode::Pd_session_capability pd_vcpu)
|
Genode::Pd_session_capability pd_vcpu)
|
||||||
:
|
:
|
||||||
Vcpu_handler(env, stack_size, attr, start_routine, arg, cpu_session,
|
Vcpu_handler(env, stack_size, start_routine, arg, cpu_session,
|
||||||
location, cpu_id, name, pd_vcpu)
|
location, cpu_id, name, pd_vcpu)
|
||||||
{
|
{
|
||||||
using namespace Nova;
|
using namespace Nova;
|
||||||
|
@ -169,14 +169,14 @@ class Vcpu_handler_vmx : public Vcpu_handler
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Vcpu_handler_vmx(Genode::Env &env, size_t stack_size, const pthread_attr_t *attr,
|
Vcpu_handler_vmx(Genode::Env &env, size_t stack_size,
|
||||||
void *(*start_routine) (void *), void *arg,
|
void *(*start_routine) (void *), void *arg,
|
||||||
Genode::Cpu_session * cpu_session,
|
Genode::Cpu_session * cpu_session,
|
||||||
Genode::Affinity::Location location,
|
Genode::Affinity::Location location,
|
||||||
unsigned int cpu_id, const char * name,
|
unsigned int cpu_id, const char * name,
|
||||||
Genode::Pd_session_capability pd_vcpu)
|
Genode::Pd_session_capability pd_vcpu)
|
||||||
:
|
:
|
||||||
Vcpu_handler(env, stack_size, attr, start_routine, arg, cpu_session,
|
Vcpu_handler(env, stack_size, start_routine, arg, cpu_session,
|
||||||
location, cpu_id, name, pd_vcpu)
|
location, cpu_id, name, pd_vcpu)
|
||||||
{
|
{
|
||||||
using namespace Nova;
|
using namespace Nova;
|
||||||
|
Loading…
Reference in New Issue
Block a user