'\" t .\" Title: libieee1284 .\" Author: Tim Waugh .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 11/17/2024 .\" Manual: Introduction .\" Source: [FIXME: source] .\" Language: English .\" .TH "LIBIEEE1284" "3" "11/17/2024" "[FIXME: source]" "Introduction" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" libieee1284 \- IEEE1284 communications library .SH "SYNOPSIS" .sp .nf #include cc files\&.\&.\&. \-lieee1284 .fi .SH "OVERVIEW" .PP The libieee1284 library is a library for accessing parallel port devices\&. .PP 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\&. .PP 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\&. .PP The normal sequence of events will be that the application .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} calls \fBieee1284_find_ports\fR to get a list of available ports .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} then \fBieee1284_get_deviceid\fR to look for a device on each port that it is interested in .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} and then \fBieee1284_open\fR to open each port it finds a device it can control on\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} The list of ports returned from \fBieee1284_find_ports\fR can now be disposed of using \fBieee1284_free_ports\fR\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} Then when it wants to control the device, it will call \fBieee1284_claim\fR to prevent other drivers from using the port .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} then perhaps do some data transfers .RE .sp .RS 4 .ie n \{\ \h'-04' 7.\h'+01'\c .\} .el \{\ .sp -1 .IP " 7." 4.2 .\} and then \fBieee1284_release\fR 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\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 8.\h'+01'\c .\} .el \{\ .sp -1 .IP " 8." 4.2 .\} Finally when the application is finished with the device it will call \fBieee1284_close\fR\&. .RE .PP 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\&. .SH "CONFIGURATION" .PP When \fBieee1284_find_ports\fR is first called, the library will look for a configuration file, /etc/ieee1284\&.conf\&. .PP Comments begin with a \*(Aq#\*(Aq character and extend to the end of the line\&. Everything else is freely\-formatted tokens\&. A non\-quoted (or double\-quoted) backslash character \*(Aq\e\*(Aq 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\&. .PP The only configuration instruction that is currently recognised is \(lqdisallow method ppdev\(rq, for preventing the use of the Linux ppdev driver\&. .SH "ENVIRONMENT" .PP You can enable debugging output from the library by setting the environment variable \fBLIBIEEE1284_DEBUG\fR to any value\&. .SH "FILES" .PP /etc/ieee1284\&.conf .RS 4 Configuration file\&. .RE .SH "SEE ALSO" .PP 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) .SH "AUTHOR" .PP \fBTim Waugh\fR <\&twaugh@redhat.com\&> .RS 4 Author. .RE .SH "COPYRIGHT" .br Copyright \(co 2001-2003 Tim Waugh .br