Blame doc/ieee1284_read_status.3

Packit d36e9b
.\"     Title: ieee1284_status
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: Functions
Packit d36e9b
.\"    Source: 
Packit d36e9b
.\"
Packit d36e9b
.TH "IEEE1284_STATUS" "3" "09/18/2007" "" "Functions"
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
ieee1284_read_status, ieee1284_wait_status \- analyse status lines
Packit d36e9b
.SH "SYNOPSIS"
Packit d36e9b
.sp
Packit d36e9b
.ft B
Packit d36e9b
.nf
Packit d36e9b
#include <ieee1284.h>
Packit d36e9b
.fi
Packit d36e9b
.ft
Packit d36e9b
.HP 25
Packit d36e9b
.BI "int ieee1284_read_status(struct\ parport\ *" "port" ");"
Packit d36e9b
.HP 25
Packit d36e9b
.BI "int ieee1284_wait_status(struct\ parport\ *" "port" ", unsigned\ char\ " "mask" ", unsigned\ char\ " "val" ", struct\ timeval\ *" "timeout" ");"
Packit d36e9b
.SH "DESCRIPTION"
Packit d36e9b
.PP
Packit d36e9b
There are five status lines, one of which is usually inverted on PC\-style ports. Where they differ, libieee1284 operates on the IEEE 1284 values, not the PC\-style inverted values. The status lines are represented by the following enumeration:
Packit d36e9b
.sp
Packit d36e9b
.RS 4
Packit d36e9b
.nf
Packit d36e9b
enum ieee1284_status_bits
Packit d36e9b
{
Packit d36e9b
  S1284_NFAULT = 0x08,
Packit d36e9b
  S1284_SELECT = 0x10,
Packit d36e9b
  S1284_PERROR = 0x20,
Packit d36e9b
  S1284_NACK   = 0x40,
Packit d36e9b
  S1284_BUSY   = 0x80,
Packit d36e9b
  /* To convert those values into PC\-style register values, use this: */
Packit d36e9b
  S1284_INVERTED = S1284_BUSY,
Packit d36e9b
};
Packit d36e9b
.fi
Packit d36e9b
.RE
Packit d36e9b
.PP
Packit d36e9b
These functions all act on the parallel port associated with
Packit d36e9b
\fIport\fR, which must be claimed.
Packit d36e9b
.PP
Packit d36e9b
The purpose of
Packit d36e9b
\fBieee1284_wait_status\fR
Packit d36e9b
is to wait until particular status lines have specified values. Its
Packit d36e9b
\fItimeout\fR
Packit d36e9b
parameter may be modified on return.
Packit d36e9b
.SH "RETURN VALUE"
Packit d36e9b
.PP
Packit d36e9b
For
Packit d36e9b
\fBieee1284_read_status\fR, the return value is a non\-negative integer with bits set as appropriate representing the status lines. A negative result indicates an error.
Packit d36e9b
.PP
Packit d36e9b
For
Packit d36e9b
\fBieee1284_wait_status\fR, the return value is
Packit d36e9b
\fBE1284_OK\fR
Packit d36e9b
if the status lines now reflect the desired values (i.e. status &
Packit d36e9b
\fImask\fR
Packit d36e9b
is
Packit d36e9b
\fIval\fR), or a negative result indicating an error.
Packit d36e9b
.PP
Packit d36e9b
Possible error codes:
Packit d36e9b
.PP
Packit d36e9b
\fBE1284_NOTIMPL\fR
Packit d36e9b
.RS 4
Packit d36e9b
The
Packit d36e9b
\fIport\fR
Packit d36e9b
lacks the required capability. This could be due to a limitation of this version of libieee1284, or a hardware limitation.
Packit d36e9b
.RE
Packit d36e9b
.PP
Packit d36e9b
\fBE1284_NOTAVAIL\fR
Packit d36e9b
.RS 4
Packit d36e9b
Access to the status lines is not available on this port type.
Packit d36e9b
.RE
Packit d36e9b
.PP
Packit d36e9b
\fBE1284_TIMEDOUT\fR
Packit d36e9b
.RS 4
Packit d36e9b
The
Packit d36e9b
\fItimeout\fR
Packit d36e9b
has elapsed.
Packit d36e9b
.RE
Packit d36e9b
.PP
Packit d36e9b
\fBE1284_INVALIDPORT\fR
Packit d36e9b
.RS 4
Packit d36e9b
The
Packit d36e9b
\fIport\fR
Packit d36e9b
parameter is invalid (for instance, perhaps the
Packit d36e9b
\fIport\fR
Packit d36e9b
is not claimed).
Packit d36e9b
.RE
Packit d36e9b
.SH "NOTES"
Packit d36e9b
.PP
Packit d36e9b
The nAck pin is often able to trigger interrupts on the host machine. With operating system help these interrupts may be visible to the application via the file descriptor returned by
Packit d36e9b
\fBieee1284_get_irq_fd\fR.
Packit d36e9b
.PP
Packit d36e9b
Under Linux, the conditions are that the parallel port driver knows which interrupt line to use and is using it, and that the relevant
Packit d36e9b
\fI/dev/parport\fR
Packit d36e9b
device node is accessible and backed by a device driver.
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