libnx/nx/include/switch/services/smm.h
2021-04-11 12:20:08 +02:00

44 lines
1.6 KiB
C

/**
* @file smm.h
* @brief ServiceManager-IManager (sm:m) service IPC wrapper.
* @author SciresM
* @copyright libnx Authors
*/
#pragma once
#include "../types.h"
#include "../sf/service.h"
#include "../sf/tipc.h"
/// Initialize sm:m.
Result smManagerInitialize(void);
/// Exit sm:m.
void smManagerExit(void);
Result smManagerRegisterProcess(u64 pid, const void *acid_sac, size_t acid_sac_size, const void *aci0_sac, size_t aci0_sac_size);
Result smManagerUnregisterProcess(u64 pid);
/// Initialize sm:m exclusively for tipc (requires <12.0.0 and non-Atmosphere).
Result smManagerCmifInitialize(void);
/// Exit sm:m exclusively for tipc (requires <12.0.0 and non-Atmosphere).
void smManagerCmifExit(void);
/// Gets the Service object for the actual sm:m service session (requires <12.0.0 and non-Atmosphere).
Service* smManagerCmifGetServiceSession(void);
Result smManagerCmifRegisterProcess(u64 pid, const void *acid_sac, size_t acid_sac_size, const void *aci0_sac, size_t aci0_sac_size);
Result smManagerCmifUnregisterProcess(u64 pid);
/// Initialize sm:m exclusively for tipc (requires 12.0.0+ or Atmosphere).
Result smManagerTipcInitialize(void);
/// Exit sm:m exclusively for tipc (requires 12.0.0+ or Atmosphere).
void smManagerTipcExit(void);
/// Gets the TipcService object for the actual sm:m service session (requires 12.0.0+ or Atmosphere).
TipcService* smManagerTipcGetServiceSession(void);
Result smManagerTipcRegisterProcess(u64 pid, const void *acid_sac, size_t acid_sac_size, const void *aci0_sac, size_t aci0_sac_size);
Result smManagerTipcUnregisterProcess(u64 pid);