selftest
#define selftest(name, func) int func(void);
#undef selftest
#define selftest(name, func) int func(struct drm_i915_private *i915);
#undef selftest
#undef selftest
#define selftest(name, func) mock_##name,
#undef selftest
#define selftest(name, func) live_##name,
#undef selftest
#define selftest(name, func) perf_##name,
#undef selftest
struct selftest {
#define selftest(n, f) [mock_##n] = { .name = #n, { .mock = f } },
#undef selftest
#define selftest(n, f) [live_##n] = { .name = #n, { .live = f } },
#undef selftest
#define selftest(n, f) [perf_##n] = { .name = #n, { .live = f } },
#undef selftest
#define selftest(n, func) selftest_0(n, func, param(n))