33#define IPC_TRACE(IPC_C, ...) U_LOG_IFL_T((IPC_C)->imc.log_level, __VA_ARGS__)
34#define IPC_DEBUG(IPC_C, ...) U_LOG_IFL_D((IPC_C)->imc.log_level, __VA_ARGS__)
35#define IPC_INFO(IPC_C, ...) U_LOG_IFL_I((IPC_C)->imc.log_level, __VA_ARGS__)
36#define IPC_WARN(IPC_C, ...) U_LOG_IFL_W((IPC_C)->imc.log_level, __VA_ARGS__)
37#define IPC_ERROR(IPC_C, ...) U_LOG_IFL_E((IPC_C)->imc.log_level, __VA_ARGS__)
50#define IPC_CHK_AND_RET(IPC_C, XRET, FUNC_STR) \
52 xrt_result_t _ret = XRET; \
53 if (_ret != XRT_SUCCESS) { \
54 ipc_print_result((IPC_C)->imc.log_level, __FILE__, __LINE__, __func__, _ret, FUNC_STR); \
71#define IPC_CHK_WITH_GOTO(IPC_C, XRET, FUNC_STR, GOTO) \
73 xrt_result_t _ret = XRET; \
74 if (_ret != XRT_SUCCESS) { \
75 ipc_print_result((IPC_C)->imc.log_level, __FILE__, __LINE__, __func__, _ret, FUNC_STR); \
92#define IPC_CHK_WITH_RET(IPC_C, XRET, FUNC_STR, RET) \
94 xrt_result_t _ret = XRET; \
95 if (_ret != XRT_SUCCESS) { \
96 ipc_print_result((IPC_C)->imc.log_level, __FILE__, __LINE__, __func__, _ret, FUNC_STR); \
113#define IPC_CHK_ONLY_PRINT(IPC_C, XRET, FUNC_STR) \
115 xrt_result_t _ret = XRET; \
116 if (_ret != XRT_SUCCESS) { \
117 ipc_print_result((IPC_C)->imc.log_level, __FILE__, __LINE__, __func__, _ret, FUNC_STR); \
133#define IPC_CHK_ALWAYS_RET(IPC_C, XRET, FUNC_STR) \
135 xrt_result_t _ret = XRET; \
136 if (_ret != XRT_SUCCESS) { \
137 ipc_print_result((IPC_C)->imc.log_level, __FILE__, __LINE__, __func__, _ret, FUNC_STR); \
Generic typedef for platform-specific shared memory handle.
static struct ipc_client_xdev * ipc_client_xdev(struct xrt_device *xdev)
Convenience helper to go from a xdev to ipc_client_xdev.
Definition: ipc_client.h:197
enum xrt_result xrt_result_t
Result type used across Monado.
xrt_result_t ipc_client_create_native_compositor(struct xrt_system_compositor *xsysc, const struct xrt_session_info *xsi, struct xrt_compositor_native **out_xcn)
Create a native compositor from a system compositor, this is used instead of the normal xrt_system_co...
Definition: ipc_client_compositor.c:1074
xrt_result_t ipc_client_create_system_compositor(struct ipc_connection *ipc_c, struct xrt_image_native_allocator *xina, struct xrt_device *xdev, struct xrt_system_compositor **out_xcs)
Create an IPC client system compositor.
Definition: ipc_client_compositor.c:1105
IPC message channel functions.
Common protocol definition.
IPC util helpers, for internal use only.
Definition: ipc_client_android.cpp:27
An IPC client proxy for an xrt_device.
Definition: ipc_client.h:176
Connection.
Definition: ipc_client.h:156
Wrapper for a socket and flags.
Definition: ipc_message_channel.h:30
A big struct that contains all data that is shared to a client, no pointers allowed in this.
Definition: ipc_protocol.h:197
A wrapper around a native mutex.
Definition: os_threading.h:55
Main compositor server interface.
Definition: xrt_compositor.h:2224
A single HMD or input device.
Definition: xrt_device.h:241
Allocator for system native images, in general you do not need to free the images as they will be con...
Definition: xrt_compositor.h:2626
Session information, mostly overlay extension data.
Definition: xrt_compositor.h:930
The XRT representation of XrSession, this object does not have all of the functionality of a session,...
Definition: xrt_session.h:246
Object that oversees and manages spaces, one created for each XR system.
Definition: xrt_space.h:96
The system compositor handles composition for a system.
Definition: xrt_compositor.h:2414
A collection of xrt_device, and an interface for identifying the roles they have been assigned.
Definition: xrt_system.h:219
A system is a collection of devices, policies and optionally a compositor that is organised into a ch...
Definition: xrt_system.h:62
A tracking system or device origin.
Definition: xrt_tracking.h:71
Basic logging functionality.
Slightly higher level thread safe helpers.
Header holding common defines.
Auto detect OS and certain features.