Monado OpenXR Runtime
Loading...
Searching...
No Matches
ipc_server_handler_io_cache.c File Reference

IPC server handlers for xrt_io_cache. More...

#include "xrt/xrt_io_cache.h"
#include "xrt/xrt_space.h"
#include "xrt/xrt_system.h"
#include "util/u_logging.h"
#include "util/u_misc.h"
#include "shared/ipc_message_channel.h"
#include "shared/ipc_protocol.h"
#include "server/ipc_server.h"
#include "server/ipc_server_handle_helpers.h"
#include "server/ipc_server_objects.h"
#include "ipc_server_generated.h"
Include dependency graph for ipc_server_handler_io_cache.c:

Macros

#define MAX_INPUTS_AND_OUTPUTS_COUNT   1024
 
#define FREE_AND_ZERO_MEMORY(PTR)
 
#define GET_XIC_OR_RETURN(ICS, ID, XIC)
 

Functions

xrt_result_t ipc_handle_io_cache_create (volatile struct ipc_client_state *ics, uint32_t *out_id)
 
xrt_result_t ipc_handle_io_cache_get_info (volatile struct ipc_client_state *ics, uint32_t id, struct xrt_io_cache_info *out_info)
 
xrt_result_t ipc_handle_io_cache_read (volatile struct ipc_client_state *ics, uint32_t id, uint64_t generation_id, uint32_t input_count, uint32_t output_count)
 
xrt_result_t ipc_handle_io_cache_create_space (volatile struct ipc_client_state *ics, uint32_t id, const struct xrt_device_id *device_id, enum xrt_input_name name, uint32_t *out_space_id)
 
xrt_result_t ipc_handle_io_cache_set_output (volatile struct ipc_client_state *ics, uint32_t id, const struct xrt_device_id *device_id, enum xrt_output_name name, const struct xrt_output_value *value)
 
xrt_result_t ipc_handle_io_cache_set_haptic_output (volatile struct ipc_client_state *ics, uint32_t id, const struct xrt_device_id *device_id, enum xrt_output_name name, const struct ipc_pcm_haptic_buffer *buffer)
 
xrt_result_t ipc_handle_io_cache_get_output_limits (volatile struct ipc_client_state *ics, uint32_t id, const struct xrt_device_id *device_id, struct xrt_output_limits *out_limits)
 
xrt_result_t ipc_handle_io_cache_destroy (volatile struct ipc_client_state *ics, uint32_t id)
 

Detailed Description

IPC server handlers for xrt_io_cache.

Macro Definition Documentation

◆ FREE_AND_ZERO_MEMORY

#define FREE_AND_ZERO_MEMORY (   PTR)
Value:
do { \
if (PTR != NULL) { \
free(PTR); \
PTR = NULL; \
} \
} while (0)

◆ GET_XIC_OR_RETURN

#define GET_XIC_OR_RETURN (   ICS,
  ID,
  XIC 
)
Value:
do { \
IPC_CHK_AND_RET((ICS)->server, xret, "ipc_server_objects_get_xic_and_validate"); \
} while (0)
xrt_result_t ipc_server_objects_get_xic_and_validate(volatile struct ipc_client_state *ics, uint32_t id, struct xrt_io_cache **out_xic)
Get an input/output cache by ID, must only be called from the per client thread.
Definition ipc_server_objects.c:489
enum xrt_result xrt_result_t
Result type used across Monado.