17 #define MAX_SERVICE_PORTS 63
18 #define MAX_SERVICE_SESSIONS 63
19 #define MAX_DOMAIN_OBJECTS 512
87 uint8_t *pointer_buffer;
88 size_t pointer_buffer_size;
90 wait_record_t *wait_record;
101 ipc_server_object_factory_t factory;
103 wait_record_t *wait_record;
113 uint32_t max_sessions;
115 size_t pointer_buffer_size;
116 uint8_t *pointer_buffers;
122 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);
Represents the server side of an IPC object.
Definition: ipcserver.h:30
ipc_server_session_state_t
Definition: ipcserver.h:67
Manager for waiting on synchronizable handles.
struct ipc_server_session_t * owning_session
The session that owns this domain.
Definition: ipcserver.h:64
Session is waiting for incoming IPC messages.
Definition: ipcserver.h:70
struct ipc_server_domain_t * owning_domain
The domain that owns this object, if applicable.
Definition: ipcserver.h:35
ipc_server_domain_t domain
The session's domain. Invalid unless is_domain is true.
Definition: ipcserver.h:82
ipc_server_object_t hipc_manager_object
The object for type-5 messages.
Definition: ipcserver.h:79
Session has been allocated but is still in the process of being initialized.
Definition: ipcserver.h:69
Describes an incoming IPC message. Used as an intermediate during unpacking.
Definition: ipc.h:234
bool is_domain_object
Whether or not this object is part of a domain.
Definition: ipcserver.h:33
uint32_t domain_id
This object's ID within its owning domain, if applicable.
Definition: ipcserver.h:34
session_h client_handle
Client-side handle.
Definition: ipcserver.h:77
Session has encountered an error.
Definition: ipcserver.h:72
uint32_t result_t
Function result.
Definition: types.h:51
Represents an unmarshalled outgoing IPC response.
Definition: ipc.h:121
handle_t session_h
Session handle.
Definition: types.h:42
ipc_server_object_t * active_object
The object that is being serviced.
Definition: ipcserver.h:80
#define MAX_DOMAIN_OBJECTS
Maximum number of objects per domain.
Definition: ipcserver.h:19
void(* dispatch)(struct ipc_server_object_t *obj, ipc_message_t *msg, uint32_t request_id)
IPC message handler function.
Definition: ipcserver.h:48
Session is waiting for ipc_server_object_reply or ipc_server_object_close to be called.
Definition: ipcserver.h:71
bool is_domain
Whether this session represents a domain or a single object.
Definition: ipcserver.h:78
session_h handle
Server-side handle.
Definition: ipcserver.h:76
struct ipc_server_session_t * owning_session
The session that owns this object.
Definition: ipcserver.h:36
ipc_server_session_state_t state
Session's state.
Definition: ipcserver.h:83
handle_t port_h
Port handle.
Definition: types.h:43
uint8_t message_buffer[0x100]
IPC buffer.
Definition: ipcserver.h:85
struct ipc_server_t * owning_server
Server that owns this session.
Definition: ipcserver.h:84
void * userdata
Pointer to user data.
Definition: ipcserver.h:31
Interprocess Communication data structures and functions.
Session does not exist.
Definition: ipcserver.h:68
Represents the server side of an IPC object domain.
Definition: ipcserver.h:62
Definition: ipcserver.h:107
void(* close)(struct ipc_server_object_t *obj)
Release any resources associated with this object.
Definition: ipcserver.h:55
Definition: ipcserver.h:99
ipc_server_object_t * objects[MAX_DOMAIN_OBJECTS]
The objects within this domain.
Definition: ipcserver.h:63
ipc_server_object_t * object
The object that this session owns, if it is not a domain.
Definition: ipcserver.h:81
Definition: ipcserver.h:75