2018-04-17 23:41:57 +00:00
|
|
|
#pragma once
|
|
|
|
#include <switch.h>
|
|
|
|
|
|
|
|
#define LAUNCH_QUEUE_SIZE (10)
|
|
|
|
#define LAUNCH_QUEUE_FULL (-1)
|
|
|
|
|
|
|
|
#define LAUNCH_QUEUE_ARG_SIZE_MAX (0x8000)
|
|
|
|
|
2018-04-19 05:00:10 +00:00
|
|
|
class LaunchQueue {
|
|
|
|
public:
|
|
|
|
struct LaunchItem {
|
|
|
|
u64 tid;
|
|
|
|
u64 arg_size;
|
|
|
|
char args[LAUNCH_QUEUE_ARG_SIZE_MAX];
|
|
|
|
};
|
|
|
|
|
2018-04-22 01:52:49 +00:00
|
|
|
static LaunchQueue::LaunchItem *get_item(u64 tid);
|
|
|
|
|
2018-04-19 05:00:10 +00:00
|
|
|
static Result add(u64 tid, const char *args, u64 arg_size);
|
|
|
|
static Result add_item(const LaunchItem *item);
|
2018-04-21 05:58:42 +00:00
|
|
|
static Result add_copy(u64 tid_base, u64 new_tid);
|
2018-04-19 05:00:10 +00:00
|
|
|
static int get_index(u64 tid);
|
|
|
|
static int get_free_index(u64 tid);
|
|
|
|
static bool contains(u64 tid);
|
|
|
|
static void clear();
|
|
|
|
};
|