summaryrefslogtreecommitdiff
path: root/utils/hwstub/lib/hwstub.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/hwstub/lib/hwstub.c')
-rw-r--r--utils/hwstub/lib/hwstub.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/utils/hwstub/lib/hwstub.c b/utils/hwstub/lib/hwstub.c
index a2af2f26d4..6ae0400a66 100644
--- a/utils/hwstub/lib/hwstub.c
+++ b/utils/hwstub/lib/hwstub.c
@@ -207,30 +207,25 @@ int hwstub_rw_mem(struct hwstub_device_t *dev, int read, uint32_t addr, void *bu
207 return read ? hwstub_read(dev, addr, buf, sz) : hwstub_write(dev, addr, buf, sz); 207 return read ? hwstub_read(dev, addr, buf, sz) : hwstub_write(dev, addr, buf, sz);
208} 208}
209 209
210int hwstub_exec(struct hwstub_device_t *dev, uint32_t addr, uint16_t flags)
211{
212 struct hwstub_exec_req_t exec;
213 exec.dAddress = addr;
214 exec.bmFlags = flags;
215 int size = libusb_control_transfer(dev->handle,
216 LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_INTERFACE | LIBUSB_ENDPOINT_OUT,
217 HWSTUB_EXEC, dev->id, dev->intf, (void *)&exec, sizeof(exec), 1000);
218 if(size != (int)sizeof(exec))
219 return -1;
220 return 0;
221}
222
210int hwstub_call(struct hwstub_device_t *dev, uint32_t addr) 223int hwstub_call(struct hwstub_device_t *dev, uint32_t addr)
211{ 224{
212#if 0 225 return hwstub_exec(dev, addr, HWSTUB_EXEC_CALL);
213 return libusb_control_transfer(dev->handle,
214 LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_DEVICE |
215 LIBUSB_ENDPOINT_OUT, HWSTUB_CALL, addr & 0xffff, addr >> 16, NULL, 0,
216 1000);
217#else
218 (void) dev;
219 (void) addr;
220 return -1;
221#endif
222} 226}
223 227
224int hwstub_jump(struct hwstub_device_t *dev, uint32_t addr) 228int hwstub_jump(struct hwstub_device_t *dev, uint32_t addr)
225{ 229{
226#if 0 230 return hwstub_exec(dev, addr, HWSTUB_EXEC_JUMP);
227 return libusb_control_transfer(dev->handle,
228 LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_DEVICE |
229 LIBUSB_ENDPOINT_OUT, HWSTUB_JUMP, addr & 0xffff, addr >> 16, NULL, 0,
230 1000);
231#else
232 (void) dev;
233 (void) addr;
234 return -1;
235#endif
236} 231}