about summary refs log tree commit diff
path: root/src/core/nm-dbus-utils.h
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2024-01-25 09:46:18 +0100
committerMichael Biebl <biebl@debian.org>2024-01-25 09:46:18 +0100
commit70e18d99b8e3e77bb37e218d7ac582130156f8ef (patch)
treed40c587e6d3f0e094ff558e415f1bb9803643214 /src/core/nm-dbus-utils.h
parentd4d8b2b91f7ba000d97a8b2aab48c85000c11314 (diff)
New upstream version 1.45.90 upstream/1.45.90
Diffstat (limited to 'src/core/nm-dbus-utils.h')
-rw-r--r--src/core/nm-dbus-utils.h59
1 files changed, 40 insertions, 19 deletions
diff --git a/src/core/nm-dbus-utils.h b/src/core/nm-dbus-utils.h
index 54b50634..237b37d8 100644
--- a/src/core/nm-dbus-utils.h
+++ b/src/core/nm-dbus-utils.h
@@ -45,34 +45,55 @@ typedef struct {
 G_STATIC_ASSERT(G_STRUCT_OFFSET(NMDBusPropertyInfoExtended, property_name)
                 == G_STRUCT_OFFSET(struct _NMDBusPropertyInfoExtendedBase, property_name));
 
-#define NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE(m_name, m_signature, m_property_name) \
-    ((GDBusPropertyInfo *) &((const struct _NMDBusPropertyInfoExtendedBase){                 \
-        ._parent =                                                                           \
-            {                                                                                \
-                .ref_count = -1,                                                             \
-                .name      = m_name,                                                         \
-                .signature = m_signature,                                                    \
-                .flags     = G_DBUS_PROPERTY_INFO_FLAGS_READABLE,                            \
-            },                                                                               \
-        .property_name = m_property_name,                                                    \
+extern const GDBusAnnotationInfo _nm_gdbus_annotation_info_deprecated;
+
+#define NM_GDBUS_ANNOTATION_INFO_DEPRECATED() \
+    ((GDBusAnnotationInfo *) &_nm_gdbus_annotation_info_deprecated)
+
+#define NM_DEFINE_DBUS_ANNOTATION_INFO(a_key, a_value)      \
+    ((GDBusAnnotationInfo *) &((const GDBusAnnotationInfo){ \
+        .key   = (a_key),                                   \
+        .value = (a_value),                                 \
+    }))
+
+extern const GDBusAnnotationInfo *const _nm_gdbus_annotation_info_list_deprecated[];
+
+/* This is a (NULL terminated) list of GDBusAnnotationInfo with only one entry:
+ * NM_GDBUS_ANNOTATION_INFO_DEPRECATED. This single instance can be reused for the
+ * common case where we only have one annotation (and it's the deprecation).
+ *
+ * Otherwise, NM_DEFINE_DBUS_ANNOTATION_INFOS() is for defining a new list. */
+#define NM_GDBUS_ANNOTATION_INFO_LIST_DEPRECATED() \
+    ((GDBusAnnotationInfo **) _nm_gdbus_annotation_info_list_deprecated)
+
+#define NM_DEFINE_DBUS_ANNOTATION_INFOS(...) \
+    ((GDBusAnnotationInfo **) ((const GDBusAnnotationInfo *const[]){__VA_ARGS__, NULL}))
+
+#define NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE(m_name, m_signature, m_property_name, ...) \
+    ((GDBusPropertyInfo *) &((const struct _NMDBusPropertyInfoExtendedBase){                      \
+        ._parent       = {.ref_count = -1,                                                        \
+                          .name      = m_name,                                                    \
+                          .signature = m_signature,                                               \
+                          .flags     = G_DBUS_PROPERTY_INFO_FLAGS_READABLE,                       \
+                          __VA_ARGS__},                                                           \
+        .property_name = m_property_name,                                                         \
     }))
 
 #define NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READWRITABLE(m_name,                   \
                                                            m_signature,              \
                                                            m_property_name,          \
                                                            m_permission,             \
-                                                           m_audit_op)               \
+                                                           m_audit_op,               \
+                                                           ...)                      \
     ((GDBusPropertyInfo *) &((const struct _NMDBusPropertyInfoExtendedReadWritable){ \
         ._base =                                                                     \
             {                                                                        \
-                ._parent =                                                           \
-                    {                                                                \
-                        .ref_count = -1,                                             \
-                        .name      = m_name,                                         \
-                        .signature = m_signature,                                    \
-                        .flags     = G_DBUS_PROPERTY_INFO_FLAGS_READABLE             \
-                                 | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE,              \
-                    },                                                               \
+                ._parent       = {.ref_count = -1,                                   \
+                                  .name      = m_name,                               \
+                                  .signature = m_signature,                          \
+                                  .flags     = G_DBUS_PROPERTY_INFO_FLAGS_READABLE   \
+                                           | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE,    \
+                                  __VA_ARGS__},                                      \
                 .property_name = m_property_name,                                    \
             },                                                                       \
         .permission = m_permission,                                                  \