table of contents
IEEE1284_CONTROL(3) | Functions | IEEE1284_CONTROL(3) |
NAME¶
ieee1284_read_control, ieee1284_write_control, ieee1284_frob_control, ieee1284_do_nack_handshake - manipulate control linesSYNOPSIS¶
#include <ieee1284.h>
int
ieee1284_read_control(struct parport *port);
void
ieee1284_write_control(struct parport *port,
unsigned char ct);
void
ieee1284_frob_control(struct parport *port,
unsigned char mask,
unsigned char val);
int
ieee1284_do_nack_handshake(struct parport *port,
unsigned char ct_before,
unsigned char ct_after,
struct timeval *timeout);
DESCRIPTION¶
There are four control lines, three of which are usually inverted on PC-style ports. Where they differ, libieee1284 operates on the IEEE 1284 values, not the PC-style inverted values. The control lines are represented by the following enumeration:enum ieee1284_control_bits { C1284_NSTROBE = 0x01, C1284_NAUTOFD = 0x02, C1284_NINIT = 0x04, C1284_NSELECTIN = 0x08, /* To convert those values into PC-style register values, use this: */ C1284_INVERTED = (C1284_NSTROBE| C1284_NAUTOFD| C1284_NSELECTIN), };
1.Set the control lines as indicated in
ct_before.
2.Wait for nAck interrupt. If timeout elapses,
return E1284_TIMEDOUT.
3.Set the control lines as indicated in
ct_after.
On Linux using the ppdev driver, this is performed by the device driver in the
kernel, and so is faster than normally possible in a user-space library.
RETURN VALUE¶
The return value of ieee1284_read_control, if non-negative, is a number representing the value on the control lines. Possible error codes for ieee1284_read_control: E1284_NOTAVAILThe control lines of this port are not accessible by the
application.
E1284_INVALIDPORT
The port parameter is invalid (for instance,
perhaps it is not claimed).
Possible error codes for ieee1284_do_nack_handshake:
E1284_OK
The handshake was successful.
E1284_NOTAVAIL
This operation is not available on this port type or
system. This could be because port interrupts are not available, or because
the underlying device driver does not support the operation.
E1284_INVALIDPORT
The port parameter is invalid (for instance,
perhaps it is not claimed).
AUTHOR¶
Tim Waugh <twaugh@redhat.com>- Author.
COPYRIGHT¶
Copyright © 2001-2003 Tim Waugh09/18/2007 |