header->protocol_version = gvariant ? DBUS_PROTOCOL_VERSION_GVARIANT : DBUS_MAJOR_PROTOCOL_VERSION;
}
-static const char *
+static uintptr_t
get_next_field_address (const char *array_buffer, size_t offset)
{
- return array_buffer + _DBUS_ALIGN_VALUE(offset, 8);
+ return (uintptr_t)array_buffer + _DBUS_ALIGN_VALUE(offset, 8);
}
static dbus_uint64_t
size_t last_offset_position = container_size - (*offset_size);
size_t last_offset = bus_gvariant_read_word_le (buffer + last_offset_position,
(*offset_size));
- int i;
+ size_t i;
*n_fields_offsets = (container_size - last_offset) / (*offset_size);
fields_offsets[(*n_fields_offsets)-1] = last_offset;
size_t i = 0;
size_t next_offset = 0;
- while ( next_offset < last_offset && get_field_after (array_buffer, next_offset) != field)
+ while ( next_offset < last_offset &&
+ get_field_after (array_buffer, next_offset) != (dbus_uint64_t) field)
{
next_offset = fields_offsets[i];
i++;
{
/* fixed size - move on; consider alignment */
reader->value_pos = _DBUS_ALIGN_VALUE(reader->value_pos, alignment) + size;
- reader->finished = (reader->value_pos >= reader->value_end);
+ reader->finished = ((size_t)reader->value_pos >= reader->value_end);
}
return;
}
{
DBusMessage *ret;
DBusMessageIter iter, ret_iter;
- int i;
+ size_t i;
dbus_uint32_t serial;
const char *sender;
* @param pData Address of data sent in the reply.
* @returns generated reply on success, otherwise NULL
*/
-static int
+static DBusMessage *
reply_1_data (DBusMessage *message,
int data_type,
void *pData)
return NULL;
}
-static int
+static DBusMessage *
reply_fixed_array (DBusMessage *message,
int element_type,
const void *data,
uint64_t dst_id = KDBUS_DST_ID_BROADCAST;
const DBusString *header;
const DBusString *body;
- uint64_t ret_size = -1;
+ int64_t ret_size = -1;
uint64_t body_size = 0;
uint64_t header_size = 0;
int memfd = -1;
_dbus_verbose ("sending data by vec\n");
item = _kdbus_item_add_payload_vec (item,
header_size,
- (dbus_uint64_t)header_data);
+ (uintptr_t)header_data);
if (body_size > 0)
{
const char* body_data = _dbus_string_get_const_data (body);
_dbus_verbose ("attaching body part\n");
item = _kdbus_item_add_payload_vec (item,
part_size,
- (dbus_uint64_t)body_data);
+ (uintptr_t)body_data);
body_data += part_size;
body_size -= part_size;
}
VALGRIND_MAKE_MEM_DEFINED (&cmd, sizeof (cmd));
cmd.size = sizeof (cmd);
- cmd.msg_address = (__u64)msg;
+ cmd.msg_address = (uintptr_t)msg;
cmd.flags = flags;
if (-1 == safe_ioctl (kdbus->fd, KDBUS_CMD_SEND, &cmd))
#include <dbus/dbus-transport.h>
#include "dbus-signals.h"
#include "kdbus.h"
+#include <stdint.h>
#define KDBUS_ALIGN8(l) (((l) + 7) & ~7)
#define KDBUS_ITEM_HEADER_SIZE offsetof(struct kdbus_item, data)
#define KDBUS_ITEM_SIZE(s) KDBUS_ALIGN8(KDBUS_ITEM_HEADER_SIZE + (s))
+#define KDBUS_ITEM_NEXT_ADDRESS(item) ((uintptr_t)(((uint8_t *)item) + KDBUS_ALIGN8((item)->size)))
#define KDBUS_ITEM_NEXT(item) \
- (typeof(item))(((uint8_t *)item) + KDBUS_ALIGN8((item)->size))
+ (typeof(item))KDBUS_ITEM_NEXT_ADDRESS(item)
#define KDBUS_ITEM_FOREACH(item, head, first) \
for (item = (head)->first; \
(uint8_t *)(item) < (uint8_t *)(head) + (head)->size; \