From 7beba5bd2f6a01127bccfe4158555a9874ab2860 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Fri, 18 May 2018 12:20:59 +0200 Subject: lib/igt_kms: Add try_prop_enum and set_prop_enum for mode objects, v2. This adds the possibility to test arbitrary enumerations in IGT without having to define mappings for each and every one. Changes since v1: - Add commit description. - Add try_prop_enum, to allow handling unknown enumerations. Signed-off-by: Maarten Lankhorst Reviewed-by: Mika Kahola --- lib/igt_kms.h | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'lib/igt_kms.h') diff --git a/lib/igt_kms.h b/lib/igt_kms.h index 4222a341..3a12f278 100644 --- a/lib/igt_kms.h +++ b/lib/igt_kms.h @@ -574,6 +574,14 @@ uint64_t igt_plane_get_prop(igt_plane_t *plane, enum igt_atomic_plane_properties igt_plane_set_prop_changed(plane, prop); \ } while (0) +extern bool igt_plane_try_prop_enum(igt_plane_t *plane, + enum igt_atomic_plane_properties prop, + const char *val); + +extern void igt_plane_set_prop_enum(igt_plane_t *plane, + enum igt_atomic_plane_properties prop, + const char *val); + extern void igt_plane_replace_prop_blob(igt_plane_t *plane, enum igt_atomic_plane_properties prop, const void *ptr, size_t length); @@ -609,10 +617,17 @@ uint64_t igt_output_get_prop(igt_output_t *output, enum igt_atomic_connector_pro igt_output_set_prop_changed(output, prop); \ } while (0) +extern bool igt_output_try_prop_enum(igt_output_t *output, + enum igt_atomic_connector_properties prop, + const char *val); + +extern void igt_output_set_prop_enum(igt_output_t *output, + enum igt_atomic_connector_properties prop, + const char *val); + extern void igt_output_replace_prop_blob(igt_output_t *output, enum igt_atomic_connector_properties prop, const void *ptr, size_t length); - /** * igt_pipe_obj_has_prop: * @pipe: Pipe to check. @@ -693,6 +708,20 @@ igt_pipe_has_prop(igt_display_t *display, enum pipe pipe, #define igt_pipe_set_prop_value(display, pipe, prop, value) \ igt_pipe_obj_set_prop_value(&(display)->pipes[(pipe)], prop, value) +extern bool igt_pipe_obj_try_prop_enum(igt_pipe_t *pipe, + enum igt_atomic_crtc_properties prop, + const char *val); + +extern void igt_pipe_obj_set_prop_enum(igt_pipe_t *pipe, + enum igt_atomic_crtc_properties prop, + const char *val); + +#define igt_pipe_try_prop_enum(display, pipe, prop, val) \ + igt_pipe_obj_try_prop_enum(&(display)->pipes[(pipe)], prop, val) + +#define igt_pipe_set_prop_enum(display, pipe, prop, val) \ + igt_pipe_obj_set_prop_enum(&(display)->pipes[(pipe)], prop, val) + extern void igt_pipe_obj_replace_prop_blob(igt_pipe_t *pipe, enum igt_atomic_crtc_properties prop, const void *ptr, size_t length); -- cgit v1.2.3