[gnome-control-center] thunderbolt: sync bolt-names.[ch] from bolt



commit 2fc4dc82a35aa9df29b56ac626dbe2fd5abf41e3
Author: Christian Kellner <christian kellner me>
Date:   Fri Feb 1 17:48:57 2019 +0100

    thunderbolt: sync bolt-names.[ch] from bolt
    
    Adds a utility function that deterministically generates an object
    path from a path base and an object id.
    The corresponding bolt commit is:
      a396eb986611ed73fc0ccca2127f29ab1e3aac62

 panels/thunderbolt/bolt-names.c | 48 +++++++++++++++++++++++++++++++++++++++++
 panels/thunderbolt/bolt-names.h | 23 ++++++++++++++++++++
 panels/thunderbolt/meson.build  |  1 +
 3 files changed, 72 insertions(+)
---
diff --git a/panels/thunderbolt/bolt-names.c b/panels/thunderbolt/bolt-names.c
new file mode 100644
index 000000000..7426b2f32
--- /dev/null
+++ b/panels/thunderbolt/bolt-names.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright © 2019 Red Hat, Inc
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ *       Christian J. Kellner <christian kellner me>
+ */
+
+#include "config.h"
+
+#include "bolt-names.h"
+
+/* Each element must only contain the ASCII characters "[A-Z][a-z][0-9]_" */
+#define DBUS_OPATH_VALID_CHARS "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"
+
+char *
+bolt_gen_object_path (const char *base,
+                      const char *oid)
+{
+  g_autofree char *id = NULL;
+
+  if (oid)
+    {
+      id = g_strdup (oid);
+      g_strcanon (id, DBUS_OPATH_VALID_CHARS, '_');
+    }
+
+  if (base && id)
+    return g_build_path ("/", "/", base, id, NULL);
+  else if (base)
+    return g_build_path ("/", "/", base, NULL);
+  else if (id)
+    return g_build_path ("/", "/", id, NULL);
+
+  return g_strdup ("/");
+}
diff --git a/panels/thunderbolt/bolt-names.h b/panels/thunderbolt/bolt-names.h
index 2c0a97b24..460eed5a4 100644
--- a/panels/thunderbolt/bolt-names.h
+++ b/panels/thunderbolt/bolt-names.h
@@ -20,11 +20,18 @@
 
 #pragma once
 
+#include <glib.h>
+
+G_BEGIN_DECLS
+
 /* D-Bus API revision (here for the lack of a better place) */
 #define BOLT_DBUS_API_VERSION 1U
 
 /* logging */
 
+#define BOLT_LOG_DOMAIN_UID "BOLT_DOMAIN_UID"
+#define BOLT_LOG_DOMAIN_NAME "BOLT_DOMAIN_NAME"
+
 #define BOLT_LOG_DEVICE_UID "BOLT_DEVICE_UID"
 #define BOLT_LOG_DEVICE_NAME "BOLT_DEVICE_NAME"
 #define BOLT_LOG_DEVICE_STATE "BOLT_DEVICE_STATE"
@@ -36,8 +43,10 @@
 #define BOLT_LOG_TOPIC "BOLT_TOPIC"
 #define BOLT_LOG_VERSION "BOLT_VERSION"
 #define BOLT_LOG_CONTEXT "BOLT_LOG_CONTEXT"
+#define BOLT_LOG_BUG_MARK "BOLT_LOG_BUG"
 
 /* logging - message ids */
+#define BOLT_LOG_MSG_IDLEN 33
 #define BOLT_LOG_MSG_ID_STARTUP "dd11929c788e48bdbb6276fb5f26b08a"
 
 
@@ -45,6 +54,20 @@
 
 #define BOLT_DBUS_NAME "org.freedesktop.bolt"
 #define BOLT_DBUS_PATH "/org/freedesktop/bolt"
+#define BOLT_DBUS_PATH_DOMAINS BOLT_DBUS_PATH "/domains"
+#define BOLT_DBUS_PATH_DEVICES BOLT_DBUS_PATH "/devices"
 #define BOLT_DBUS_INTERFACE "org.freedesktop.bolt1.Manager"
 
 #define BOLT_DBUS_DEVICE_INTERFACE "org.freedesktop.bolt1.Device"
+#define BOLT_DBUS_DOMAIN_INTERFACE "org.freedesktop.bolt1.Domain"
+#define BOLT_DBUS_POWER_INTERFACE "org.freedesktop.bolt1.Power"
+
+/* other well known names */
+#define INTEL_WMI_THUNDERBOLT_GUID "86CCFD48-205E-4A77-9C48-2021CBEDE341"
+
+/* helper functions */
+
+char *      bolt_gen_object_path (const char *path_base,
+                                  const char *object_id);
+
+G_END_DECLS
diff --git a/panels/thunderbolt/meson.build b/panels/thunderbolt/meson.build
index 17e125b5f..233ca1902 100644
--- a/panels/thunderbolt/meson.build
+++ b/panels/thunderbolt/meson.build
@@ -22,6 +22,7 @@ sources = files(
   'bolt-device.c',
   'bolt-enums.c',
   'bolt-error.c',
+  'bolt-names.c',
   'bolt-proxy.c',
   'bolt-str.c',
   'bolt-time.c',


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]