Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

libieee1284(3) [debian man page]

LIBIEEE1284(3)							   Introduction 						    LIBIEEE1284(3)

NAME
libieee1284 - IEEE1284 communications library SYNOPSIS
#include <ieee1284.h> cc files... -lieee1284 OVERVIEW
The libieee1284 library is a library for accessing parallel port devices. The model presented to the user is fairly abstract: a list of parallel ports with arbitrary names, with functions to access them in various ways ranging from bit operations to block data transfer in one of the IEEE 1284 sanctioned protocols. Although the library resides in user space the speed penalty may not be as bad as you initially think, since the operating system may well provide assistance with block data transfer operations; in fact, the operating system may even use hardware assistance to get the job done. So, using libieee1284, ECP transfers using DMA are possible. The normal sequence of events will be that the application 1. calls ieee1284_find_ports to get a list of available ports 2. then ieee1284_get_deviceid to look for a device on each port that it is interested in 3. and then ieee1284_open to open each port it finds a device it can control on. 4. The list of ports returned from ieee1284_find_ports can now be disposed of using ieee1284_free_ports. 5. Then when it wants to control the device, it will call ieee1284_claim to prevent other drivers from using the port 6. then perhaps do some data transfers 7. and then ieee1284_release when it is finished that that particular command. This claim-control-release sequence will be repeated each time it wants to tell the device to do something. 8. Finally when the application is finished with the device it will call ieee1284_close. Usually a port needs to be claimed before it can be used. This is to prevent multiple drivers from trampling on each other if they both want to use the same port. The exception to this rule is the collection of IEEE 1284 Device IDs, which has an implicit open-claim-release-close sequence. The reason for this is that it may be possible to collect a Device ID from the operating system, without bothering the device with it. CONFIGURATION
When ieee1284_find_ports is first called, the library will look for a configuration file, /etc/ieee1284.conf. Comments begin with a '#' character and extend to the end of the line. Everything else is freely-formatted tokens. A non-quoted (or double-quoted) backslash character '' preserves the literal value of the next character, and single and double quotes may be used for preserving white-space. Braces and equals signs are recognised as tokens, unless quoted or escaped. The only configuration instruction that is currently recognised is "disallow method ppdev", for preventing the use of the Linux ppdev driver. ENVIRONMENT
You can enable debugging output from the library by setting the environment variable LIBIEEE1284_DEBUG to any value. FILES
/etc/ieee1284.conf Configuration file. SEE ALSO
parport(3), parport_list(3), ieee1284_find_ports(3), ieee1284_free_ports(3), ieee1284_get_deviceid(3), ieee1284_open(3), ieee1284_close(3), ieee1284_claim(3), ieee1284_release(3), ieee1284_data(3), ieee1284_status(3), ieee1284_control(3), ieee1284_negotiation(3), ieee1284_ecp_fwd_to_rev(3), ieee1284_transfer(3), ieee1284_get_irq_fd(3), ieee1284_set_timeout(3) AUTHOR
Tim Waugh <twaugh@redhat.com> Author. COPYRIGHT
Copyright (C) 2001-2003 Tim Waugh 09/18/2007 LIBIEEE1284(3)

Check Out this Related Man Page

IEEE1284_OPEN(3)						     Functions							  IEEE1284_OPEN(3)

NAME
ieee1284_open - open a port SYNOPSIS
#include <ieee1284.h> int ieee1284_open(struct parport *port, int flags, int *capabilities); DESCRIPTION
In order to begin using a port it must be opened. Any initial set-up of the port is done at this stage. When an open port is no longer needed it should be closed with ieee1284_close(3). The possible flags are: F1284_EXCL This device cannot share the port with any other device. If this is the case it must be declared at this stage, so that other drivers trying to access the port know not to bother; otherwise they will wait until this driver releases the port, i.e. never. The iopl/dev-port access methods don't support this yet, but the ppdev ones do. If capabilities is not NULL it must point to storage for an int, which will be treated as a set of flags, one per bit, which the library sets or clears as appropriate. If a capability is present it will be used when asked for. They are: CAP1284_RAW Pin-level access is available. If this capability is present then the following functions are effective: ieee1284_write_data, ieee1284_read_status, ieee1284_wait_status, ieee1284_write_control, ieee1284_read_control, ieee1284_frob_control. CAP1284_NIBBLE There is an implementation of nibble mode for this port. CAP1284_BYTE There is an implementation of byte mode for this port. CAP1284_COMPAT There is an implementation of compatibility mode for this port. CAP1284_ECP There is a hardware implementation of ECP mode for this port. CAP1284_ECPRLE There is an RLE-aware implementation of ECP mode for this port (the F1284_RLE flag is recognised by the ECP transfer functions). CAP1284_ECPSWE There is a software implementation of ECP mode for this port. CAP1284_BECP There is an implementation of bounded ECP mode for this port. CAP1284_EPP There is a hardware implementation of EPP mode for this port. CAP1284_EPPSWE There is a software implementation of EPP mode for this port. CAP1284_IRQ An interrupt line is configured for this port and interrupt notifications can be received using ieee1284_get_irq_fd(3). CAP1284_DMA A DMA channel is configured for this port. RETURN VALUE
E1284_OK The port is now opened. E1284_INIT There was a problem during port initialization. This could be because another driver has opened the port exclusively, or some other reason. E1284_NOMEM There is not enough memory. E1284_NOTAVAIL One or more of the supplied flags is not supported by this type of port. E1284_INVALIDPORT The port parameter is invalid (for instance, the port may already be open). E1284_SYS There was a problem at the operating system level. The global variable errno has been set appropriately. SEE ALSO
ieee1284_close(3) AUTHOR
Tim Waugh <twaugh@redhat.com> Author. COPYRIGHT
Copyright (C) 2001-2003 Tim Waugh 09/18/2007 IEEE1284_OPEN(3)
Man Page