From 697c3f5550d8a58901c010635ecb7a76a524d296 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 4 Mar 2016 10:19:38 +0000 Subject: lib: Magic for_each_engine() macro to iterate over available engines Signed-off-by: Chris Wilson --- lib/igt_gt.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lib/igt_gt.h') diff --git a/lib/igt_gt.h b/lib/igt_gt.h index ad993c1b..dfe1cfb3 100644 --- a/lib/igt_gt.h +++ b/lib/igt_gt.h @@ -100,4 +100,13 @@ extern const struct intel_execution_engine { unsigned flags; } intel_execution_engines[]; +#define for_if(expr__) if (!(expr__)) {} else + +#define for_each_engine(fd__, flags__) \ + for (const struct intel_execution_engine *e__ = intel_execution_engines;\ + e__->name; \ + e__++) \ + for_if (gem_has_ring(fd, flags__ = e__->exec_id | e__->flags)) + + #endif /* IGT_GT_H */ -- cgit v1.2.3