Go to file
Rewnosor 818fbbf455 Drop non-supported python2 module. 2024-08-13 11:04:10 +08:00
debian Drop non-supported python2 module. 2024-08-13 11:04:10 +08:00
doc Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
include Support for kFreeBSD-amd64 2022-06-27 14:42:24 +08:00
solaris_io Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
src Release port on close 2022-06-27 14:42:24 +08:00
tests Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
AUTHORS Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
COPYING Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
ChangeLog Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
INSTALL Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
Makefile.am Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
Makefile.in Build system update 2022-06-27 14:42:25 +08:00
Makefile.vc6 Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
NEWS Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
README Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
README.FreeBSD Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
README.OpenBSD Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
README.Solaris Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
README.VC6 Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
README.win95 Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
README.winNT Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
TODO Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
aclocal.m4 Build system update 2022-06-27 14:42:25 +08:00
compile Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
config.guess Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
config.sub Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
configure Build system update 2022-06-27 14:42:25 +08:00
configure.in Add AM_MAINTAINER_MODE to configure.in 2022-06-27 14:42:24 +08:00
depcomp Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
ieee1284.def Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
install-sh Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
libieee1284.spec Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
libieee1284.spec.in Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
libieee1284.sym Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00
ltmain.sh Build system update 2022-06-27 14:42:25 +08:00
missing Import Upstream version 0.2.11 2022-06-27 14:42:23 +08:00

README

libieee1284 README
------------------

This library is intended to be used by applications that need to
communicate with (or at least identify) devices that are attached via
a parallel port.

It currently works on Linux, OpenBSD (i386 only), FreeBSD/i386,
Solaris/x86, and Cygwin.

For Linux, there are some wrinkles in communicating with devices on 
parallel ports:

- Applications that want to harvest IEEE 1284 Device ID information
  can look in /proc for it, but it is in a different location in 2.4
  kernels than it was in 2.2 kernels, and is completely absent in 2.0
  kernels.

- Soon it will be in a different location again in 2.4.

- All kernels allow ioperm/inb/outb-style I/O, but it requires root
  privilege.  In addition, string I/O (such as outsb) is not available
  on some architectures.

- 2.4 kernels have /dev/parport[0,1,2,...] device nodes which
  applications can use; applications don't need to be run as root, but
  they obviously need appropriate permissions set on the device node
  they want to use.

- When capabilities catch on, /dev/port will be another alternative to
  ioperm that doesn't require root privilege, although it does require
  RAWIO capabilities.

The aim of this library is to take all the worry about the above
wrinkles from the application.  It will figure out which method is
appropriate for the currently running kernel.  For instance, if the
application wants to know the device ID of a device on a particular
port, it will ask the library for the the device ID.  The library will
then figure out if it's available via /proc (in any of the possible
locations), and if not then it will try asking the device itself.  If
/dev/parport0 isn't available for use, it will try ioperm; if that
fails, it will try /dev/port.  And the application doesn't have to
care.

The interface is set out in the header file, ieee1284.h, and in the
SGML document doc/interface.xml (which can be viewed in HTML format
at <http://cyberelk.net/tim/libieee1284/interface/>).  If this doesn't
do something that you think it should, or it does something in a way
that doesn't make sense to you, please let me know so that I can fix
it.  I need feedback on the interface to know whether it is working.

--
Tim Waugh <tim@cyberelk.net>