/** * @file srv.h * @brief Service API. */ #ifndef __SRVSYS_H #define __SRVSYS_H /// 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); #endif