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_GET_DEVICEI(3) 					     Functions						   IEEE1284_GET_DEVICEI(3)

NAME
ieee1284_get_deviceid - retrieve an IEEE 1284 Device ID SYNOPSIS
#include <ieee1284.h> ssize_t ieee1284_get_deviceid(struct parport *port, int daisy, int flags, char *buffer, size_t len); DESCRIPTION
This function is for retrieving the IEEE 1284 Device ID of the specified device. The device is specified by the port to which it is attached, and optionally an address (daisy) on the daisy chain of devices on that port. daisy should be -1 to indicate that the device is not participating in a IEEE 1284.3 daisy chain, meaning it is the last (or only) device on the port, or should be a number from 0 to 3 inclusive to indicate that it has the specified daisy chain address (0 is next to the port). The flags parameter should be a bitwise union of any flags that the program wants to use. Available flags are: F1284_FRESH Guarantee a fresh Device ID. A cached or OS-provided ID will not be used. The provided buffer must be at least len bytes long, and will contain the Device ID including the initial two-byte length field and a terminating zero byte on successful return, or as much of the above as will fit into the buffer. RETURN VALUE
A return value less than zero indicates an error as below. Otherwise, the return value is the number of bytes of buffer that have been filled. A return value equal to the length of the buffer indicates that the Device ID may be longer than the buffer will allow. E1284_NOID The device did not provide an IEEE 1284 Device ID when interrogated (perhaps by the operating system if F1284_FRESH was not specified). E1284_NOTIMPL One or more of the supplied flags is not supported in this implementation, or if no flags were supplied then this function is not implemented for this type of port or this type of system. This can also be returned if a daisy chain address is specified but daisy chain Device IDs are not yet supported. E1284_NOTAVAIL F1284_FRESH was specified and the library is unable to access the port to interrogate the device. E1284_NOMEM There is not enough memory. E1284_INIT There was a problem initializing the port. E1284_INVALIDPORT The port parameter is invalid. NOTES
Unless the F1284_FRESH flag is given, the library will try to find the device's ID as unobtrusively as possible. First it will ask the operating system if it knows it, and then it will try actually asking the device for it. Because of this, the Device ID may be partially computed (the length field, for example) or even partially missing if the operating system has only remembered some parts of the ID. To guarantee that you are getting the bytes that the device sent, use F1284_FRESH. Be aware that the operating system may allow any user to inspect the Device IDs that it provides, whereas device access is normally more restricted. The initial two-byte length field is a big-endian 16 bit unsigned integer provided by the device and may not be accurate. In particular, it is meant to indicate the length of the entire string including the length field itself; however, some manufacturers exclude the length field or just set the length field to some arbitrary number greater than the ID length. AUTHOR
Tim Waugh <twaugh@redhat.com> Author. COPYRIGHT
Copyright (C) 2001-2003 Tim Waugh 09/18/2007 IEEE1284_GET_DEVICEI(3)
Man Page