diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2017-08-14 11:32:07 +0200 |
---|---|---|
committer | Petri Latvala <petri.latvala@intel.com> | 2017-08-14 13:26:35 +0300 |
commit | 3f560388deaaddaa132a5af276f82b090156dd79 (patch) | |
tree | f54fae8c669c9da5439bb1ead7ae7ac062bc4b35 /lib/igt_kms.h | |
parent | d41c4ccbd2f905bd82f55e37283a6d646f0a5e93 (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.h | 9 |
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)) |