summaryrefslogtreecommitdiff
path: root/lib/igt_kms.h
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2017-08-14 11:32:07 +0200
committerPetri Latvala <petri.latvala@intel.com>2017-08-14 13:26:35 +0300
commit3f560388deaaddaa132a5af276f82b090156dd79 (patch)
treef54fae8c669c9da5439bb1ead7ae7ac062bc4b35 /lib/igt_kms.h
parentd41c4ccbd2f905bd82f55e37283a6d646f0a5e93 (diff)
lib/kms: Check usage of for_each_*
Except for for_each_pipe_static they cannot be used outside of fixtures/subtest. Assert this. This will make the broken version of kms_ccs assert when run, which also would have made $make check fail. Cc: Daniel Stone <daniels@collabora.com> Cc: Jason Ekstrand <jason@jlekstrand.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Diffstat (limited to 'lib/igt_kms.h')
-rw-r--r--lib/igt_kms.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index b28fe8c5..96713c24 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -31,6 +31,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <stddef.h>
+#include <assert.h>
#include <xf86drmMode.h>
@@ -457,7 +458,7 @@ static inline bool igt_output_is_connected(igt_output_t *output)
* This for loop iterates over all outputs.
*/
#define for_each_connected_output(display, output) \
- for (int i__ = 0; i__ < (display)->n_outputs; i__++) \
+ for (int i__ = 0; assert(igt_can_fail()), i__ < (display)->n_outputs; i__++) \
for_each_if (((output = &(display)->outputs[i__]), \
igt_output_is_connected(output)))
@@ -485,7 +486,7 @@ static inline bool igt_output_is_connected(igt_output_t *output)
* Used #for_each_pipe_static instead.
*/
#define for_each_pipe(display, pipe) \
- for (pipe = 0; pipe < igt_display_get_n_pipes(display); pipe++)
+ for (pipe = 0; assert(igt_can_fail()), pipe < igt_display_get_n_pipes(display); pipe++)
/**
* for_each_pipe_with_valid_output:
@@ -498,7 +499,7 @@ static inline bool igt_output_is_connected(igt_output_t *output)
*/
#define for_each_pipe_with_valid_output(display, pipe, output) \
for (int con__ = pipe = 0; \
- pipe < igt_display_get_n_pipes((display)) && con__ < (display)->n_outputs; \
+ assert(igt_can_fail()), pipe < igt_display_get_n_pipes((display)) && con__ < (display)->n_outputs; \
con__ = (con__ + 1 < (display)->n_outputs) ? con__ + 1 : (pipe = pipe + 1, 0)) \
for_each_if (((output = &(display)->outputs[con__]), \
igt_pipe_connector_valid(pipe, output)))
@@ -518,7 +519,7 @@ static inline bool igt_output_is_connected(igt_output_t *output)
for_each_if (igt_pipe_connector_valid(pipe, output))
#define for_each_plane_on_pipe(display, pipe, plane) \
- for (int j__ = 0; (plane) = &(display)->pipes[(pipe)].planes[j__], \
+ for (int j__ = 0; assert(igt_can_fail()), (plane) = &(display)->pipes[(pipe)].planes[j__], \
j__ < (display)->pipes[(pipe)].n_planes; j__++)
#define IGT_FIXED(i,f) ((i) << 16 | (f))