#include "kdbus.h"
#include "time-util.h"
#include "bus-creds.h"
+#include "bus-protocol.h"
struct bus_container {
char enclosing;
uint32_t *array_size;
size_t before, begin;
+
+ size_t *offsets;
+ size_t n_offsets, n_allocated;
+
+ bool need_offsets;
};
struct bus_header {
bool free_fds:1;
bool release_kdbus:1;
bool poisoned:1;
+ bool is_gvariant:1;
struct bus_header *header;
struct bus_body_part body;
char sender_buffer[3 + DECIMAL_STR_MAX(uint64_t) + 1];
char destination_buffer[3 + DECIMAL_STR_MAX(uint64_t) + 1];
+
+ size_t header_offsets[_BUS_MESSAGE_HEADER_MAX];
+ unsigned n_header_offsets;
};
-#define BUS_MESSAGE_NEED_BSWAP(m) ((m)->header->endian != SD_BUS_NATIVE_ENDIAN)
+#define BUS_MESSAGE_NEED_BSWAP(m) ((m)->header->endian != BUS_NATIVE_ENDIAN)
static inline uint16_t BUS_MESSAGE_BSWAP16(sd_bus_message *m, uint16_t u) {
return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_16(u) : u;