Add AM and NIM services

This commit is contained in:
wheremyfoodat 2023-01-06 03:44:04 +02:00
parent f965dea916
commit 64de1391ab
9 changed files with 136 additions and 8 deletions

View file

@ -10,7 +10,8 @@ namespace KernelHandles {
// Hardcoded handles
CurrentThread = 0xFFFF8000, // Used by the original kernel
CurrentProcess = 0xFFFF8001, // Used by the original kernel
AC, // Something network related
AC, // Something network related
AM, // Application manager
APT, // App Title something service?
BOSS, // Streetpass stuff?
CECD, // More Streetpass stuff?
@ -22,6 +23,7 @@ namespace KernelHandles {
DSP, // DSP service (Used for audio decoding and output)
LCD, // LCD service (Used for configuring the displays)
MIC, // MIC service (Controls the microphone)
NIM, // Updates, DLC, etc
NDM, // ?????
PTM, // PTM service (Used for accessing various console info, such as battery, shell and pedometer state)

View file

@ -29,6 +29,7 @@ namespace Log {
// Service loggers
static Logger<false> acLogger;
static Logger<false> amLogger;
static Logger<false> aptLogger;
static Logger<false> bossLogger;
static Logger<false> cecdLogger;
@ -40,6 +41,7 @@ namespace Log {
static Logger<false> gspGPULogger;
static Logger<false> gspLCDLogger;
static Logger<false> micLogger;
static Logger<false> nimLogger;
static Logger<false> ndmLogger;
static Logger<false> ptmLogger;
static Logger<false> srvLogger;

19
include/services/am.hpp Normal file
View file

@ -0,0 +1,19 @@
#pragma once
#include "helpers.hpp"
#include "kernel_types.hpp"
#include "logger.hpp"
#include "memory.hpp"
class AMService {
Handle handle = KernelHandles::AM;
Memory& mem;
MAKE_LOG_FUNCTION(log, amLogger)
// Service commands
void listTitleInfo(u32 messagePointer);
public:
AMService(Memory& mem) : mem(mem) {}
void reset();
void handleSyncRequest(u32 messagePointer);
};

19
include/services/nim.hpp Normal file
View file

@ -0,0 +1,19 @@
#pragma once
#include "helpers.hpp"
#include "kernel_types.hpp"
#include "logger.hpp"
#include "memory.hpp"
class NIMService {
Handle handle = KernelHandles::NIM;
Memory& mem;
MAKE_LOG_FUNCTION(log, nimLogger)
// Service commands
void initialize(u32 messagePointer);
public:
NIMService(Memory& mem) : mem(mem) {}
void reset();
void handleSyncRequest(u32 messagePointer);
};

View file

@ -5,6 +5,7 @@
#include "logger.hpp"
#include "memory.hpp"
#include "services/ac.hpp"
#include "services/am.hpp"
#include "services/apt.hpp"
#include "services/boss.hpp"
#include "services/cecd.hpp"
@ -16,6 +17,7 @@
#include "services/gsp_gpu.hpp"
#include "services/gsp_lcd.hpp"
#include "services/mic.hpp"
#include "services/nim.hpp"
#include "services/ndm.hpp"
#include "services/ptm.hpp"
@ -32,6 +34,7 @@ class ServiceManager {
MAKE_LOG_FUNCTION(log, srvLogger)
ACService ac;
AMService am;
APTService apt;
BOSSService boss;
CECDService cecd;
@ -43,6 +46,7 @@ class ServiceManager {
GPUService gsp_gpu;
LCDService gsp_lcd;
MICService mic;
NIMService nim;
NDMService ndm;
PTMService ptm;