Unix/Linux Go Back    


CentOS 7.0 - man page for ieee1284_do_nack_handshake (centos section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


IEEE1284_CONTROL(3)			    Functions			      IEEE1284_CONTROL(3)

NAME
       ieee1284_read_control, ieee1284_write_control, ieee1284_frob_control,
       ieee1284_do_nack_handshake - manipulate control lines

SYNOPSIS
       #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),
	   };

       These functions all act on the parallel port associated with port, which must be claimed.

       The current values on the control lines are available by calling ieee1284_read_control,
       and may be set by calling ieee1284_write_control.

       To adjust the values on a set of control lines, use ieee1284_frob_control. The effect of
       this can be expressed by: ctr = ((ctr & ~mask) ^ val); that is, the bits in mask are
       unset, and then those in val are inverted.

       The special function ieee1284_do_nack_handshake is for responding very quickly in a
       protocol where the peripheral sets nAck and the host must respond by setting a control
       line. Its operation, which relies on the host machine knowing which interrupt nAck
       generates, is as follows:

	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_NOTAVAIL
	   The 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 (C) 2001-2003 Tim Waugh

[FIXME: source] 			    06/17/2014			      IEEE1284_CONTROL(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 04:45 AM.