Align loader to 32-bit boundary
[fw/stlink] / src / stlink-sg.h
index afa47c51a3805c9f84cc551bc8d0ddede72a81e1..7c020285176283602885d285bf38e7e13eef8d98 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
  * File:   stlink-sg.h
  * Author: karl
  *
 #ifdef __cplusplus
 extern "C" {
 #endif
-    
-#include <libusb-1.0/libusb.h>
+
+#include <libusb.h>
 #include "stlink-common.h"
-    
-        // device access
+
+    // device access
 #define RDWR           0
 #define RO             1
 #define SG_TIMEOUT_SEC 1 // actually 1 is about 2 sec
+#define SG_TIMEOUT_MSEC        3 * 1000
     // Each CDB can be a total of 6, 10, 12, or 16 bytes, later version
     // of the SCSI standard also allow for variable-length CDBs (min. CDB is 6).
     // the stlink needs max. 10 bytes.
@@ -41,6 +42,11 @@ extern "C" {
 
 
     struct stlink_libsg {
+        libusb_context* libusb_ctx;
+        libusb_device_handle *usb_handle;
+        unsigned ep_rep;
+        unsigned ep_req;
+
         int sg_fd;
         int do_scsi_pt_err;
 
@@ -51,19 +57,13 @@ extern "C" {
         uint32_t q_addr;
 
         // Sense (error information) data
+        // obsolete, this was fed to the scsi tools
         unsigned char sense_buf[SENSE_BUF_LEN];
 
-        uint32_t st_vid;
-        uint32_t stlink_pid;
-        uint32_t stlink_v;
-        uint32_t jtag_v;
-        uint32_t swim_v;
-        uint32_t core_id;
-
         reg reg;
     };
 
-    stlink_t* stlink_v1_open(const char *dev_name, const int verbose);
+    stlink_t* stlink_v1_open(const int verbose, int reset);
 
 #ifdef __cplusplus
 }