diff --git a/patch.mk b/patch.mk index 87c72d00..c67e7b39 100644 --- a/patch.mk +++ b/patch.mk @@ -51,6 +51,7 @@ define EXPORT_PATCH --no-signature \ --stdout \ --text \ + -M9 \ dist..HEAD \ | sed 's/^From [0-9a-f]\{40\} /From 0000000000000000000000000000000000000000 /' \ | sed 's/^index .......\.\......../index 1111111..2222222/' \ diff --git a/src/libieee1284-1-fixes.patch b/src/libieee1284-1-fixes.patch index 0fd19e01..fa0625b1 100644 --- a/src/libieee1284-1-fixes.patch +++ b/src/libieee1284-1-fixes.patch @@ -34,586 +34,22 @@ index 1111111..2222222 100644 -AC_CONFIG_FILES(Makefile libieee1284.spec) +AC_CONFIG_FILES([Makefile libieee1284.spec include/ieee1284.h]) AC_OUTPUT -diff --git a/include/ieee1284.h b/include/ieee1284.h -deleted file mode 100644 -index 1111111..2222222 +diff --git a/include/ieee1284.h b/include/ieee1284.h.in +similarity index 99% +rename from include/ieee1284.h +rename to include/ieee1284.h.in +index 1111111..2222222 100644 --- a/include/ieee1284.h -+++ /dev/null -@@ -1,284 +0,0 @@ --/* -- * libieee1284 - IEEE 1284 library -- * Copyright (C) 2001, 2002, 2003 Tim Waugh -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation; either version 2 of the License, or -- * (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * 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 -- */ -- --#ifndef HAVE_IEEE1284_H --#define HAVE_IEEE1284_H -- --#include /* for size_t */ --#ifndef _MSC_VER --#include /* for struct timeval */ --#else --#include /* for struct timeval */ --#endif -- --#if (defined __MINGW32__ || defined _MSC_VER) && !defined OWN_SSIZE_T --#include /* for SSIZE_T */ --#define OWN_SSIZE_T --typedef SSIZE_T ssize_t; --#endif -- --#ifdef __cplusplus --extern "C" { --#endif -- --/* Errors. When a function returns a negative number, it's one of -- * these errors. */ --enum E1284 { -- E1284_OK = 0, /* Everything went fine */ -- E1284_NOTIMPL = -1, /* Not implemented in libieee1284 */ -- E1284_NOTAVAIL = -2, /* Not available on this system */ -- E1284_TIMEDOUT = -3, /* Operation timed out */ -- E1284_REJECTED = -4, /* IEEE 1284 negotiation rejected */ -- E1284_NEGFAILED = -5, /* Negotiation went wrong */ -- E1284_NOMEM = -6, /* No memory left */ -- E1284_INIT = -7, /* Error initialising port */ -- E1284_SYS = -8, /* Error interfacing system */ -- E1284_NOID = -9, /* No IEEE 1284 ID available */ -- E1284_INVALIDPORT = -10 /* Invalid port */ --}; -- --/* A parallel port. */ --struct parport { -- /* An arbitrary name for the port */ -- const char *name; -- -- /* The base address of the port, if that has any meaning, or zero. */ -- unsigned long base_addr; -- -- /* The ECR address of the port, if that has any meaning, or zero. */ -- unsigned long hibase_addr; -- -- /* For internal use only: */ -- void *priv; -- -- /* The filename associated with this port, -- * if that has any meaning, or NULL. */ -- const char *filename; --}; -- --/* Some parallel ports. */ --struct parport_list { -- int portc; -- struct parport **portv; --}; -- --/* The first function to be called. This gives the library a chance -- * to look around and see what's available, and gives the program a -- * chance to choose a port to use. */ --extern int ieee1284_find_ports (struct parport_list *list, int flags); -- --/* The last function to be called. After calling this, only -- * ieee1284_find_ports may be used. */ --extern void ieee1284_free_ports (struct parport_list *list); -- --/* -- * Retrieving the Device ID of a device on a port. -- * This is a special operation since there are some shortcuts on some -- * operating systems (i.e. Linux) that allow us to elide any actual -- * communications. -- */ -- --enum ieee1284_devid_flags --{ -- F1284_FRESH = (1<<1) /* Guarantee a fresh Device ID */ --}; -- --extern ssize_t ieee1284_get_deviceid (struct parport *port, int daisy, -- int flags, char *buffer, size_t len); --/* daisy is the daisy chain address (0-3), or -1 for normal IEEE 1284. */ -- --/* -- * Sharing hooks -- */ -- --enum ieee1284_open_flags --{ -- F1284_EXCL = (1<<0) /* Require exclusive access to the port */ --}; --enum ieee1284_capabilities --{ -- CAP1284_RAW = (1<<0), /* Pin-level access */ -- CAP1284_NIBBLE = (1<<1), -- CAP1284_BYTE = (1<<2), -- CAP1284_COMPAT = (1<<3), -- CAP1284_BECP = (1<<4), -- CAP1284_ECP = (1<<5), -- CAP1284_ECPRLE = (1<<6), -- CAP1284_ECPSWE = (1<<7), -- CAP1284_EPP = (1<<8), -- CAP1284_EPPSL = (1<<9), -- CAP1284_EPPSWE = (1<<10), -- CAP1284_IRQ = (1<<11), -- CAP1284_DMA = (1<<12) --}; --extern int ieee1284_open (struct parport *port, int flags, int *capabilities); -- --extern int ieee1284_close (struct parport *port); -- --extern int ieee1284_ref (struct parport *port); --extern int ieee1284_unref (struct parport *port); -- --extern int ieee1284_claim (struct parport *port); --/* Must be called before any function below. May fail. */ -- --extern void ieee1284_release (struct parport *port); -- --/* -- * Interrupt notification -- */ --extern int ieee1284_get_irq_fd (struct parport *port); --extern int ieee1284_clear_irq (struct parport *port, unsigned int *count); -- --/* -- * Raw port access (PC-style port registers but within inversions) -- * Functions returning int may fail. -- */ -- --extern int ieee1284_read_data (struct parport *port); --extern void ieee1284_write_data (struct parport *port, unsigned char dt); --extern int ieee1284_wait_data (struct parport *port, unsigned char mask, -- unsigned char val, struct timeval *timeout); --extern int ieee1284_data_dir (struct parport *port, int reverse); -- --/* The status pin functions operate in terms of these bits: */ --enum ieee1284_status_bits --{ -- S1284_NFAULT = 0x08, -- S1284_SELECT = 0x10, -- S1284_PERROR = 0x20, -- S1284_NACK = 0x40, -- S1284_BUSY = 0x80, -- /* To convert those values into PC-style register values, use this: */ -- S1284_INVERTED = S1284_BUSY --}; -- --extern int ieee1284_read_status (struct parport *port); -- --/* Wait until those status pins in mask have the values in val. -- * Return E1284_OK when condition met, E1284_TIMEDOUT on timeout. -- * timeout may be modified. */ --extern int ieee1284_wait_status (struct parport *port, -- unsigned char mask, -- unsigned char val, -- struct timeval *timeout); -- --/* The control pin functions operate in terms of these bits: */ --enum ieee1284_control_bits --{ -- C1284_NSTROBE = 0x01, -- C1284_NAUTOFD = 0x02, -- C1284_NINIT = 0x04, -- C1284_NSELECTIN = 0x08, -- /* To convert those values into PC-style register values, use this: */ -- C1284_INVERTED = (C1284_NSTROBE| -- C1284_NAUTOFD| -- C1284_NSELECTIN) --}; -- --extern int ieee1284_read_control (struct parport *port); --/* ieee1284_read_control may be unreliable */ -- --extern void ieee1284_write_control (struct parport *port, unsigned char ct); --/* NOTE: This will not change the direction of the data lines; use -- * ieee1284_data_dir for that. */ -- --extern void ieee1284_frob_control (struct parport *port, unsigned char mask, -- unsigned char val); --/* frob is "out ((in & ~mask) ^ val)" */ -- --/* This function may or may not be available, depending on PPWCTLONIRQ -- * availability. Its operation is: -- * If operation unavailable, return E1284_NOTAVAIL. Otherwise: -- * Set control pins to ct_before. -- * Wait for nAck interrupt. If timeout elapses, return E1284_TIMEDOUT. -- * Otherwise, set control pins to ct_after and return 0. -- * timeout may be modified. */ --extern int ieee1284_do_nack_handshake (struct parport *port, -- unsigned char ct_before, -- unsigned char ct_after, -- struct timeval *timeout); -- --/* -- * IEEE 1284 operations -- */ -- --/* Negotiation/termination */ --enum ieee1284_modes --{ -- M1284_NIBBLE = 0, -- M1284_BYTE = (1<<0), -- M1284_COMPAT = (1<<8), -- M1284_BECP = (1<<9), -- M1284_ECP = (1<<4), -- M1284_ECPRLE = ((1<<4) | (1<<5)), -- M1284_ECPSWE = (1<<10), /* Software emulated */ -- M1284_EPP = (1<<6), -- M1284_EPPSL = (1<<11), /* EPP 1.7 */ -- M1284_EPPSWE = (1<<12), /* Software emulated */ -- M1284_FLAG_DEVICEID = (1<<2), -- M1284_FLAG_EXT_LINK = (1<<14) /* Uses bits in 0x7f */ --}; -- --extern int ieee1284_negotiate (struct parport *port, int mode); --extern void ieee1284_terminate (struct parport *port); -- --/* ECP direction switching */ --extern int ieee1284_ecp_fwd_to_rev (struct parport *port); --extern int ieee1284_ecp_rev_to_fwd (struct parport *port); -- --/* Block I/O -- * The return value is the number of bytes successfully transferred, -- * or an error code (only if no transfer took place). */ --enum ieee1284_transfer_flags --{ -- F1284_NONBLOCK = (1<<0), /* Non-blocking semantics */ -- F1284_SWE = (1<<2), /* Don't use hardware assistance */ -- F1284_RLE = (1<<3), /* Use ECP RLE */ -- F1284_FASTEPP = (1<<4) /* Use faster EPP (counts are unreliable) */ --}; --extern ssize_t ieee1284_nibble_read (struct parport *port, int flags, -- char *buffer, size_t len); --extern ssize_t ieee1284_compat_write (struct parport *port, int flags, -- const char *buffer, size_t len); --extern ssize_t ieee1284_byte_read (struct parport *port, int flags, -- char *buffer, size_t len); --extern ssize_t ieee1284_epp_read_data (struct parport *port, int flags, -- char *buffer, size_t len); --extern ssize_t ieee1284_epp_write_data (struct parport *port, int flags, -- const char *buffer, size_t len); --extern ssize_t ieee1284_epp_read_addr (struct parport *port, int flags, -- char *buffer, size_t len); --extern ssize_t ieee1284_epp_write_addr (struct parport *port, int flags, -- const char *buffer, size_t len); --extern ssize_t ieee1284_ecp_read_data (struct parport *port, int flags, -- char *buffer, size_t len); --extern ssize_t ieee1284_ecp_write_data (struct parport *port, int flags, -- const char *buffer, size_t len); --extern ssize_t ieee1284_ecp_read_addr (struct parport *port, int flags, -- char *buffer, size_t len); --extern ssize_t ieee1284_ecp_write_addr (struct parport *port, int flags, -- const char *buffer, size_t len); --extern struct timeval *ieee1284_set_timeout (struct parport *port, -- struct timeval *timeout); -- --#ifdef __cplusplus --} /* extern "C" */ --#endif -- --#endif /* HAVE_IEEE1284_H */ -diff --git a/include/ieee1284.h.in b/include/ieee1284.h.in -new file mode 100644 -index 1111111..2222222 ---- /dev/null +++ b/include/ieee1284.h.in -@@ -0,0 +1,284 @@ -+/* -+ * libieee1284 - IEEE 1284 library -+ * Copyright (C) 2001, 2002, 2003 Tim Waugh -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * 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 -+ */ -+ -+#ifndef HAVE_IEEE1284_H -+#define HAVE_IEEE1284_H -+ -+#include /* for size_t */ -+#ifndef _MSC_VER -+#include /* for struct timeval */ -+#else -+#include /* for struct timeval */ -+#endif -+ +@@ -27,7 +27,7 @@ + #include /* for struct timeval */ + #endif + +-#if (defined __MINGW32__ || defined _MSC_VER) && !defined OWN_SSIZE_T +#if @SSIZE_T_IN_BASETSD_H@ && !defined OWN_SSIZE_T -+#include /* for SSIZE_T */ -+#define OWN_SSIZE_T -+typedef SSIZE_T ssize_t; -+#endif -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+/* Errors. When a function returns a negative number, it's one of -+ * these errors. */ -+enum E1284 { -+ E1284_OK = 0, /* Everything went fine */ -+ E1284_NOTIMPL = -1, /* Not implemented in libieee1284 */ -+ E1284_NOTAVAIL = -2, /* Not available on this system */ -+ E1284_TIMEDOUT = -3, /* Operation timed out */ -+ E1284_REJECTED = -4, /* IEEE 1284 negotiation rejected */ -+ E1284_NEGFAILED = -5, /* Negotiation went wrong */ -+ E1284_NOMEM = -6, /* No memory left */ -+ E1284_INIT = -7, /* Error initialising port */ -+ E1284_SYS = -8, /* Error interfacing system */ -+ E1284_NOID = -9, /* No IEEE 1284 ID available */ -+ E1284_INVALIDPORT = -10 /* Invalid port */ -+}; -+ -+/* A parallel port. */ -+struct parport { -+ /* An arbitrary name for the port */ -+ const char *name; -+ -+ /* The base address of the port, if that has any meaning, or zero. */ -+ unsigned long base_addr; -+ -+ /* The ECR address of the port, if that has any meaning, or zero. */ -+ unsigned long hibase_addr; -+ -+ /* For internal use only: */ -+ void *priv; -+ -+ /* The filename associated with this port, -+ * if that has any meaning, or NULL. */ -+ const char *filename; -+}; -+ -+/* Some parallel ports. */ -+struct parport_list { -+ int portc; -+ struct parport **portv; -+}; -+ -+/* The first function to be called. This gives the library a chance -+ * to look around and see what's available, and gives the program a -+ * chance to choose a port to use. */ -+extern int ieee1284_find_ports (struct parport_list *list, int flags); -+ -+/* The last function to be called. After calling this, only -+ * ieee1284_find_ports may be used. */ -+extern void ieee1284_free_ports (struct parport_list *list); -+ -+/* -+ * Retrieving the Device ID of a device on a port. -+ * This is a special operation since there are some shortcuts on some -+ * operating systems (i.e. Linux) that allow us to elide any actual -+ * communications. -+ */ -+ -+enum ieee1284_devid_flags -+{ -+ F1284_FRESH = (1<<1) /* Guarantee a fresh Device ID */ -+}; -+ -+extern ssize_t ieee1284_get_deviceid (struct parport *port, int daisy, -+ int flags, char *buffer, size_t len); -+/* daisy is the daisy chain address (0-3), or -1 for normal IEEE 1284. */ -+ -+/* -+ * Sharing hooks -+ */ -+ -+enum ieee1284_open_flags -+{ -+ F1284_EXCL = (1<<0) /* Require exclusive access to the port */ -+}; -+enum ieee1284_capabilities -+{ -+ CAP1284_RAW = (1<<0), /* Pin-level access */ -+ CAP1284_NIBBLE = (1<<1), -+ CAP1284_BYTE = (1<<2), -+ CAP1284_COMPAT = (1<<3), -+ CAP1284_BECP = (1<<4), -+ CAP1284_ECP = (1<<5), -+ CAP1284_ECPRLE = (1<<6), -+ CAP1284_ECPSWE = (1<<7), -+ CAP1284_EPP = (1<<8), -+ CAP1284_EPPSL = (1<<9), -+ CAP1284_EPPSWE = (1<<10), -+ CAP1284_IRQ = (1<<11), -+ CAP1284_DMA = (1<<12) -+}; -+extern int ieee1284_open (struct parport *port, int flags, int *capabilities); -+ -+extern int ieee1284_close (struct parport *port); -+ -+extern int ieee1284_ref (struct parport *port); -+extern int ieee1284_unref (struct parport *port); -+ -+extern int ieee1284_claim (struct parport *port); -+/* Must be called before any function below. May fail. */ -+ -+extern void ieee1284_release (struct parport *port); -+ -+/* -+ * Interrupt notification -+ */ -+extern int ieee1284_get_irq_fd (struct parport *port); -+extern int ieee1284_clear_irq (struct parport *port, unsigned int *count); -+ -+/* -+ * Raw port access (PC-style port registers but within inversions) -+ * Functions returning int may fail. -+ */ -+ -+extern int ieee1284_read_data (struct parport *port); -+extern void ieee1284_write_data (struct parport *port, unsigned char dt); -+extern int ieee1284_wait_data (struct parport *port, unsigned char mask, -+ unsigned char val, struct timeval *timeout); -+extern int ieee1284_data_dir (struct parport *port, int reverse); -+ -+/* The status pin functions operate in terms of these bits: */ -+enum ieee1284_status_bits -+{ -+ S1284_NFAULT = 0x08, -+ S1284_SELECT = 0x10, -+ S1284_PERROR = 0x20, -+ S1284_NACK = 0x40, -+ S1284_BUSY = 0x80, -+ /* To convert those values into PC-style register values, use this: */ -+ S1284_INVERTED = S1284_BUSY -+}; -+ -+extern int ieee1284_read_status (struct parport *port); -+ -+/* Wait until those status pins in mask have the values in val. -+ * Return E1284_OK when condition met, E1284_TIMEDOUT on timeout. -+ * timeout may be modified. */ -+extern int ieee1284_wait_status (struct parport *port, -+ unsigned char mask, -+ unsigned char val, -+ struct timeval *timeout); -+ -+/* The control pin functions operate in terms of these bits: */ -+enum ieee1284_control_bits -+{ -+ C1284_NSTROBE = 0x01, -+ C1284_NAUTOFD = 0x02, -+ C1284_NINIT = 0x04, -+ C1284_NSELECTIN = 0x08, -+ /* To convert those values into PC-style register values, use this: */ -+ C1284_INVERTED = (C1284_NSTROBE| -+ C1284_NAUTOFD| -+ C1284_NSELECTIN) -+}; -+ -+extern int ieee1284_read_control (struct parport *port); -+/* ieee1284_read_control may be unreliable */ -+ -+extern void ieee1284_write_control (struct parport *port, unsigned char ct); -+/* NOTE: This will not change the direction of the data lines; use -+ * ieee1284_data_dir for that. */ -+ -+extern void ieee1284_frob_control (struct parport *port, unsigned char mask, -+ unsigned char val); -+/* frob is "out ((in & ~mask) ^ val)" */ -+ -+/* This function may or may not be available, depending on PPWCTLONIRQ -+ * availability. Its operation is: -+ * If operation unavailable, return E1284_NOTAVAIL. Otherwise: -+ * Set control pins to ct_before. -+ * Wait for nAck interrupt. If timeout elapses, return E1284_TIMEDOUT. -+ * Otherwise, set control pins to ct_after and return 0. -+ * timeout may be modified. */ -+extern int ieee1284_do_nack_handshake (struct parport *port, -+ unsigned char ct_before, -+ unsigned char ct_after, -+ struct timeval *timeout); -+ -+/* -+ * IEEE 1284 operations -+ */ -+ -+/* Negotiation/termination */ -+enum ieee1284_modes -+{ -+ M1284_NIBBLE = 0, -+ M1284_BYTE = (1<<0), -+ M1284_COMPAT = (1<<8), -+ M1284_BECP = (1<<9), -+ M1284_ECP = (1<<4), -+ M1284_ECPRLE = ((1<<4) | (1<<5)), -+ M1284_ECPSWE = (1<<10), /* Software emulated */ -+ M1284_EPP = (1<<6), -+ M1284_EPPSL = (1<<11), /* EPP 1.7 */ -+ M1284_EPPSWE = (1<<12), /* Software emulated */ -+ M1284_FLAG_DEVICEID = (1<<2), -+ M1284_FLAG_EXT_LINK = (1<<14) /* Uses bits in 0x7f */ -+}; -+ -+extern int ieee1284_negotiate (struct parport *port, int mode); -+extern void ieee1284_terminate (struct parport *port); -+ -+/* ECP direction switching */ -+extern int ieee1284_ecp_fwd_to_rev (struct parport *port); -+extern int ieee1284_ecp_rev_to_fwd (struct parport *port); -+ -+/* Block I/O -+ * The return value is the number of bytes successfully transferred, -+ * or an error code (only if no transfer took place). */ -+enum ieee1284_transfer_flags -+{ -+ F1284_NONBLOCK = (1<<0), /* Non-blocking semantics */ -+ F1284_SWE = (1<<2), /* Don't use hardware assistance */ -+ F1284_RLE = (1<<3), /* Use ECP RLE */ -+ F1284_FASTEPP = (1<<4) /* Use faster EPP (counts are unreliable) */ -+}; -+extern ssize_t ieee1284_nibble_read (struct parport *port, int flags, -+ char *buffer, size_t len); -+extern ssize_t ieee1284_compat_write (struct parport *port, int flags, -+ const char *buffer, size_t len); -+extern ssize_t ieee1284_byte_read (struct parport *port, int flags, -+ char *buffer, size_t len); -+extern ssize_t ieee1284_epp_read_data (struct parport *port, int flags, -+ char *buffer, size_t len); -+extern ssize_t ieee1284_epp_write_data (struct parport *port, int flags, -+ const char *buffer, size_t len); -+extern ssize_t ieee1284_epp_read_addr (struct parport *port, int flags, -+ char *buffer, size_t len); -+extern ssize_t ieee1284_epp_write_addr (struct parport *port, int flags, -+ const char *buffer, size_t len); -+extern ssize_t ieee1284_ecp_read_data (struct parport *port, int flags, -+ char *buffer, size_t len); -+extern ssize_t ieee1284_ecp_write_data (struct parport *port, int flags, -+ const char *buffer, size_t len); -+extern ssize_t ieee1284_ecp_read_addr (struct parport *port, int flags, -+ char *buffer, size_t len); -+extern ssize_t ieee1284_ecp_write_addr (struct parport *port, int flags, -+ const char *buffer, size_t len); -+extern struct timeval *ieee1284_set_timeout (struct parport *port, -+ struct timeval *timeout); -+ -+#ifdef __cplusplus -+} /* extern "C" */ -+#endif -+ -+#endif /* HAVE_IEEE1284_H */ + #include /* for SSIZE_T */ + #define OWN_SSIZE_T + typedef SSIZE_T ssize_t; diff --git a/src/detect.h b/src/detect.h index 1111111..2222222 100644 --- a/src/detect.h