23 lines
684 B
C
23 lines
684 B
C
|
#pragma once
|
||
|
|
||
|
#include <3ds/types.h>
|
||
|
|
||
|
typedef struct ServiceManagerServiceEntry {
|
||
|
const char *name;
|
||
|
u32 maxSessions;
|
||
|
void (*handler)(void *ctx);
|
||
|
bool isGlobalPort;
|
||
|
} ServiceManagerServiceEntry;
|
||
|
|
||
|
typedef struct ServiceManagerNotificationEntry {
|
||
|
u32 id;
|
||
|
void (*handler)(u32 id);
|
||
|
} ServiceManagerNotificationEntry;
|
||
|
|
||
|
typedef struct ServiceManagerContextAllocator {
|
||
|
void* (*newSessionContext)(u8 serviceId);
|
||
|
void (*freeSessionContext)(void *ctx);
|
||
|
} ServiceManagerContextAllocator;
|
||
|
|
||
|
Result ServiceManager_Run(const ServiceManagerServiceEntry *services, const ServiceManagerNotificationEntry *notifications, const ServiceManagerContextAllocator *allocator);
|