Blob Blame History Raw
2007-09-18  Tim Waugh  <>

	* Version 0.2.11 (stable).

2007-08-31  Tim Waugh  <>

	* src/detect.c (check_proc_type): Don't require st_nlink > 2 for
	proc directories.  Patch from Stefan Demharter.

2005-04-06  Tim Waugh  <>

	* src/ports.c: Applied patch from Julien BLACHE <>
	to prevent uninitialized buffers.

2005-03-22  Tim Waugh  <>

	* Version 0.2.10 (stable).

2005-03-11  Tim Waugh  <>

	* src/access_io.c, src/access_lpt.c, src/access_ppdev.c,
	  src/detect.c, src/detect.h, src/ports.c, src/state.c: Modifications
	to support udev-054.  Patch from Julien BLACHE <>.

2005-03-04  Tim Waugh  <>

	* Patch from Robin Elfrink <> to
	allow building on Debian GNU/kFreeBSD

2005-01-21  Tim Waugh  <>

	* Ship VC6 files.

2005-01-20  Tim Waugh  <>

	* Version 0.2.9 (stable).

2004-08-10  Matthew Duggan <>
	* src/access_lpt.c: Make error message more useful.

2004-08-09  Matthew Duggan <>

	* TODO: Add some more TODOs
	* README.MinGW: Notes on the new MinGW port.
	* README.VC6: Notes on the new VC6 port.
	* README.winNT: Note that EXCL is implicit in NT.

	Applying patch from Daniel Horchner:
	* Makefile.vc6 ieee1284.def include/config.h.vc6: Build files for VC6.
	* Add MinGW support
	* include/ieee1284.h M src/access.h src/access_io.c src/access_lpt.c
	  src/access_ppdev.c src/debug.c src/default.c src/delay.c
	  src/detect.c src/detect.h src/deviceid.c src/io.h src/ports.c
	  src/state.c: Patched for MinGW support and VC6 support.

2004-03-25  Tim Waugh  <>

	*, Make Python extension module optional.

2004-02-03  Tim Waugh  <>

	* src/ieee1284module.c: Python extension module.
	* Check for Python paths.
	* Build and install Python extension module.
	* Ship it.

2003-08-28  Tim Waugh  <>

	* src/access_ppdev.c (find_capabilities): Don't report impossible
	modes for non-bidirectional ports.

2003-05-30  Tim Waugh  <>

	*, Version 0.2.8 (stable).

2003-05-30  Tim Waugh  <>

	* include/ieee1284.h (struct parport): New member 'filename'.
	* src/ports.c (add_port): Set it.
	(deref_port): Free it.
	* doc/interface.xml: Document it.
	* include/ieee1284.h: New prototypes.

	* src/interface.c (ieee1284_ref): New function.
	(ieee1284_unref): New function.
	* doc/interface.xml: Document them.
	* Install the man pages.
	* libieee1284.sym: Export them.

	* src/ports.c (deref_port): Return the new reference count.
	* src/detect.h: Adjust prototype.

2003-05-23  Tim Waugh  <>

	* doc/interface.xml: Clarify the directory of 'capabilities' in

2003-05-09  Tim Waugh  <>

	* src/access_ppdev.c (translate_error_code): Translate EAGAIN to

2003-05-06  Tim Waugh  <>

	* include/ieee1284.h: Avoid trailing commas in enums, to prevent
	compiler warnings.

2003-05-03  Tim Waugh  <>

	* doc/interface.xml: Fix reference to selectable_fd, which was
	replaced by ieee124_get_irq_fd().

2003-02-26  Tim Waugh  <>

	*, Version 0.2.7 (stable).

2003-02-22  Tim Waugh  <>

	* src/default.c (default_ecp_write_data): Don't drop strobe too
	early (spotted by Gretus).

	* src/default.c (default_ecp_write_addr): Implemented by Gretus
	Hoogestraat <>.

