libtransistor
A userland library for the Nintendo Switch
|
IPC Server data structures and functions. More...
Go to the source code of this file.
Data Structures | |
struct | ipc_server_object_t |
Represents the server side of an IPC object. More... | |
struct | ipc_server_domain_t |
Represents the server side of an IPC object domain. More... | |
struct | ipc_server_session_t |
struct | ipc_server_port_t |
struct | ipc_server_t |
Macros | |
#define | MAX_SERVICE_PORTS 63 |
#define | MAX_SERVICE_SESSIONS 63 |
Maximum number of sessions that can be connected to an IPC server. | |
#define | MAX_DOMAIN_OBJECTS 512 |
Maximum number of objects per domain. | |
Typedefs | |
typedef struct ipc_server_object_t | ipc_server_object_t |
typedef struct ipc_server_domain_t | ipc_server_domain_t |
typedef struct ipc_server_session_t | ipc_server_session_t |
typedef result_t(* | ipc_server_object_factory_t )(ipc_server_object_t **obj, void *userdata) |
typedef struct ipc_server_port_t | ipc_server_port_t |
typedef struct ipc_server_t | ipc_server_t |
Enumerations | |
enum | ipc_server_session_state_t { IPC_SESSION_STATE_INVALID, IPC_SESSION_STATE_INITIALIZING, IPC_SESSION_STATE_LISTENING, IPC_SESSION_STATE_PROCESSING, IPC_SESSION_STATE_ERRORED } |
Functions | |
result_t | ipc_server_create (ipc_server_t *srv, waiter_t *waiter) |
result_t | ipc_server_create_ex (ipc_server_t *srv, waiter_t *waiter, uint32_t max_ports, uint32_t max_sessions, size_t pointer_buffer_size) |
result_t | ipc_server_add_port (ipc_server_t *srv, port_h port, ipc_server_object_factory_t object_factory, void *userdata) |
result_t | ipc_server_create_session (ipc_server_t *srv, session_h server_side, session_h client_side, ipc_server_object_t *object) |
result_t | ipc_server_accept_session (ipc_server_t *srv, ipc_server_port_t *port) |
result_t | ipc_server_destroy (ipc_server_t *srv) |
result_t | ipc_server_object_register (ipc_server_object_t *owner, ipc_server_object_t *new_object) |
result_t | ipc_server_object_reply (ipc_server_object_t *obj, const ipc_response_t *rs) |
result_t | ipc_server_object_close (ipc_server_object_t *obj) |
result_t | ipc_server_domain_add_object (ipc_server_domain_t *domain, ipc_server_object_t *object) |
result_t | ipc_server_domain_get_object (ipc_server_domain_t *domain, uint32_t object_id, ipc_server_object_t **object) |
result_t | ipc_server_domain_destroy (ipc_server_domain_t *domain) |
result_t | ipc_server_session_receive (ipc_server_session_t *sess) |
result_t | ipc_server_session_close (ipc_server_session_t *sess) |
IPC Server data structures and functions.