48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
|
/**
|
||
|
* @file srv.h
|
||
|
* @brief Service API.
|
||
|
*/
|
||
|
#pragma once
|
||
|
|
||
|
/// Initializes the service API.
|
||
|
Result srvSysInit(void);
|
||
|
|
||
|
/// Exits the service API.
|
||
|
Result srvSysExit(void);
|
||
|
|
||
|
/**
|
||
|
* @brief Retrieves a service handle, retrieving from the environment handle list if possible.
|
||
|
* @param out Pointer to write the handle to.
|
||
|
* @param name Name of the service.
|
||
|
*/
|
||
|
Result srvSysGetServiceHandle(Handle* out, const char* name);
|
||
|
|
||
|
/// Registers the current process as a client to the service API.
|
||
|
Result srvSysRegisterClient(void);
|
||
|
|
||
|
/**
|
||
|
* @brief Enables service notificatios, returning a notification semaphore.
|
||
|
* @param semaphoreOut Pointer to output the notification semaphore to.
|
||
|
*/
|
||
|
Result srvSysEnableNotification(Handle* semaphoreOut);
|
||
|
|
||
|
/**
|
||
|
* @brief Receives a notification.
|
||
|
* @param notificationIdOut Pointer to output the ID of the received notification to.
|
||
|
*/
|
||
|
Result srvSysReceiveNotification(u32* notificationIdOut);
|
||
|
|
||
|
/**
|
||
|
* @brief Registers the current process as a service.
|
||
|
* @param out Pointer to write the service handle to.
|
||
|
* @param name Name of the service.
|
||
|
* @param maxSessions Maximum number of sessions the service can handle.
|
||
|
*/
|
||
|
Result srvSysRegisterService(Handle* out, const char* name, int maxSessions);
|
||
|
|
||
|
/**
|
||
|
* @brief Unregisters the current process as a service.
|
||
|
* @param name Name of the service.
|
||
|
*/
|
||
|
Result srvSysUnregisterService(const char* name);
|