Monado OpenXR Runtime
Macros
oxr_api_verify.h File Reference

File for verifying app input into api functions. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _OXR_VERIFY_AND_SET_AND_INIT(log, thing, new_thing, THING, name, lookup)
 
#define _OXR_VERIFY_SET(log, arg, new_arg, THING)
 
#define OXR_VERIFY_INSTANCE_AND_INIT_LOG(log, thing, new_thing, name)   _OXR_VERIFY_AND_SET_AND_INIT(log, thing, new_thing, INSTANCE, name, new_thing)
 
#define OXR_VERIFY_MESSENGER_AND_INIT_LOG(log, thing, new_thing, name)   _OXR_VERIFY_AND_SET_AND_INIT(log, thing, new_thing, MESSENGER, name, new_thing->inst)
 
#define OXR_VERIFY_SESSION_AND_INIT_LOG(log, thing, new_thing, name)   _OXR_VERIFY_AND_SET_AND_INIT(log, thing, new_thing, SESSION, name, new_thing->sys->inst)
 
#define OXR_VERIFY_SPACE_AND_INIT_LOG(log, thing, new_thing, name)   _OXR_VERIFY_AND_SET_AND_INIT(log, thing, new_thing, SPACE, name, new_thing->sess->sys->inst)
 
#define OXR_VERIFY_ACTION_AND_INIT_LOG(log, thing, new_thing, name)   _OXR_VERIFY_AND_SET_AND_INIT(log, thing, new_thing, ACTION, name, new_thing->act_set->inst)
 
#define OXR_VERIFY_SWAPCHAIN_AND_INIT_LOG(log, thing, new_thing, name)   _OXR_VERIFY_AND_SET_AND_INIT(log, thing, new_thing, SWAPCHAIN, name, new_thing->sess->sys->inst)
 
#define OXR_VERIFY_ACTIONSET_AND_INIT_LOG(log, thing, new_thing, name)   _OXR_VERIFY_AND_SET_AND_INIT(log, thing, new_thing, ACTIONSET, name, new_thing->inst)
 
#define OXR_VERIFY_INSTANCE_NOT_NULL(log, arg, new_arg)   _OXR_VERIFY_SET(log, arg, new_arg, INSTANCE);
 
#define OXR_VERIFY_MESSENGER_NOT_NULL(log, arg, new_arg)   _OXR_VERIFY_SET(log, arg, new_arg, MESSENGER);
 
#define OXR_VERIFY_SESSION_NOT_NULL(log, arg, new_arg)   _OXR_VERIFY_SET(log, arg, new_arg, SESSION);
 
#define OXR_VERIFY_SPACE_NOT_NULL(log, arg, new_arg)   _OXR_VERIFY_SET(log, arg, new_arg, SPACE);
 
#define OXR_VERIFY_ACTION_NOT_NULL(log, arg, new_arg)   _OXR_VERIFY_SET(log, arg, new_arg, ACTION);
 
#define OXR_VERIFY_SWAPCHAIN_NOT_NULL(log, arg, new_arg)   _OXR_VERIFY_SET(log, arg, new_arg, SWAPCHAIN);
 
#define OXR_VERIFY_ACTIONSET_NOT_NULL(log, arg, new_arg)   _OXR_VERIFY_SET(log, arg, new_arg, ACTIONSET);
 
#define OXR_VERIFY_EXTENSION(log, inst, mixed_case_name)
 Checks if a required extension is enabled. More...
 
#define OXR_VERIFY_ARG_NOT_NULL(log, arg)
 
#define OXR_VERIFY_ARG_NOT_ZERO(log, arg)
 
#define OXR_VERIFY_ARG_TYPE_CAN_BE_NULL(log, arg, type_enum)
 
#define OXR_VERIFY_ARG_TYPE_AND_NOT_NULL(log, arg, type_enum)
 
#define OXR_VERIFY_SUBACTION_PATHS(log, count, paths)
 
#define OXR_VERIFY_ARG_SINGLE_LEVEL_FIXED_LENGTH_PATH(log, path)
 
#define OXR_VERIFY_ARG_LOCALIZED_NAME(log, string)
 
#define OXR_VERIFY_POSE(log, p)
 
