From 033cd8df2439d08a78a9a8b5a09e910869254941 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Tue, 17 Apr 2018 18:04:41 -0600 Subject: [PATCH] Stratosphere: Launch Queue C style lib -> namespace --- .../loader/source/ldr_launch_queue.cpp | 61 ++++++++----------- .../loader/source/ldr_launch_queue.hpp | 22 ++++--- 2 files changed, 37 insertions(+), 46 deletions(-) diff --git a/stratosphere/loader/source/ldr_launch_queue.cpp b/stratosphere/loader/source/ldr_launch_queue.cpp index 698e496e4..d3e038a54 100644 --- a/stratosphere/loader/source/ldr_launch_queue.cpp +++ b/stratosphere/loader/source/ldr_launch_queue.cpp @@ -2,45 +2,34 @@ #include -static launch_item_t g_launch_queue[LAUNCH_QUEUE_SIZE]; - -int launch_queue_get_index(u64 TID) { - for(unsigned int i = 0; i < LAUNCH_QUEUE_SIZE; i++) { - if(g_launch_queue[i].tid == TID) { - return i; +namespace LaunchQueue { + static LaunchItem g_launch_queue[LAUNCH_QUEUE_SIZE]; + + int get_index(u64 tid) { + for(unsigned int i = 0; i < LAUNCH_QUEUE_SIZE; i++) { + if(g_launch_queue[i].tid == tid) { + return i; + } } - } - return LAUNCH_QUEUE_FULL; -} - -int launch_queue_get_free_index(u64 TID) { - for(unsigned int i = 0; i < LAUNCH_QUEUE_SIZE; i++) { - if(g_launch_queue[i].tid == TID || g_launch_queue[i].tid == 0x0) { - return i; - } - } - return LAUNCH_QUEUE_FULL; -} - -Result launch_queue_add(launch_item_t *item) { - if(item->arg_size > LAUNCH_QUEUE_ARG_SIZE_MAX) { - return 0x209; + return LAUNCH_QUEUE_FULL; } - int idx = launch_queue_get_free_index(item->tid); - if(idx == LAUNCH_QUEUE_FULL) - return 0x409; + int get_free_index(u64 tid) { + for(unsigned int i = 0; i < LAUNCH_QUEUE_SIZE; i++) { + if(g_launch_queue[i].tid == tid || g_launch_queue[i].tid == 0x0) { + return i; + } + } + return LAUNCH_QUEUE_FULL; + } - g_launch_queue[idx] = *item; - return 0x0; -} - -bool launch_queue_contains(uint64_t TID) { - return launch_queue_get_index(TID) != LAUNCH_QUEUE_FULL; -} - -void launch_queue_clear() { - for (unsigned int i = 0; i < LAUNCH_QUEUE_SIZE; i++) { - g_launch_queue[i].tid = 0; + bool contains(u64 tid) { + return get_index(tid) != LAUNCH_QUEUE_FULL; + } + + void clear() { + for (unsigned int i = 0; i < LAUNCH_QUEUE_SIZE; i++) { + g_launch_queue[i].tid = 0; + } } } \ No newline at end of file diff --git a/stratosphere/loader/source/ldr_launch_queue.hpp b/stratosphere/loader/source/ldr_launch_queue.hpp index b0be76915..af4dcfc93 100644 --- a/stratosphere/loader/source/ldr_launch_queue.hpp +++ b/stratosphere/loader/source/ldr_launch_queue.hpp @@ -6,14 +6,16 @@ #define LAUNCH_QUEUE_ARG_SIZE_MAX (0x8000) -typedef struct launch_item_t { - u64 tid; - u64 arg_size; - char args[LAUNCH_QUEUE_ARG_SIZE_MAX]; -} launch_item_t; +namespace LaunchQueue { + struct LaunchItem { + u64 tid; + u64 arg_size; + char args[LAUNCH_QUEUE_ARG_SIZE_MAX]; + }; -Result launch_queue_add(launch_item_t item); -int launch_queue_get_index(u64 TID); -int launch_queue_get_free_index(u64 TID = 0); -bool launch_queue_contains(u64 TID); -void launch_queue_clear(); \ No newline at end of file + Result add(LaunchItem *item); + int get_index(u64 tid); + int get_free_index(u64 tid); + bool contains(u64 tid); + void clear(); +} \ No newline at end of file