X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fbus-internal.h;h=30b8d519a0a653bf55641ab52db46f8e3cac12c9;hb=d7bd01b547bd91353513131561de9cc7d9f7d405;hp=b6975c54a2221d439be6d6082f6a44064949fd58;hpb=d5a2b9a6f455468a0f29483303657ab4fd7013d8;p=elogind.git diff --git a/src/libsystemd-bus/bus-internal.h b/src/libsystemd-bus/bus-internal.h index b6975c54a..30b8d519a 100644 --- a/src/libsystemd-bus/bus-internal.h +++ b/src/libsystemd-bus/bus-internal.h @@ -24,6 +24,7 @@ #include #include #include +#include #include "hashmap.h" #include "prioq.h" @@ -98,7 +99,6 @@ struct sd_bus { int message_version; bool is_kernel:1; - bool negotiate_fds:1; bool can_fds:1; bool bus_client:1; bool ucred_valid:1; @@ -111,6 +111,8 @@ struct sd_bus { bool filter_callbacks_modified:1; bool object_callbacks_modified:1; + int use_memfd; + void *rbuffer; size_t rbuffer_size; @@ -169,10 +171,21 @@ struct sd_bus { void *kdbus_buffer; + /* We do locking around the memfd cache, since we want to + * allow people to process a sd_bus_message in a different + * thread then it was generated on and free it there. Since + * adding something to the memfd cache might happen when a + * message is released, we hence need to protect this bit with + * a mutex. */ + pthread_mutex_t memfd_cache_mutex; struct memfd_cache memfd_cache[MEMFD_CACHE_MAX]; unsigned n_memfd_cache; pid_t original_pid; + + uint64_t hello_flags; + + uint64_t match_cookie; }; static inline void bus_unrefp(sd_bus **b) {