Blame doc/libieee1284.3

Packit d36e9b
.\"     Title: libieee1284
Packit d36e9b
.\"    Author: Tim Waugh <twaugh@redhat.com>
Packit d36e9b
.\" Generator: DocBook XSL Stylesheets v1.72.0 <http://docbook.sf.net/>
Packit d36e9b
.\"      Date: 09/18/2007
Packit d36e9b
.\"    Manual: Introduction
Packit d36e9b
.\"    Source: 
Packit d36e9b
.\"
Packit d36e9b
.TH "LIBIEEE1284" "3" "09/18/2007" "" "Introduction"
Packit d36e9b
.\" disable hyphenation
Packit d36e9b
.nh
Packit d36e9b
.\" disable justification (adjust text to left margin only)
Packit d36e9b
.ad l
Packit d36e9b
.SH "NAME"
Packit d36e9b
libieee1284 \- IEEE1284 communications library
Packit d36e9b
.SH "SYNOPSIS"
Packit d36e9b
.sp
Packit d36e9b
.RS 4
Packit d36e9b
.nf
Packit d36e9b
    #include <ieee1284.h>
Packit d36e9b
    cc files... \-lieee1284
Packit d36e9b
.fi
Packit d36e9b
.RE
Packit d36e9b
.SH "OVERVIEW"
Packit d36e9b
.PP
Packit d36e9b
The libieee1284 library is a library for accessing parallel port devices.
Packit d36e9b
.PP
Packit d36e9b
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.
Packit d36e9b
.PP
Packit d36e9b
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.
Packit d36e9b
.PP
Packit d36e9b
The normal sequence of events will be that the application
Packit d36e9b
.RS 4
Packit d36e9b
\h'-04' 1.\h'+02'calls
Packit d36e9b
\fBieee1284_find_ports\fR
Packit d36e9b
to get a list of available ports
Packit d36e9b
.RE
Packit d36e9b
.RS 4
Packit d36e9b
\h'-04' 2.\h'+02'then
Packit d36e9b
\fBieee1284_get_deviceid\fR
Packit d36e9b
to look for a device on each port that it is interested in
Packit d36e9b
.RE
Packit d36e9b
.RS 4
Packit d36e9b
\h'-04' 3.\h'+02'and then
Packit d36e9b
\fBieee1284_open\fR
Packit d36e9b
to open each port it finds a device it can control on.
Packit d36e9b
.RE
Packit d36e9b
.RS 4
Packit d36e9b
\h'-04' 4.\h'+02'The list of ports returned from
Packit d36e9b
\fBieee1284_find_ports\fR
Packit d36e9b
can now be disposed of using
Packit d36e9b
\fBieee1284_free_ports\fR.
Packit d36e9b
.RE
Packit d36e9b
.RS 4
Packit d36e9b
\h'-04' 5.\h'+02'Then when it wants to control the device, it will call
Packit d36e9b
\fBieee1284_claim\fR
Packit d36e9b
to prevent other drivers from using the port
Packit d36e9b
.RE
Packit d36e9b
.RS 4
Packit d36e9b
\h'-04' 6.\h'+02'then perhaps do some data transfers
Packit d36e9b
.RE
Packit d36e9b
.RS 4
Packit d36e9b
\h'-04' 7.\h'+02'and then
Packit d36e9b
\fBieee1284_release\fR
Packit d36e9b
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.
Packit d36e9b
.RE
Packit d36e9b
.RS 4
Packit d36e9b
\h'-04' 8.\h'+02'Finally when the application is finished with the device it will call
Packit d36e9b
\fBieee1284_close\fR.
Packit d36e9b
.RE
Packit d36e9b
.PP
Packit d36e9b
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.
Packit d36e9b
.SH "CONFIGURATION"
Packit d36e9b
.PP
Packit d36e9b
When
Packit d36e9b
\fBieee1284_find_ports\fR
Packit d36e9b
is first called, the library will look for a configuration file,
Packit d36e9b
\fI/etc/ieee1284.conf\fR.
Packit d36e9b
.PP
Packit d36e9b
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 '\e' 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.
Packit d36e9b
.PP
Packit d36e9b
The only configuration instruction that is currently recognised is
Packit d36e9b
\(lqdisallow method ppdev\(rq, for preventing the use of the Linux ppdev driver.
Packit d36e9b
.SH "ENVIRONMENT"
Packit d36e9b
.PP
Packit d36e9b
You can enable debugging output from the library by setting the environment variable
Packit d36e9b
\fBLIBIEEE1284_DEBUG\fR
Packit d36e9b
to any value.
Packit d36e9b
.SH "FILES"
Packit d36e9b
.PP
Packit d36e9b
\fI/etc/ieee1284.conf\fR
Packit d36e9b
.RS 4
Packit d36e9b
Configuration file.
Packit d36e9b
.RE
Packit d36e9b
.SH "SEE ALSO"
Packit d36e9b
.PP
Packit d36e9b
parport(3),
Packit d36e9b
parport_list(3),
Packit d36e9b
ieee1284_find_ports(3),
Packit d36e9b
ieee1284_free_ports(3),
Packit d36e9b
ieee1284_get_deviceid(3),
Packit d36e9b
ieee1284_open(3),
Packit d36e9b
ieee1284_close(3),
Packit d36e9b
ieee1284_claim(3),
Packit d36e9b
ieee1284_release(3),
Packit d36e9b
ieee1284_data(3),
Packit d36e9b
ieee1284_status(3),
Packit d36e9b
ieee1284_control(3),
Packit d36e9b
ieee1284_negotiation(3),
Packit d36e9b
ieee1284_ecp_fwd_to_rev(3),
Packit d36e9b
ieee1284_transfer(3),
Packit d36e9b
ieee1284_get_irq_fd(3),
Packit d36e9b
ieee1284_set_timeout(3)
Packit d36e9b
.SH "AUTHOR"
Packit d36e9b
.PP
Packit d36e9b
\fBTim Waugh\fR <\&twaugh@redhat.com\&>
Packit d36e9b
.sp -1n
Packit d36e9b
.IP "" 4
Packit d36e9b
Author.
Packit d36e9b
.SH "COPYRIGHT"
Packit d36e9b
Copyright \(co 2001\-2003 Tim Waugh
Packit d36e9b
.br
Packit d36e9b