- unsigned int offset;
- uint32_t tmp;
-
- if (p == NULL || buffer == NULL)
- return -EINVAL;
-
- /* TODO: check for packet payload being NULL? */
- if (buffer->data == NULL || buffer->len < sizeof(*p))
- return -EINVAL;
-
- offset = 0;
-
- tmp = htole32(p->header.packet_type);
- memcpy(buffer->data + offset, &tmp, sizeof(p->header.packet_type));
- offset += sizeof(p->header.packet_type);
-
- tmp = htole32(p->header.unknown1);
- memcpy(buffer->data + offset, &tmp, sizeof(p->header.unknown1));
- offset += sizeof(p->header.unknown1);
-
- tmp = htole32(p->header.unknown2);
- memcpy(buffer->data + offset, &tmp, sizeof(p->header.unknown2));
- offset += sizeof(p->header.unknown2);
-
- tmp = htole32(p->header.width);
- memcpy(buffer->data + offset, &tmp, sizeof(p->header.width));
- offset += sizeof(p->header.width);
-
- tmp = htole32(p->header.height);
- memcpy(buffer->data + offset, &tmp, sizeof(p->header.height));
- offset += sizeof(p->header.height);