Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
269fe102
Commit
269fe102
authored
Jul 22, 2010
by
Stefan Richter
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tools/firewire: nosy-dump: break up a deeply nested function
Signed-off-by:
Stefan Richter
<
stefanr@s5r6.in-berlin.de
>
parent
468066f7
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
132 additions
and
113 deletions
+132
-113
tools/firewire/nosy-dump.c
tools/firewire/nosy-dump.c
+132
-113
No files found.
tools/firewire/nosy-dump.c
View file @
269fe102
...
...
@@ -487,18 +487,12 @@ static const struct packet_info packet_info[] = {
};
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
subaction
*
sa
,
*
prev
;
struct
link_transaction
*
t
;
switch
(
packet_info
[
p
->
common
.
tcode
].
type
)
{
case
PACKET_REQUEST
:
t
=
link_transaction_lookup
(
p
->
common
.
source
,
p
->
common
.
destination
,
p
->
common
.
tlabel
);
sa
=
subaction_create
(
data
,
length
);
...
...
@@ -553,9 +547,17 @@ handle_packet(uint32_t *data, size_t length)
/* check that retry protocol is respected. */
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
,
p
->
common
.
tlabel
);
if
(
list_empty
(
&
t
->
request_list
))
{
...
...
@@ -618,7 +620,24 @@ handle_packet(uint32_t *data, size_t length)
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_RESERVED
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment