diff options
Diffstat (limited to 'src/jtag/parport.c')
-rw-r--r-- | src/jtag/parport.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/jtag/parport.c b/src/jtag/parport.c index 21aa5131..4b0b193c 100644 --- a/src/jtag/parport.c +++ b/src/jtag/parport.c @@ -51,8 +51,15 @@ #include <stdio.h> #if PARPORT_USE_PPDEV == 1 +#ifdef __FreeBSD__ +#include <dev/ppbus/ppi.h> +#include <dev/ppbus/ppbconf.h> +#define PPRSTATUS PPIGSTATUS +#define PPWDATA PPISDATA +#else #include <linux/parport.h> #include <linux/ppdev.h> +#endif #include <fcntl.h> #include <sys/ioctl.h> #endif @@ -310,11 +317,17 @@ int parport_init(void) return ERROR_JTAG_INIT_FAILED; } +#ifdef __FreeBSD__ + DEBUG("opening /dev/ppi%d...", parport_port); + + snprintf(buffer, 256, "/dev/ppi%d", parport_port); + device_handle = open(buffer, O_WRONLY); +#else DEBUG("opening /dev/parport%d...", parport_port); snprintf(buffer, 256, "/dev/parport%d", parport_port); device_handle = open(buffer, O_WRONLY); - +#endif if (device_handle<0) { ERROR("cannot open device. check it exists and that user read and write rights are set"); @@ -323,6 +336,7 @@ int parport_init(void) DEBUG("...open"); +#ifndef __FreeBSD__ i=ioctl(device_handle, PPCLAIM); if (i<0) { @@ -345,6 +359,7 @@ int parport_init(void) ERROR("cannot set compatible 1284 mode to device"); return ERROR_JTAG_INIT_FAILED; } +#endif #else if (parport_port == 0) { |