2003-02-21  Tim Waugh  <>

	* src/*.c, src/debug.h: Rename dprintf to debugprintf to avoid
	conflicts with older versions of glibc.

2003-02-15  Tim Waugh  <>

	* doc/interface.xml (ieee1284_negotiate): Mention the IEEE 1284
	restriction on mode transitions.

2002-12-25  Tim Waugh  <>

	*, Version 0.2.6 (stable).

2002-12-19  Tim Waugh  <>

	* doc/interface.xml: It's /etc/libieee1284.conf, not

2002-11-20  Tim Waugh  <>

	* include/ieee1284.h: Guard macro.

2002-11-05  Matthew Duggan <>

       * src/access_ppdev.c (negotiate): Check errno after ioctl fails, 
       not return value.
       * doc/interface.xml: negotiate can also return E1284_SYS in rare cases.

2002-11-05  Tim Waugh  <>

	*, Version 0.2.5 (stable).

2002-11-05  Matthew Duggan <>

       * Ship src/io.h (double oops).

2002-10-12  Tim Waugh  <>

	*, Version 0.2.4 (stable).

2002-10-12  Tim Waugh  <>

	* Move iop.conf declaration inside SOLARIS_IO
	conditional, to prevent installation failures on other platforms.

2002-10-12  Julien BLACHE  <>

	* src/access_io.c, src/detect.h: Prevent conflicts with inb/outb

2002-10-02  Tim Waugh  <>

	* Fix solaris_io/iop link rule.

2002-10-02  Matthew Duggan  <>

	* src/interface.c (ieee1284_wait_data): Implement this.

2002-09-30  Tim Waugh  <>

	* solaris_io/ Move to..

2002-09-26  Julien BLACHE  <>

	* Test for sys/io.h.
	* src/access_io.c, src/detect.c: Check for sys/io.h

2002-09-19  Tim Waugh  <>

	*, Version 0.2.3 (stable).

2002-09-17  Tim Waugh  <>

	* Ship src/par_nt.h, README.* (oops).

2002-09-15  Matthew Duggan  <>

	* Added check for FreeBSD/i386
	* README.FreeBSD: Notes on FreeBSD use
	* src/access_io.c: Open /dev/io for port access in FreeBSD
	* src/detect.c (check_io): Check if /dev/io is available in FreeBSD 
	* src/ports.c (populate_by_guessing): Guessing for FreeBSD

2002-09-09  Tim Waugh  <>

	* doc/interface.xml: Clarifications about E1284_INVALIDPORT, and
	about the constraints on the port supplied to each function.

	* src/access_ppdev.c, src/conf.c, src/debug.c: Just formatting

	* src/blockio.c: Removed.

2002-09-07  Matthew Duggan  <>

	* src/access_lpt.c (init): Set capabilities to indicate that
	bidirectional transfers are not possible.
	(read_data, data_dir): Removed.
	(write_control, frob_control): Don't use data_dir.
	(lpt_access_methods): Updated.
	* src/interface.c (ieee1284_read_data): Check that read_data
	method is provided and return E1284_NOTAVAIL if not.
	(ieee1284_data_dir): Likewise for data_dir.

2002-09-07  Tim Waugh  <>

	*, Version 0.2.2 (stable).

2002-09-05  Tim Waugh  <>

	* src/detect.c (check_dev_node): If claiming a ppdev device node
	fails, don't worry about it.  It might be available to claim by the
	time the user asks for it.

	* include/ieee1284.h: Added ieee1284_clear_irq.
	* src/detect.h (struct parport_access_methods): Added clear_irq
	method declaration.
	* src/interface.c (ieee1284_clear_irq): Implemented.
	* src/access_io.c (io_access_methods): Updated.
	* src/access_lpt.c (lpt_access_methods): Updated.
	* src/access_ppdev.c (clear_irq): Implemented.
	(ppdev_access_methods): Updated.
	* libieee1284.sym: Added ieee1284_clear_irq.
	* tests/test.c: Lightly test ieee1284_get_irq_fd/ieee1284_clear_irq.

2002-09-04  Tim Waugh  <>

	* doc/interface.xml (ieee1284_get_irq_fd): Clarify the conditions
	of use of the file descriptor.

	* src/debug.h: Add a format attribute to dprintf, for GCC.

2002-09-04  Matthew Duggan  <>

	* src/detect.h: Added Phase enumerated type, and variable in
	parport_internal to hold phase (for ECPSWE)
	* src/default.c: Implement default_ecp_fwd_to_rev, 
	default_ecp_rev_to_fwd, default_ecp_read_data, default_ecp_write_data,
	default_epp_read_data (untested), and default_byte_read.
	Fix bug in termination (revert to M1284_COMPAT)

2002-09-04  Kevin Easton  <>

	* src/delay.c, src/delay.h: Changed lookup_delay into a macro that
	does a table lookup.
	* src/delay.c, src/delay.h: Added udelay() delay function that
	busy-waits on gettimeofday(), in preparation for ECPSWE.
	* src/default.c: Changed instance of usleep() into udelay().

2002-09-02  Tim Waugh  <>

	* src/conf.c: Add 'method' keyword to 'disallow', since there are
	others things than methods that will be useful there too.
	* doc/interface.xml: Updated.

2002-08-30  Tim Waugh  <>

	* src/default.c (default_epp_write_data): Don't deassert nWrite
	when finished.  There's no need to go to idle mode here, and it
	just slows things down.

	* src/conf.c: Don't look in $HOME for config file.  Tokenise on
	braces and equals signs.
	* doc/interface.xml: Updated.

2002-08-29  Tim Waugh  <>

	* doc/interface.xml (libieee1284.3): Added a configuration section.

	* src/conf.c, src/conf.h: New files, for configuration.
	* src/ports.c: Call read_config_file().
	* src/state.c: Use disallow_ppdev from config.
	* Update.

2002-08-27  Tim Waugh  <>

	* src/default.c: More debugging output.
	* src/access_ppdev.c: More debugging output.  Handle O_NONBLOCK

2002-08-24  Tim Waugh  <>

	*, Version 0.2.1 (stable).

2002-08-24  Tim Waugh  <>

	* Rename test libieee1284_test, and ship it.

	* src/ports.c (sort_ports): Sort the port list in name order.
	(add_port): Keep the list sorted, for minimal surprise.

2002-08-09  Tim Waugh  <>

	* src/access_ppdev.c (set_mode): Implement F1284_FASTEPP.
	* include/ieee1284.h (enum ieee1284_transfer_flags): New flag
	* doc/interface.xml: Updated to include F1284_FASTEPP.

	* src/default.c (poll_port): New internal function for very short
	waits (for EPP).
	(default_epp_write_data): Implemented.

	* src/debug.c (dprintf): Check that stderr is open.

	* src/interface.c: Sprinkle dprintf calls throughout.

2002-08-08  Tim Waugh  <>

	* src/debug.c: Include sys/types.h for C99.
	* src/detect.c (check_proc_type): Use S_ISDIR instead of S_IFDIR
	for C99.

	* src/access_ppdev.c (negotiate): Fix compile error.

2002-08-07  Tim Waugh  <>

	* doc/interface.xml (transfer): Clarify the meaning of the buffer
	and its length.

	* doc/interface.xml (libieee1284.3): Added trouble-shooting section.

	* src/default.c (default_negotiate): If M1284_COMPAT is requested,
	perform termination.

	* src/default.c (default_negotiate): Don't attempt a negotiation
	to a mode we are already in.

	* src/access_ppdev.c (negotiate): Add some calls to dprintf.

	* src/access_ppdev.c (negotiate): Return E1284_NEGFAILED and
	E1284_REJECTED when appropriate, instead of E1284_SYS.

2002-08-03  Tim Waugh  <>

	*, Version 0.2.0 (stable).

2002-07-31  Tim Waugh  <>

	*, Version 0.1.7 (devel).

2002-07-31  Tim Waugh  <>

	* src/access_ppdev.c (terminate): Seems to need a slight delay
	afterwards before a sensible Device ID can be obtained.

2002-07-21  Matthew Duggan  <>

	* README.OpenBSD: Notes on use in OpenBSD
	* README: It's not Linux-only any more...
	* Additions for OpenBSD
	* src/io_95.h: Moved..
	* src/io.h: to this (now used in OBSD too)
	* src/access_io.c: Modifications for OpenBSD.
	* src/detect.c: ditto.
	* src/ports.c: ditto.

2002-07-06  Tim Waugh  <>

	* Fix up man page list.
	* Add files in solaris_io to EXTRA_DIST, since it is
	treated as a separate project.

2002-07-06  Tim Waugh  <>

	Apply patch from Matthew Duggan for Solaris/x86 and Cygwin/(NT|95)

	* solaris_io: New directory.
	* solaris_io/INSTALL, solaris_io/LICENSE, solaris_io/,
	solaris_io/README, solaris_io/iop.c, solaris_io/iop.conf,
	solaris_io/ioprtest.c: New files.  These are for the Solaris
	driver and are not linked in with libieee1284.
	* src/access_lpt.c: New file for access for VDMLPT on NT kernels.
	* src/io_95.h, src/par_nt.h: New files for Cygwin ports.
	* Solaris/Cygwin additions.
	* Solaris/Cygwin additions.
	* include/ieee1284.h: Include <sys/time.h> for struct timeval.
	* src/access.h: Declare lpt_access_methods.
	* src/access_io.c: Modifications for Solaris/Cygwin.
	* src/access_ppdev.c: Modifications for when ppdev is not
	available on this platform.
	* src/detect.c: Modifications for Solaris/Cygwin.
	* src/detect.h: Likewise.
	* src/deviceid.c: Remove redundant includes.
	* src/ports.c: Modifications for Solaris/Cygwin.
	* src/state.c: Likewise.

2002-05-21  Tim Waugh  <>

	* src/detect.c (check_dev_node): Check the return value of the
	PPCLAIM ioctl to make sure that this is actually a ppdev device.
	Suggested by Matthew Duggan.

2002-04-26  Tim Waugh  <>

	* interface.sgml: Renamed to..
	* interface.xml: ..this.  XMLified.
	* Track name change.  Use xmlto instead of docbook2man.
	Distribute the generated man pages in the tarball.
	* No need to create man page symlinks any more.
	Use xmlto to create PDF file.

	* No need to run docbook2man twice now that docbook-utils
	can resolve references on its own now.

2002-04-24  Tim Waugh  <>

	*, Version 0.1.6 (devel).

2002-04-24  Tim Waugh  <>

	* New directory structure.  Build man pages.
	* Update.  Use automake 1.6 and autoconf 2.53.
	* access.h, access_io.c, blockio.c, debug.c, debug.h, default.c,
	default.h, delay.c, delay.h, detect.c, detect.h, deviceid.c,
	interface.c, parport.h, ports.c, ppdev.h, state.c: Moved..
	* src/:
	* ieee1284.h: Moved..
	* include/:
	* test.c: Moved..
	* tests/:
	* Don't build man pages here, since we do
	that via automake now.  Run ldconfig in scriptlets.

2002-04-09  Tim Waugh  <>

	* Version 0.1.5 (devel).

2002-04-09  Tim Waugh  <>

	* doc/interface.sgml, This is API 3.

	* default.c (default_nibble_read, default_compat_write,
	default_byte_read): Accept new flags parameter.
	* default.h: Likewise.
	* detect.h: Likewise.
	* ieee1284.h: Likewise.  Define new flag.
	* deviceid.c (get_fresh): Use new parameter.
	* interface.c (ieee1284_nibble_read, ieee1284_compat_write,
	ieee1284_byte_read): Likewise.

	* access_ppdev.c (init): Initialize nonblock in private
	(do_nonblock): New function: enable/disable O_NONBLOCK.
	(nibble_read, compat_write, byte_read, epp_read_data,
	epp_write_data, epp_read_addr, epp_write_addr, ecp_read_data,
	ecp_write_data, ecp_write_addr): Use it.

	* doc/interface.sgml: New flag F1284_NONBLOCK.

	* test.c (field): Avoid crashing on bad input.
	(show_capabilities): Fix compiler warning.
	(test_open): More compiler warning fixes.

	* ports.c: Include debug.h for dprintf.

2002-04-08  Tim Waugh  <>

	* access_io.c (cleanup): Prevent double-freeing of port->fn.  Patch
	from Matthew Duggan <>.

2002-01-16  Tim Waugh  <>

	*, Version 0.1.4 (devel).

2002-01-16  Tim Waugh  <>

	* test.c: Better output.

	* default.c (default_terminate): Don't wait for SELECT.
	(default_nibble_read): Check nDataAvail.

	* ports.c (add_port): Set hibase_addr as well.
	(populate_from_sys_dev_parport): Find out ECR address.

	* ieee1284.h: Remove port->modes, since that's returned from
	ieee1284_open now.

2002-01-14  Tim Waugh  <>

	* ieee1284.h: Enforce C linkage.

2002-01-07  Tim Waugh  <>

	*, Version 0.1.3 (devel).

2002-01-07  Tim Waugh  <>

	* detect.c (check_dev_node): Claim and release parport device nodes
	in order to get the low-level port driver loaded.
	(detect_environment): Try to open an lp device node in order to get
	the low-level port driver loaded.

2002-01-06  Ken Easton  <>

	* Don't check for a C++ compiler, since we don't need

2002-01-06  Tim Waugh  <>

	* state.c (init_port): Use the right access methods for non-ppdev
	port types.
	* access_io.c (init): Don't invert the return value of ioperm.
	Spotted by Simon Krix.

2002-01-05  Kevin Easton  <>

	* ports.c (add_port): Set p->base_addr and p->hibase_addr.
	(populate_from_parport): Fix parsing.

2002-01-05  Tim Waugh  <>

	* ports.c (deref_port): Don't call the cleanup method; this is
	done by ieee1284_close.

	* access_ppdev.c (which_mode): Pass through modes with flags set.

	* access_ppdev.c (set_mode): Translate the error code returned by

	* access_ppdev.c (which_mode): New function.
	(set_mode): Use it.
	(negotiate): New function.
	(terminate): New function.
	(ppdev_access_methods): Use them.

	* access_ppdev.c (init): Initialize port->current_mode.

2002-01-04  Tim Waugh  <>

	* state.c (ieee1284_open): Check that the port is not already
	* interface.c (ieee1284_close, ieee1284_claim,
	ieee1284_get_irq_fd, ieee1284_release, ieee1284_read_data,
	ieee1284_write_data, ieee1284_data_dir, ieee1284_read_status,
	ieee1284_wait_status, ieee1284_read_control,
	ieee1284_write_control, ieee1284_frob_control,
	ieee1284_do_nack_handshake, ieee1284_negotiate,
	ieee1284_terminate, ieee1284_ecp_fwd_to_rev,
	ieee1284_ecp_rev_to_fwd, ieee1284_nibble_read,
	ieee1284_compat_write, ieee1284_byte_read, ieee1284_epp_read_data,
	ieee1284_epp_write_data, ieee1284_epp_read_addr,
	ieee1284_epp_write_addr, ieee1284_ecp_read_data,
	ieee1284_ecp_write_data, ieee1284_ecp_read_addr,
	ieee1284_ecp_write_addr): Check that the port is in the right
	state (opened, claimed) for the operation.

2002-01-03  Tim Waugh  <>

	* test.c (main): Test ieee1284_open and ieee1284_close a little.

	* access_ppdev.c (find_capabilities): Work around a 2.4.x kernel
	bug by claiming the port before using PPGETMODES.

2001-11-30  Tim Waugh  <>

	* Version 0.1.2 (devel).

2001-11-30  Tim Waugh  <>

	* debug.c, debug.h (debug_display_status, debug_display_control,
	debug_frob_control): New functions for tracing pin values.
	* access_io.c (read_status, wait_status, write_control,
	frob_control): Use them.
	* access_ppdev.c (read_status, wait_status, write_control,
	frob_control): Likewise.

	* API 2.

2001-11-29  Tim Waugh  <>

	* ieee1284.h, state.c, access_io.c, access_ppdev.c: Capabilities.

	* interface.c, access_ppdev.c access_io.c, detect.h, ieee1284.h:
	ieee1284_data_dir returns int.

	* interface.c (ieee1284_set_timeout): New function.
	* access_ppdev.c (set_timeout): New function.

	* ieee1284.h, ports.c: Remove config_file parameter from

	* interface.c (ieee1284_get_irq_fd): New function.
	* access_ppdev (get_irq_fd): New function.

	* ieee1284.h: New error code E1284_NOID.
	* deviceid.c (get_fresh): Return E1284_NOID if there was no ID to

	* ieee1284.h: New error code E1284_INVALIDPORT.

	* debug.c, debug.h: New function ieee1284_display_status for

	* access_io.c, access_ppdev.c, default.c, detect.h, deviceid.c,
	interface.c, ports.c, state.c: Port reference counting, and
	ieee1284_open and ieee1284_close.

2001-11-22  Tim Waugh  <>

	* default.c (LOG_ERROR): We now have dprintf, so this is not

	* default.c (default_nibble_read, default_compat_write): Print
	debugging info.

2001-11-18  Tim Waugh  <>

	* detect.c, deviceid.c, access_ppdev.c, state.c: Include debug.h.
	* delay.c: Include stdio.h.

2001-11-18  Tim Waugh  <>

	* Version 0.1.1 (devel).

2001-11-18  Tim Waugh  <>

	* access_ppdev.c (frob_control): Messy calculations to deal with
	inverted pins.
	* access_io.c (raw_frob_control): Likewise.

	* state.c: Debugging.  Return proper error code from ieee1284_claim.
	* detect.c: Debugging.
	* deviceid.c: Debugging.
	* default.c (default_negotiate): Debugging.

	* debug.h: New file.
	* debug.c: New file.
	* (libieee1284_la_SOURCES): Add debug.h and debug.c.

2001-11-15  Tim Waugh  <>

	* Version 0.1.0 (devel).

2001-11-15  Tim Waugh  <>

	* deviceid.c (get_fresh): Fix signed/unsigned comparison.
	(get_from_proc_parport): Likewise.
	(get_from_sys_dev_parport): Likewise.

	* ports.c (ieee1284_find_ports): Return E1284_NOTIMPL if a
	configuration file is specified, since we don't have a format
	defined yet.

	* ieee1284.h: Add ieee1284_ecp_read_addr just in case anyone wants
	* interface.c (ieee1284_ecp_read_addr): Likewise.

	* deviceid.c (get_fresh): Fixed for return value.

	* state.c (ieee1284_claim): Return error code that init_port
	(init_port): Return error code that fn->init returns.

	* ports.c (add_port): Set flags on parport_internal struct.
	(populate_from_parport): Likewise.
	(populate_from_sys_dev_parport): Likewise.
	(populate_by_guessing): Likewise.
	(ieee1284_find_ports): Likewise.

	* state.c (ieee1284_claim): Return E1284_INIT on error.

	* ports.c: General clean-ups.

	* detect.h (struct parport_internal): New member access_priv for
	the access methods to use.

2001-11-14  Tim Waugh  <>

	* ports.c (ieee1284_find_ports): Watch out for flags we don't yet
	* deviceid.c (ieee1284_get_deviceid): Likewise.

	* ieee1284.h (enum ieee1284_transfer_flags): Add F1284_SWE and
	F1284_RLE flags.
	(enum ieee1284_global_flags): Add F1284_EXCL flag.

	* Move AM_PROG_LIBTOOL to later to prevent warning.

	* ieee1284.h: Add flags parameter for EPP/ECP functions.
	default.h: Likewise.
	default.c: Likewise.
	detect.h: Likewise.
	interface.c: Likewise.

2001-11-13  Tim Waugh  <>

	* ieee1284.h: s/st/dt/ in ieee1284_write_data prototype.
	Corrected comments above ieee1284_wait_status and

	* deviceid.c (get_fresh): Honour buffer length properly.
	Don't terminate with 0 unless the entire ID fits in the buffer.
	(get_from_proc_parport): Likewise.
	(get_from_sys_dev_parport): Likewise.

2001-11-01  Tim Waugh  <>

	* libieee1284.sym: List exported symbols.
	* Only export listed symbols.

2001-10-17  Tim Waugh  <>

	* access.h, access_io.c, access_ppdev.c, default.c, default.h,
	delay.c, detect.c, detect.h, deviceid.c, interface.c, ports.c,
	state.c: Change ISO C99 //-style comments to /*-style-*/ ones
	to make it easier to include libieee1284 in projects with that
	restriction.  Also, put function names at column 1 where they
	are defined, to make grepping easier.

2001-10-16  Tim Waugh  <>

	* ieee1284.h: Clarify block I/O return value meaning.

2001-10-16  Simon Krix  <>

	* default.c (default_terminate): Implemented.
	(default_nibble_read): Implemented.
	(default_compat_write): Implemented.

	* delay.c (lookup_delay): Fix timings.