Commit 269fe102 authored by Stefan Richter's avatar Stefan Richter

tools/firewire: nosy-dump: break up a deeply nested function

Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent 468066f7
...@@ -487,18 +487,12 @@ static const struct packet_info packet_info[] = { ...@@ -487,18 +487,12 @@ static const struct packet_info packet_info[] = {
}; };
static int static int
handle_packet(uint32_t *data, size_t length) handle_request_packet(uint32_t *data, size_t length)
{ {
if (length == 0) {
printf("bus reset\r\n");
clear_pending_transaction_list();
} else if (length > sizeof(struct phy_packet)) {
struct link_packet *p = (struct link_packet *) data; struct link_packet *p = (struct link_packet *) data;
struct subaction *sa, *prev; struct subaction *sa, *prev;
struct link_transaction *t; struct link_transaction *t;
switch (packet_info[p->common.tcode].type) {
case PACKET_REQUEST:
t = link_transaction_lookup(p->common.source, p->common.destination, t = link_transaction_lookup(p->common.source, p->common.destination,
p->common.tlabel); p->common.tlabel);
sa = subaction_create(data, length); sa = subaction_create(data, length);
...@@ -553,9 +547,17 @@ handle_packet(uint32_t *data, size_t length) ...@@ -553,9 +547,17 @@ handle_packet(uint32_t *data, size_t length)
/* check that retry protocol is respected. */ /* check that retry protocol is respected. */
break; break;
} }
break;
case PACKET_RESPONSE: return 1;
}
static int
handle_response_packet(uint32_t *data, size_t length)
{
struct link_packet *p = (struct link_packet *) data;
struct subaction *sa, *prev;
struct link_transaction *t;
t = link_transaction_lookup(p->common.destination, p->common.source, t = link_transaction_lookup(p->common.destination, p->common.source,
p->common.tlabel); p->common.tlabel);
if (list_empty(&t->request_list)) { if (list_empty(&t->request_list)) {
...@@ -618,7 +620,24 @@ handle_packet(uint32_t *data, size_t length) ...@@ -618,7 +620,24 @@ handle_packet(uint32_t *data, size_t length)
break; break;
} }
break; return 1;
}
static int
handle_packet(uint32_t *data, size_t length)
{
if (length == 0) {
printf("bus reset\r\n");
clear_pending_transaction_list();
} else if (length > sizeof(struct phy_packet)) {
struct link_packet *p = (struct link_packet *) data;
switch (packet_info[p->common.tcode].type) {
case PACKET_REQUEST:
return handle_request_packet(data, length);
case PACKET_RESPONSE:
return handle_response_packet(data, length);
case PACKET_OTHER: case PACKET_OTHER:
case PACKET_RESERVED: case PACKET_RESERVED:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment