Fix debug prints when loading to flash
[fw/openocd] / src / helper / replacements.c
index 0ba98a488e6ea43bb4fcabed1cdc8101ec8a9112..b4bb94f06e43398e99771ea3ec05a4bf786d30e8 100644 (file)
@@ -19,9 +19,7 @@
  *   GNU General Public License for more details.                          *
  *                                                                         *
  *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 /* DANGER!!!! These must be defined *BEFORE* replacements.h and the malloc() macro!!!! */
 
@@ -123,7 +121,7 @@ size_t strnlen(const char *s, size_t maxlen)
 char *strndup(const char *s, size_t n)
 {
        size_t len = strnlen(s, n);
-       char *new = (char *) malloc(len + 1);
+       char *new = malloc(len + 1);
 
        if (new == NULL)
                return NULL;
@@ -276,3 +274,45 @@ int win_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct time
        return retcode;
 }
 #endif
+
+#if defined HAVE_LIBUSB1 && !defined HAVE_LIBUSB_ERROR_NAME
+#include <libusb.h>
+/* Verbatim from git://git.libusb.org/libusb.git tag 1.0.9
+ * The libusb_error enum is compatible down to v0.9.1
+ */
+const char *libusb_error_name(int error_code)
+{
+       enum libusb_error error = error_code;
+       switch (error) {
+       case LIBUSB_SUCCESS:
+               return "LIBUSB_SUCCESS";
+       case LIBUSB_ERROR_IO:
+               return "LIBUSB_ERROR_IO";
+       case LIBUSB_ERROR_INVALID_PARAM:
+               return "LIBUSB_ERROR_INVALID_PARAM";
+       case LIBUSB_ERROR_ACCESS:
+               return "LIBUSB_ERROR_ACCESS";
+       case LIBUSB_ERROR_NO_DEVICE:
+               return "LIBUSB_ERROR_NO_DEVICE";
+       case LIBUSB_ERROR_NOT_FOUND:
+               return "LIBUSB_ERROR_NOT_FOUND";
+       case LIBUSB_ERROR_BUSY:
+               return "LIBUSB_ERROR_BUSY";
+       case LIBUSB_ERROR_TIMEOUT:
+               return "LIBUSB_ERROR_TIMEOUT";
+       case LIBUSB_ERROR_OVERFLOW:
+               return "LIBUSB_ERROR_OVERFLOW";
+       case LIBUSB_ERROR_PIPE:
+               return "LIBUSB_ERROR_PIPE";
+       case LIBUSB_ERROR_INTERRUPTED:
+               return "LIBUSB_ERROR_INTERRUPTED";
+       case LIBUSB_ERROR_NO_MEM:
+               return "LIBUSB_ERROR_NO_MEM";
+       case LIBUSB_ERROR_NOT_SUPPORTED:
+               return "LIBUSB_ERROR_NOT_SUPPORTED";
+       case LIBUSB_ERROR_OTHER:
+               return "LIBUSB_ERROR_OTHER";
+       }
+       return "**UNKNOWN**";
+}
+#endif