X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fjtag%2Fgw16012.c;h=c634df3199476a064f29d38f130c0c68b678747f;hb=76ebc78358ef94dcf5d64c8738e6dd4bb1371b2c;hp=1f1f6086833c3f62f35c2cef088ddf454ff681cb;hpb=5ed126c4f90948fbf53d186dc4ef49018fb5ecfc;p=openocd diff --git a/src/jtag/gw16012.c b/src/jtag/gw16012.c index 1f1f6086..c634df31 100644 --- a/src/jtag/gw16012.c +++ b/src/jtag/gw16012.c @@ -29,11 +29,9 @@ #define _DEBUG_GW16012_IO_ #endif -/* system includes */ - /* system includes */ // -ino: 060521-1036 -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #include #include @@ -43,13 +41,11 @@ #else -#ifndef _WIN32 -#include -#else +#ifdef _WIN32 #include "errno.h" #endif /* _WIN32 */ -#endif /* __FreeBSD__ */ +#endif /* __FreeBSD__, __FreeBSD_kernel__ */ #include #include @@ -58,7 +54,7 @@ #include #if PARPORT_USE_PPDEV == 1 -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #include #include #define PPRSTATUS PPIGSTATUS @@ -69,6 +65,10 @@ #endif #include #include +#else /* not PARPORT_USE_PPDEV */ +#ifndef _WIN32 +#include +#endif #endif #if PARPORT_USE_GIVEIO == 1 @@ -82,7 +82,7 @@ #include "log.h" /* configuration */ -unsigned long gw16012_port; +u16 gw16012_port; /* interface variables */ @@ -107,8 +107,6 @@ jtag_interface_t gw16012_interface = .execute_queue = gw16012_execute_queue, - .support_pathmove = 0, - .speed = gw16012_speed, .register_commands = gw16012_register_commands, .init = gw16012_init, @@ -135,7 +133,7 @@ void gw16012_data(u8 value) #if PARPORT_USE_PPDEV == 1 ioctl(device_handle, PPWDATA, &value); #else - #ifdef __FreeBSD__ + #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) outb(gw16012_port, value); #else outb(value, gw16012_port); @@ -156,7 +154,7 @@ void gw16012_control(u8 value) #if PARPORT_USE_PPDEV == 1 ioctl(device_handle, PPWCONTROL, &gw16012_control_value); #else - #ifdef __FreeBSD__ + #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) outb(gw16012_port + 2, gw16012_control_value); #else outb(gw16012_control_value, gw16012_port + 2); @@ -360,6 +358,12 @@ int gw16012_execute_queue(void) int scan_size; enum scan_type type; u8 *buffer; + int retval; + + /* return ERROR_OK, unless a jtag_read_buffer returns a failed check + * that wasn't handled by a caller-provided error handler + */ + retval = ERROR_OK; while (cmd) { @@ -415,7 +419,7 @@ int gw16012_execute_queue(void) #endif gw16012_scan(cmd->cmd.scan->ir_scan, type, buffer, scan_size); if (jtag_read_buffer(buffer, cmd->cmd.scan) != ERROR_OK) - return ERROR_JTAG_QUEUE_FAILED; + retval = ERROR_JTAG_QUEUE_FAILED; if (buffer) free(buffer); break; @@ -432,7 +436,7 @@ int gw16012_execute_queue(void) cmd = cmd->next; } - return ERROR_OK; + return retval; } #if PARPORT_USE_GIVEIO == 1 @@ -466,7 +470,6 @@ int gw16012_init(void) #if PARPORT_USE_PPDEV == 1 char buffer[256]; int i = 0; - u8 control_port; #endif u8 status_port; @@ -477,7 +480,7 @@ int gw16012_init(void) return ERROR_JTAG_INIT_FAILED; } -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) DEBUG("opening /dev/ppi%d...", gw16012_port); snprintf(buffer, 256, "/dev/ppi%d", gw16012_port); @@ -496,7 +499,7 @@ int gw16012_init(void) DEBUG("...open"); -#ifndef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) i=ioctl(device_handle, PPCLAIM); if (i<0) { @@ -540,7 +543,7 @@ int gw16012_init(void) DEBUG("...privileges granted"); /* make sure parallel port is in right mode (clear tristate and interrupt */ -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) outb(gw16012_port + 2, 0x0); #else outb(0x0, gw16012_port + 2);