XrResult oxr_verify_full_path_c (struct oxr_logger *log, const char *path, const char *name)
 
XrResult oxr_verify_full_path (struct oxr_logger *log, const char *path, size_t length, const char *name)
 Verify a full path. More...
 
XrResult oxr_verify_fixed_size_single_level_path (struct oxr_logger *, const char *path, uint32_t array_size, const char *name)
 Verify a single path level that sits inside of a fixed sized array. More...
 
XrResult oxr_verify_localized_name (struct oxr_logger *, const char *string, uint32_t array_size, const char *name)
 Verify an arbitrary UTF-8 string that sits inside of a fixed sized array. More...
 
XrResult oxr_verify_subaction_paths_create (struct oxr_logger *log, struct oxr_instance *inst, uint32_t countSubactionPaths, const XrPath *subactionPaths, const char *variable)
 Verify a set of subaction paths for action creation. More...
 
XrResult oxr_verify_subaction_path_sync (struct oxr_logger *log, struct oxr_instance *inst, XrPath path, uint32_t index)
 Verify a set of subaction paths for action sync. More...
 
XrResult oxr_verify_subaction_path_get (struct oxr_logger *log, struct oxr_instance *inst, XrPath path, const struct oxr_sub_paths *act_sub_paths, struct oxr_sub_paths *out_sub_paths, const char *variable)
 Verify a set of subaction paths for action state get. More...
 
XrResult oxr_verify_XrSessionCreateInfo (struct oxr_logger *, const struct oxr_instance *, const XrSessionCreateInfo *)
 
XrResult oxr_verify_XrGraphicsBindingOpenGLXlibKHR (struct oxr_logger *, const XrGraphicsBindingOpenGLXlibKHR *)
 
XrResult oxr_verify_XrGraphicsBindingVulkanKHR (struct oxr_logger *, const XrGraphicsBindingVulkanKHR *)
 

Detailed Description

File for verifying app input into api functions.

Author
Jakob Bornecrantz jakob.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m

Macro Definition Documentation

◆ _OXR_VERIFY_AND_SET_AND_INIT

#define _OXR_VERIFY_AND_SET_AND_INIT (   log,
  thing,
  new_thing,
  THING,
  name,
  lookup 
)
Value:
do { \
oxr_log_init(log, name); \
if ((void *)thing == NULL) { \
return oxr_error(log, XR_ERROR_HANDLE_INVALID, \
"(" #thing " == NULL)"); \
} \
new_thing = (__typeof__(new_thing))thing; \
if (new_thing->handle.debug != OXR_XR_DEBUG_##THING) { \
return oxr_error(log, XR_ERROR_HANDLE_INVALID, \
"(" #thing " == %p)", \
(void *)new_thing); \
} \
if (new_thing->handle.state != OXR_HANDLE_STATE_LIVE) { \
return oxr_error(log, XR_ERROR_HANDLE_INVALID, \
" state == %s (" #thing " == %p)", \
new_thing->handle.state), \
(void *)new_thing); \
} \
oxr_log_set_instance(log, lookup); \
} while (0)
State after successful oxr_handle_init.
Definition: oxr_objects.h:103
XrResult oxr_error(struct oxr_logger *logger, XrResult result, const char *fmt,...)
Definition: oxr_logger.c:79
const char * oxr_handle_state_to_string(enum oxr_handle_state state)
Returns a human-readable label for a handle state.
Definition: oxr_handle_base.c:43

◆ _OXR_VERIFY_SET

#define _OXR_VERIFY_SET (   log,
  arg,
  new_arg,
  THING 
)
Value:
do { \
if ((void *)arg == NULL) { \
return oxr_error(log, XR_ERROR_HANDLE_INVALID, \
"(" #arg " == NULL)"); \
} \
new_arg = (__typeof__(new_arg))arg; \
if (new_arg->handle.debug != OXR_XR_DEBUG_##THING) { \
return oxr_error(log, XR_ERROR_HANDLE_INVALID, \
"(" #arg " == %p)", (void *)new_arg); \
} \
} while (0)
XrResult oxr_error(struct oxr_logger *logger, XrResult result, const char *fmt,...)
Definition: oxr_logger.c:79