debug(ctx, "BEGIN\n");
debug(ctx, "packet_type: 0x%08x (%u)\n", h->packet_type, h->packet_type);
- debug(ctx, "direction: 0x%02hhx (%hhu)\n", h->direction, h->direction);
+ debug(ctx, "direction: 0x%02hhx (%hhu) (%s)\n", h->direction, h->direction,
+ h->direction == AM7XXX_DIRECTION_IN ? "IN" :
+ h->direction == AM7XXX_DIRECTION_OUT ? "OUT" :
+ "UNKNOWN");
debug(ctx, "header_data_len: 0x%02hhx (%hhu)\n", h->header_data_len, h->header_data_len);
debug(ctx, "unknown2: 0x%02hhx (%hhu)\n", h->unknown2, h->unknown2);
debug(ctx, "unknown3: 0x%02hhx (%hhu)\n", h->unknown3, h->unknown3);
unserialize_header(dev->buffer, h);
- debug_dump_header(dev->ctx, h);
-
if (h->direction == AM7XXX_DIRECTION_IN) {
ret = 0;
} else {
ret = -EINVAL;
}
+ debug_dump_header(dev->ctx, h);
+
out:
return ret;
}
debug_dump_header(dev->ctx, h);
+ /* For symmetry with read_header() we should check here for
+ * h->direction == AM7XXX_DIRECTION_OUT but we just ensure that in all
+ * the callers and save some cycles here.
+ */
+
serialize_header(h, dev->buffer);
+
ret = send_data(dev, dev->buffer, AM7XXX_HEADER_WIRE_SIZE);
if (ret < 0)
error(dev->ctx, "failed to send data\n");
return NULL;
}
- devices_list = &(ctx->devices_list);
-
new_device = malloc(sizeof(*new_device));
if (new_device == NULL) {
fatal("cannot allocate a new device (%s)\n", strerror(errno));
new_device->ctx = ctx;
+ devices_list = &(ctx->devices_list);
+
if (*devices_list == NULL) {
*devices_list = new_device;
} else {