summaryrefslogtreecommitdiff
path: root/ao-tools/lib/ao-selfload.c
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2016-09-05 20:59:11 -0600
committerBdale Garbee <bdale@gag.com>2016-09-05 20:59:11 -0600
commitc0ad087008856cfc2233b977abfc3f1dcbaccdcc (patch)
treeadc46abc430793112858ce5d1822d3fe0a395e71 /ao-tools/lib/ao-selfload.c
parent148b013dd29c26920ddfb53449ed4d8cc5a4b5ee (diff)
parent4fdf8ca9ca1cd5a84b03bd7a03c5806af64b413d (diff)
Merge branch 'master' into branch-1.6
Diffstat (limited to 'ao-tools/lib/ao-selfload.c')
-rw-r--r--ao-tools/lib/ao-selfload.c40
1 files changed, 39 insertions, 1 deletions
diff --git a/ao-tools/lib/ao-selfload.c b/ao-tools/lib/ao-selfload.c
index 41e45adc..0a23dfda 100644
--- a/ao-tools/lib/ao-selfload.c
+++ b/ao-tools/lib/ao-selfload.c
@@ -3,7 +3,8 @@
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -156,3 +157,40 @@ ao_self_get_uint32(struct cc_usb *cc, uint32_t addr)
free(hex);
return v;
}
+
+bool
+ao_self_get_usb_id(struct cc_usb *cc, struct ao_usb_id *id)
+{
+ struct ao_hex_image *hex;
+ bool ret;
+
+ if (!AO_USB_DESCRIPTORS)
+ return false;
+
+ hex = ao_self_read(cc, AO_USB_DESCRIPTORS, 512);
+ if (!hex)
+ return false;
+
+ ret = ao_heximage_usb_id(hex, id);
+ free(hex);
+ return ret;
+}
+
+uint16_t *
+ao_self_get_usb_product(struct cc_usb *cc)
+{
+ struct ao_hex_image *hex;
+ uint16_t *ret;
+
+ if (!AO_USB_DESCRIPTORS)
+ return NULL;
+
+ hex = ao_self_read(cc, AO_USB_DESCRIPTORS, 512);
+ if (!hex)
+ return NULL;
+
+ ret = ao_heximage_usb_product(hex);
+ free(hex);
+ return ret;
+}
+