summaryrefslogtreecommitdiff
path: root/src/jtag/parport.c
diff options
context:
space:
mode:
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2006-08-11 17:49:41 +0000
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2006-08-11 17:49:41 +0000
commitec0f06db114d1cc9d1d59acd8f4e3b32414d5b8e (patch)
tree23644c757a85534a5daa6ce21b44c766321fba5d /src/jtag/parport.c
parentca1e5ee1f4236e2e384397bf6211ce56a1f687f5 (diff)
downloadopenocd_libswd-ec0f06db114d1cc9d1d59acd8f4e3b32414d5b8e.tar.gz
openocd_libswd-ec0f06db114d1cc9d1d59acd8f4e3b32414d5b8e.tar.bz2
openocd_libswd-ec0f06db114d1cc9d1d59acd8f4e3b32414d5b8e.tar.xz
openocd_libswd-ec0f06db114d1cc9d1d59acd8f4e3b32414d5b8e.zip
- added support for FreeBSD ppi (parallel port access similar to /dev/parport on linux) (thanks to Darius for this patch)
- unified 'ftd2xx' and 'ftdi2232' into a single interface 'ft2232'. The library used to access the hardware is choosen during configure with --enable-ft2232_ftd2xx or --enable-ft2232-libftdi. git-svn-id: svn://svn.berlios.de/openocd/trunk@83 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/jtag/parport.c')
-rw-r--r--src/jtag/parport.c17
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)
{