-static void setup_iovec(sd_bus_message *m) {
- assert(m);
- assert(m->sealed);
-
- m->n_iovec = 0;
- m->size = 0;
-
- m->iovec[m->n_iovec].iov_base = m->header;
- m->iovec[m->n_iovec].iov_len = sizeof(*m->header);
- m->size += m->iovec[m->n_iovec].iov_len;
- m->n_iovec++;
-
- if (m->fields) {
- m->iovec[m->n_iovec].iov_base = m->fields;
- m->iovec[m->n_iovec].iov_len = m->header->fields_size;
- m->size += m->iovec[m->n_iovec].iov_len;
- m->n_iovec++;
-
- if (m->header->fields_size % 8 != 0) {
- static const uint8_t padding[7] = { 0, 0, 0, 0, 0, 0, 0 };
-
- m->iovec[m->n_iovec].iov_base = (void*) padding;
- m->iovec[m->n_iovec].iov_len = 8 - m->header->fields_size % 8;
- m->size += m->iovec[m->n_iovec].iov_len;
- m->n_iovec++;
- }
- }
-
- if (m->body) {
- m->iovec[m->n_iovec].iov_base = m->body;
- m->iovec[m->n_iovec].iov_len = m->header->body_size;
- m->size += m->iovec[m->n_iovec].iov_len;
- m->n_iovec++;
- }
-}
-