lib/igt_debugfs: implement a singleton igt_debugfs_t instance
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 16 Mar 2014 13:40:32 +0000 (14:40 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 16 Mar 2014 13:53:50 +0000 (14:53 +0100)
Allows us to remove every so little bit of boilerplate from
tests, once it's all rolled out.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
lib/igt_debugfs.c

index 79b2618..4a33848 100644 (file)
@@ -121,6 +121,22 @@ void igt_debugfs_init(igt_debugfs_t *debugfs)
        igt_assert(__igt_debugfs_init(debugfs));
 }
 
+static igt_debugfs_t *__igt_debugfs_singleton(void)
+{
+       static igt_debugfs_t singleton;
+       static bool init_done = false;
+
+       if (init_done)
+               return &singleton;
+
+       if (__igt_debugfs_init(&singleton)) {
+               init_done = true;
+               return &singleton;
+       } else {
+               return NULL;
+       }
+}
+
 /**
  * igt_debugfs_open:
  * @debugfs: debugfs access structure