2007-09-18 Tim Waugh * configure.in: 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 * configure.in: 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 * configure.in: Patch from Robin Elfrink to allow building on Debian GNU/kFreeBSD (http://www.debian.org/ports/kfreebsd-gnu/). 2005-01-21 Tim Waugh * Makefile.am: Ship VC6 files. 2005-01-20 Tim Waugh * configure.in: 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. * configure.in: 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 * configure.in, Makefile.am: Make Python extension module optional. 2004-02-03 Tim Waugh * src/ieee1284module.c: Python extension module. * configure.in: Check for Python paths. * Makefile.am: Build and install Python extension module. * libieee1284.spec.in: 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 * configure.in, Makefile.am: 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. * Makefile.am: 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 parport_open. 2003-05-09 Tim Waugh * src/access_ppdev.c (translate_error_code): Translate EAGAIN to E1284_TIMEDOUT. 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 * configue.in, Makefile.am: 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 * configure.in, Makefile.am: Version 0.2.6 (stable). 2002-12-19 Tim Waugh * doc/interface.xml: It's /etc/libieee1284.conf, not /etc/libieee1284rc. 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 * configure.in, Makefile.am: Version 0.2.5 (stable). 2002-11-05 Matthew Duggan * Makefile.am: Ship src/io.h (double oops). 2002-10-12 Tim Waugh * configure.in, Makefile.am: Version 0.2.4 (stable). 2002-10-12 Tim Waugh * Makefile.am: 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 macros. 2002-10-02 Tim Waugh * Makefile.am: 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/Makefile.in: Move to.. * Makefile.am, configure.in: ..here. 2002-09-26 Julien BLACHE * configure.in: Test for sys/io.h. * src/access_io.c, src/detect.c: Check for sys/io.h 2002-09-19 Tim Waugh * configure.in, Makefile.am: Version 0.2.3 (stable). 2002-09-17 Tim Waugh * Makefile.am: Ship src/par_nt.h, README.* (oops). 2002-09-15 Matthew Duggan * configure.in: 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 changes. * 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 * configure.in, Makefile.am: 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. * Makefile.am: Update. 2002-08-27 Tim Waugh * src/default.c: More debugging output. * src/access_ppdev.c: More debugging output. Handle O_NONBLOCK properly. 2002-08-24 Tim Waugh * configure.in, Makefile.am: Version 0.2.1 (stable). 2002-08-24 Tim Waugh * Makefile.am: 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 F1284_FASTEPP. * 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 * configure.in, Makefile.am: Version 0.2.0 (stable). 2002-07-31 Tim Waugh * configure.in, Makefile.am: 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... * configure.in: 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 * Makefile.am: Fix up man page list. * Makefile.am: 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) ports. * solaris_io: New directory. * solaris_io/INSTALL, solaris_io/LICENSE, solaris_io/Makefile.in, 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. * configure.in: Solaris/Cygwin additions. * Makefile.am: Solaris/Cygwin additions. * include/ieee1284.h: Include 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. * Makefile.am: Track name change. Use xmlto instead of docbook2man. Distribute the generated man pages in the tarball. * libieee1284.spec.in: No need to create man page symlinks any more. Use xmlto to create PDF file. * Makefile.am: No need to run docbook2man twice now that docbook-utils can resolve references on its own now. 2002-04-24 Tim Waugh * configure.in, Makefile.am: Version 0.1.6 (devel). 2002-04-24 Tim Waugh * Makefile.am: New directory structure. Build man pages. * configure.in: 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/: ..here. * ieee1284.h: Moved.. * include/: ..here. * test.c: Moved.. * tests/: ..here. * libieee1284.spec.in: Don't build man pages here, since we do that via automake now. Run ldconfig in scriptlets. 2002-04-09 Tim Waugh * configure.in: Version 0.1.5 (devel). 2002-04-09 Tim Waugh * doc/interface.sgml, Makefile.am: 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 structure. (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 * configure.in, Makefile.am: 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 * configure.in, Makefile.am: 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 * configure.in: Don't check for a C++ compiler, since we don't need one. 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 ioctl. * 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 opened. * 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 * configure.in: 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. * Makefile.am: 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 ieee1284_find_ports. * 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 read. * ieee1284.h: New error code E1284_INVALIDPORT. * debug.c, debug.h: New function ieee1284_display_status for debugging. * 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 needed. * 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 * configure.in: 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. * Makefile.am (libieee1284_la_SOURCES): Add debug.h and debug.c. 2001-11-15 Tim Waugh * configure.in: 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 it. * 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 returns. (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 support. * 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. * configure.in: 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 ieee1284_do_nack_handshake. * 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. * Makefile.am: 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.