diff options
Diffstat (limited to 'utils/hwstub/lib/hwstub.h')
-rw-r--r-- | utils/hwstub/lib/hwstub.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/utils/hwstub/lib/hwstub.h b/utils/hwstub/lib/hwstub.h new file mode 100644 index 0000000000..ed058dfa3b --- /dev/null +++ b/utils/hwstub/lib/hwstub.h | |||
@@ -0,0 +1,70 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2012 by Amaury Pouly | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef __HWSTUB__ | ||
22 | #define __HWSTUB__ | ||
23 | |||
24 | #include <libusb.h> | ||
25 | #include "hwstub_protocol.h" | ||
26 | |||
27 | #ifdef __cplusplus | ||
28 | extern "C" { | ||
29 | #endif | ||
30 | |||
31 | /** | ||
32 | * | ||
33 | * Low-Level interface | ||
34 | * | ||
35 | */ | ||
36 | |||
37 | struct hwstub_device_t | ||
38 | { | ||
39 | libusb_device_handle *handle; | ||
40 | int intf; | ||
41 | int bulk_in; | ||
42 | int bulk_out; | ||
43 | int int_in; | ||
44 | }; | ||
45 | |||
46 | /* Requires then ->handle field only. Returns 0 on success */ | ||
47 | int hwstub_probe(struct hwstub_device_t *dev); | ||
48 | /* Returns 0 on success */ | ||
49 | int hwstub_release(struct hwstub_device_t *dev); | ||
50 | |||
51 | /* Returns number of bytes filled */ | ||
52 | int hwstub_get_info(struct hwstub_device_t *dev, uint16_t idx, void *info, size_t sz); | ||
53 | /* Returns number of bytes filled */ | ||
54 | int hwstub_get_log(struct hwstub_device_t *dev, void *buf, size_t sz); | ||
55 | /* Returns number of bytes written/read or <0 on error */ | ||
56 | int hwstub_rw_mem(struct hwstub_device_t *dev, int read, uint32_t addr, void *buf, size_t sz); | ||
57 | /* Returns <0 on error */ | ||
58 | int hwstub_call(struct hwstub_device_t *dev, uint32_t addr); | ||
59 | int hwstub_jump(struct hwstub_device_t *dev, uint32_t addr); | ||
60 | /* Returns <0 on error. The size must be a multiple of 16. */ | ||
61 | int hwstub_aes_otp(struct hwstub_device_t *dev, void *buf, size_t sz, uint16_t param); | ||
62 | |||
63 | const char *hwstub_get_product_string(struct usb_resp_info_stmp_t *stmp); | ||
64 | const char *hwstub_get_rev_string(struct usb_resp_info_stmp_t *stmp); | ||
65 | |||
66 | #ifdef __cplusplus | ||
67 | } // extern "C" | ||
68 | #endif | ||
69 | |||
70 | #endif /* __HWSTUB__ */ \ No newline at end of file | ||