chiark / gitweb /
bus: add macro for iterating through body parts of a message
[elogind.git] / src / libsystemd-bus / bus-internal.h
index 6ff3163cfdbffe94975869c23b09219b71fd539a..504dac7f09a6453e783997f2e1229d0a2d0ed84d 100644 (file)
@@ -33,6 +33,7 @@
 #include "sd-bus.h"
 #include "bus-error.h"
 #include "bus-match.h"
+#include "bus-kernel.h"
 
 struct reply_callback {
         sd_bus_message_handler_t callback;
@@ -81,6 +82,7 @@ struct sd_bus {
         int input_fd, output_fd;
         int message_version;
 
+        bool is_kernel:1;
         bool negotiate_fds:1;
         bool can_fds:1;
         bool bus_client:1;
@@ -122,6 +124,8 @@ struct sd_bus {
         } sockaddr;
         socklen_t sockaddr_size;
 
+        char *kernel;
+
         sd_id128_t server_id;
 
         char *address;
@@ -147,6 +151,11 @@ struct sd_bus {
 
         uint64_t hello_serial;
         unsigned iteration_counter;
+
+        void *kdbus_buffer;
+
+        struct memfd_cache memfd_cache[MEMFD_CACHE_MAX];
+        unsigned n_memfd_cache;
 };
 
 static inline void bus_unrefp(sd_bus **b) {
@@ -186,6 +195,7 @@ bool namespace_simple_pattern(const char *pattern, const char *value);
 bool path_simple_pattern(const char *pattern, const char *value);
 
 int bus_message_type_from_string(const char *s, uint8_t *u);
+const char *bus_message_type_to_string(uint8_t u);
 
 #define error_name_is_valid interface_name_is_valid