Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
E
EtherBone Core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
EtherBone Core
Commits
03371729
Commit
03371729
authored
May 19, 2015
by
Mathias Kreider
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added new sdb discovery for subtrees support for lm32 periphery sdbs
parent
1586485a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
1 deletion
+23
-1
etherbone.h
api/etherbone.h
+2
-0
sdb.c
api/glue/sdb.c
+21
-1
No files found.
api/etherbone.h
View file @
03371729
...
...
@@ -625,6 +625,8 @@ EB_PUBLIC eb_status_t eb_sdb_find_by_address(eb_device_t device, eb_address_t ad
*/
EB_PUBLIC
eb_status_t
eb_sdb_find_by_identity
(
eb_device_t
device
,
uint64_t
vendor_id
,
uint32_t
device_id
,
struct
sdb_device
*
output
,
int
*
devices
);
EB_PUBLIC
eb_status_t
eb_sdb_find_by_identity_at
(
eb_device_t
device
,
uint64_t
vendor_id
,
uint32_t
device_id
,
struct
sdb_device
*
output
,
int
*
devices
,
const
struct
sdb_bridge
*
bridge
);
#ifdef __cplusplus
}
...
...
api/glue/sdb.c
View file @
03371729
...
...
@@ -623,7 +623,8 @@ static void eb_cb_find_by_identity(eb_user_data_t data, eb_device_t dev, const s
}
}
if
(
des
->
empty
.
record_type
==
sdb_record_device
&&
if
((
des
->
empty
.
record_type
==
sdb_record_device
||
des
->
empty
.
record_type
==
sdb_record_bridge
)
&&
des
->
device
.
sdb_component
.
product
.
vendor_id
==
record
->
vendor_id
&&
des
->
device
.
sdb_component
.
product
.
device_id
==
record
->
device_id
)
{
if
(
record
->
fill
<
record
->
size
)
...
...
@@ -650,3 +651,22 @@ eb_status_t eb_sdb_find_by_identity(eb_device_t device, uint64_t vendor_id, uint
*
devices
=
record
.
fill
;
return
record
.
status
;
}
eb_status_t
eb_sdb_find_by_identity_at
(
eb_device_t
device
,
uint64_t
vendor_id
,
uint32_t
device_id
,
struct
sdb_device
*
output
,
int
*
devices
,
const
struct
sdb_bridge
*
bridge
)
{
struct
eb_find_by_identity
record
;
record
.
vendor_id
=
vendor_id
;
record
.
device_id
=
device_id
;
record
.
size
=
*
devices
;
record
.
fill
=
0
;
record
.
pending
=
1
;
record
.
output
=
output
;
if
((
record
.
status
=
eb_sdb_scan_bus
(
device
,
bridge
,
&
record
,
eb_cb_find_by_identity
))
==
EB_OK
)
while
(
record
.
pending
>
0
)
eb_socket_run
(
eb_device_socket
(
device
),
-
1
);
*
devices
=
record
.
fill
;
return
record
.
status
;
}
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