1 /*
2 * This file is part of the flashrom project.
3 *
4 * Copyright 2021 Google LLC
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16 #include <stdlib.h>
17
18 #include <include/test.h>
19 #include "io_mock.h"
20 #include "libusb_wraps.h"
21
__wrap_usb_dev_get_by_vid_pid_number(libusb_context * usb_ctx,uint16_t vid,uint16_t pid,unsigned int num)22 void *__wrap_usb_dev_get_by_vid_pid_number(
23 libusb_context *usb_ctx, uint16_t vid, uint16_t pid, unsigned int num)
24 {
25 LOG_ME;
26 return not_null();
27 }
28
__wrap_libusb_init(libusb_context ** ctx)29 int __wrap_libusb_init(libusb_context **ctx)
30 {
31 LOG_ME;
32 if (get_io() && get_io()->libusb_init)
33 return get_io()->libusb_init(get_io()->state, ctx);
34 return 0;
35 }
36
__wrap_libusb_set_debug(libusb_context * ctx,int level)37 void __wrap_libusb_set_debug(libusb_context *ctx, int level)
38 {
39 LOG_ME;
40 }
41
__wrap_libusb_set_option(libusb_context * ctx,int option,...)42 int __wrap_libusb_set_option(libusb_context *ctx, int option, ...)
43 {
44 LOG_ME;
45 return 0;
46 }
47
__wrap_libusb_open(libusb_device * dev,libusb_device_handle ** devh)48 int __wrap_libusb_open(libusb_device *dev, libusb_device_handle **devh)
49 {
50 LOG_ME;
51 return 0;
52 }
53
__wrap_libusb_set_auto_detach_kernel_driver(libusb_device_handle * devh,int enable)54 int __wrap_libusb_set_auto_detach_kernel_driver(libusb_device_handle *devh, int enable)
55 {
56 LOG_ME;
57 return 0;
58 }
59
__wrap_libusb_detach_kernel_driver(libusb_device_handle * dev_handle,int interface_number)60 int __wrap_libusb_detach_kernel_driver(libusb_device_handle *dev_handle, int interface_number)
61 {
62 LOG_ME;
63 return 0;
64 }
65
__wrap_libusb_attach_kernel_driver(libusb_device_handle * dev_handle,int interface_number)66 int __wrap_libusb_attach_kernel_driver(libusb_device_handle *dev_handle, int interface_number)
67 {
68 LOG_ME;
69 return 0;
70 }
71
__wrap_libusb_open_device_with_vid_pid(libusb_context * ctx,uint16_t vendor_id,uint16_t product_id)72 struct libusb_device_handle *__wrap_libusb_open_device_with_vid_pid(
73 libusb_context *ctx, uint16_t vendor_id, uint16_t product_id)
74 {
75 LOG_ME;
76 return not_null();
77 }
78
__wrap_libusb_get_device(libusb_device_handle * dev_handle)79 libusb_device *__wrap_libusb_get_device(libusb_device_handle *dev_handle)
80 {
81 LOG_ME;
82 return not_null();
83 }
84
__wrap_libusb_get_device_list(libusb_context * ctx,libusb_device *** list)85 ssize_t __wrap_libusb_get_device_list(libusb_context *ctx, libusb_device ***list)
86 {
87 LOG_ME;
88 if (get_io() && get_io()->libusb_get_device_list)
89 return get_io()->libusb_get_device_list(get_io()->state, ctx, list);
90 return 0;
91 }
92
__wrap_libusb_free_device_list(libusb_device ** list,int unref_devices)93 void __wrap_libusb_free_device_list(libusb_device **list, int unref_devices)
94 {
95 LOG_ME;
96 if (get_io() && get_io()->libusb_free_device_list)
97 get_io()->libusb_free_device_list(get_io()->state, list, unref_devices);
98 }
99
__wrap_libusb_get_bus_number(libusb_device * dev)100 uint8_t __wrap_libusb_get_bus_number(libusb_device *dev)
101 {
102 LOG_ME;
103 return 0;
104 }
105
__wrap_libusb_get_device_address(libusb_device * dev)106 uint8_t __wrap_libusb_get_device_address(libusb_device *dev)
107 {
108 LOG_ME;
109 return USB_DEVICE_ADDRESS;
110 }
111
__wrap_libusb_get_device_descriptor(libusb_device * dev,struct libusb_device_descriptor * desc)112 int __wrap_libusb_get_device_descriptor(libusb_device *dev, struct libusb_device_descriptor *desc)
113 {
114 LOG_ME;
115 if (get_io() && get_io()->libusb_get_device_descriptor)
116 return get_io()->libusb_get_device_descriptor(get_io()->state, dev, desc);
117 return 0;
118 }
119
__wrap_libusb_get_config_descriptor(libusb_device * dev,uint8_t config_index,struct libusb_config_descriptor ** config)120 int __wrap_libusb_get_config_descriptor(
121 libusb_device *dev, uint8_t config_index, struct libusb_config_descriptor **config)
122 {
123 LOG_ME;
124 if (get_io() && get_io()->libusb_get_config_descriptor)
125 return get_io()->libusb_get_config_descriptor(get_io()->state, dev, config_index, config);
126 return 0;
127 }
128
__wrap_libusb_free_config_descriptor(struct libusb_config_descriptor * config)129 void __wrap_libusb_free_config_descriptor(struct libusb_config_descriptor *config)
130 {
131 LOG_ME;
132 if (get_io() && get_io()->libusb_free_config_descriptor)
133 return get_io()->libusb_free_config_descriptor(get_io()->state, config);
134 return;
135 }
136
__wrap_libusb_get_configuration(libusb_device_handle * devh,int * config)137 int __wrap_libusb_get_configuration(libusb_device_handle *devh, int *config)
138 {
139 LOG_ME;
140 return 0;
141 }
142
__wrap_libusb_set_configuration(libusb_device_handle * devh,int config)143 int __wrap_libusb_set_configuration(libusb_device_handle *devh, int config)
144 {
145 LOG_ME;
146 return 0;
147 }
148
__wrap_libusb_claim_interface(libusb_device_handle * devh,int interface_number)149 int __wrap_libusb_claim_interface(libusb_device_handle *devh, int interface_number)
150 {
151 LOG_ME;
152 return 0;
153 }
154
__wrap_libusb_control_transfer(libusb_device_handle * devh,uint8_t bmRequestType,uint8_t bRequest,uint16_t wValue,uint16_t wIndex,unsigned char * data,uint16_t wLength,unsigned int timeout)155 int __wrap_libusb_control_transfer(libusb_device_handle *devh, uint8_t bmRequestType,
156 uint8_t bRequest, uint16_t wValue, uint16_t wIndex, unsigned char *data,
157 uint16_t wLength, unsigned int timeout)
158 {
159 LOG_ME;
160 if (get_io() && get_io()->libusb_control_transfer)
161 return get_io()->libusb_control_transfer(get_io()->state,
162 devh, bmRequestType, bRequest, wValue, wIndex, data, wLength, timeout);
163 return 0;
164 }
165
__wrap_libusb_release_interface(libusb_device_handle * devh,int interface_number)166 int __wrap_libusb_release_interface(libusb_device_handle *devh, int interface_number)
167 {
168 LOG_ME;
169 return 0;
170 }
171
__wrap_libusb_close(libusb_device_handle * devh)172 void __wrap_libusb_close(libusb_device_handle *devh)
173 {
174 LOG_ME;
175 }
176
__wrap_libusb_ref_device(libusb_device * dev)177 libusb_device *__wrap_libusb_ref_device(libusb_device *dev)
178 {
179 LOG_ME;
180 return NULL;
181 }
182
__wrap_libusb_unref_device(libusb_device * dev)183 void __wrap_libusb_unref_device(libusb_device *dev)
184 {
185 LOG_ME;
186 }
187
__wrap_libusb_alloc_transfer(int iso_packets)188 struct libusb_transfer *__wrap_libusb_alloc_transfer(int iso_packets)
189 {
190 LOG_ME;
191 if (get_io() && get_io()->libusb_alloc_transfer)
192 return get_io()->libusb_alloc_transfer(get_io()->state, iso_packets);
193 return not_null();
194 }
195
__wrap_libusb_submit_transfer(struct libusb_transfer * transfer)196 int __wrap_libusb_submit_transfer(struct libusb_transfer *transfer)
197 {
198 LOG_ME;
199 if (get_io() && get_io()->libusb_submit_transfer)
200 return get_io()->libusb_submit_transfer(get_io()->state, transfer);
201 return 0;
202 }
203
__wrap_libusb_free_transfer(struct libusb_transfer * transfer)204 void __wrap_libusb_free_transfer(struct libusb_transfer *transfer)
205 {
206 LOG_ME;
207 if (get_io() && get_io()->libusb_free_transfer)
208 get_io()->libusb_free_transfer(get_io()->state, transfer);
209 }
210
__wrap_libusb_handle_events_timeout(libusb_context * ctx,struct timeval * tv)211 int __wrap_libusb_handle_events_timeout(libusb_context *ctx, struct timeval *tv)
212 {
213 LOG_ME;
214 if (get_io() && get_io()->libusb_handle_events_timeout)
215 get_io()->libusb_handle_events_timeout(get_io()->state, ctx, tv);
216 return 0;
217 }
218
__wrap_libusb_exit(libusb_context * ctx)219 void __wrap_libusb_exit(libusb_context *ctx)
220 {
221 LOG_ME;
222 }
223