aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
authorGravatar bunnei <ericbunnie@gmail.com>2014-05-20 18:13:25 -0400
committerGravatar bunnei <ericbunnie@gmail.com>2014-05-20 18:13:25 -0400
commit44336329eddd7dbe1f76144e9a1e95e5f76ed372 (patch)
tree49c103d52af50fe6ef451324f1c8aae6363d0468 /src/core/hle/kernel/kernel.cpp
parent0886dc70ed3eb3c30fcbe0039d53a5c780a6c4b9 (diff)
- created a Kernel namespace
- cleaned up Kernel code a bit (moved stuff into namespace, fixed whitespace issues) - added handle types for all different CTROS handles
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp49
1 files changed, 24 insertions, 25 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index f7145ddd..b1fdffde 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -12,22 +12,16 @@
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/thread.h"
-KernelObjectPool g_kernel_objects;
+namespace Kernel {
-void __KernelInit() {
- __KernelThreadingInit();
-}
-
-void __KernelShutdown() {
- __KernelThreadingShutdown();
-}
+ObjectPool g_object_pool;
-KernelObjectPool::KernelObjectPool() {
+ObjectPool::ObjectPool() {
memset(occupied, 0, sizeof(bool) * MAX_COUNT);
next_id = INITIAL_NEXT_ID;
}
-Handle KernelObjectPool::Create(KernelObject *obj, int range_bottom, int range_top) {
+Handle ObjectPool::Create(Object* obj, int range_bottom, int range_top) {
if (range_top > MAX_COUNT) {
range_top = MAX_COUNT;
}
@@ -46,8 +40,7 @@ Handle KernelObjectPool::Create(KernelObject *obj, int range_bottom, int range_t
return 0;
}
-bool KernelObjectPool::IsValid(Handle handle)
-{
+bool ObjectPool::IsValid(Handle handle) {
int index = handle - HANDLE_OFFSET;
if (index < 0)
return false;
@@ -57,26 +50,24 @@ bool KernelObjectPool::IsValid(Handle handle)
return occupied[index];
}
-void KernelObjectPool::Clear()
-{
- for (int i = 0; i < MAX_COUNT; i++)
- {
+void ObjectPool::Clear() {
+ for (int i = 0; i < MAX_COUNT; i++) {
//brutally clear everything, no validation
if (occupied[i])
delete pool[i];
occupied[i] = false;
}
- memset(pool, 0, sizeof(KernelObject*)*MAX_COUNT);
+ memset(pool, 0, sizeof(Object*)*MAX_COUNT);
next_id = INITIAL_NEXT_ID;
}
-KernelObject *&KernelObjectPool::operator [](Handle handle)
+Object* &ObjectPool::operator [](Handle handle)
{
_dbg_assert_msg_(KERNEL, IsValid(handle), "GRABBING UNALLOCED KERNEL OBJ");
return pool[handle - HANDLE_OFFSET];
}
-void KernelObjectPool::List() {
+void ObjectPool::List() {
for (int i = 0; i < MAX_COUNT; i++) {
if (occupied[i]) {
if (pool[i]) {
@@ -87,18 +78,16 @@ void KernelObjectPool::List() {
}
}
-int KernelObjectPool::GetCount()
-{
+int ObjectPool::GetCount() {
int count = 0;
- for (int i = 0; i < MAX_COUNT; i++)
- {
+ for (int i = 0; i < MAX_COUNT; i++) {
if (occupied[i])
count++;
}
return count;
}
-KernelObject *KernelObjectPool::CreateByIDType(int type) {
+Object* ObjectPool::CreateByIDType(int type) {
// Used for save states. This is ugly, but what other way is there?
switch (type) {
//case SCE_KERNEL_TMID_Alarm:
@@ -142,8 +131,18 @@ KernelObject *KernelObjectPool::CreateByIDType(int type) {
}
}
+void Init() {
+ __KernelThreadingInit();
+}
+
+void Shutdown() {
+ __KernelThreadingShutdown();
+}
+
+} // namespace
+
bool __KernelLoadExec(u32 entry_point) {
- __KernelInit();
+ Kernel::Init();
Core::g_app_core->SetPC(entry_point);