Files
Arquivotheca.AIX-4.1.3/bos/kernel/sys/lpio.h
seta75D d6fe8fe829 Init
2021-10-11 22:19:34 -03:00

178 lines
8.0 KiB
C

/* @(#)13 1.24 src/bos/kernel/sys/lpio.h, sysxprnt, bos411, 9428A410j 5/6/94 09:46:38 */
/*
* COMPONENT_NAME: (sysxprnt) Include file for use with 'lp' special file
*
* FUNCTIONS: none
*
* ORIGINS: 27, 83
*
*/
/*
* IBM CONFIDENTIAL -- (IBM Confidential Restricted when
* combined with the aggregated modules for this product)
* SOURCE MATERIALS
* (C) COPYRIGHT International Business Machines Corp. 1989, 1994
* All Rights Reserved
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*
* LEVEL 1, 5 Years Bull Confidential Information
*/
#ifndef _H_LPIO
#define _H_LPIO
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* include file for use with the 'lp' special file */
/* For more detailed information, see the AIX Technical Reference */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include <sys/termio.h>
#include <sys/ioctl.h>
#include <sys/stropts.h>
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* extended open parms used for the extend operand in the open. */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#define LPDIAGMOD 1 /* Request diagnostic mode on open */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* ioctl constants */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#define LPR ('l'<<8)
#define LPRGET (LPR|01) /* Get margin parameters */
#define LPRSET (LPR|02) /* Set margin parameters */
#define LPRGETA (LPR|17) /* Get RS232 parameters */
#define LPRSETA (LPR|18) /* Set RS232 parameters */
#define LPRGTOV (LPR|19) /* Get the time-out value, seconds */
#define LPRSTOV (LPR|20) /* Set the time-out value, seconds */
#define LPQUERY (LPR|23) /* Query Command */
#define LPDIAG (LPR|26) /* Parallel printer diagnostics */
#define LPRMODG (LPR|27) /* Get printer modes */
#define LPRMODS (LPR|28) /* Set printer modes */
/* controlling a write request */
#define LPWRITE_REQ (LPR|30) /* in the Streams Based sptr module */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Declarations of structures used with lp ioctls */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* margin parameters structure used with LPRGET and LPRSET */
struct lprio {
int ind; /* indent size */
int col; /* columns per line */
int line; /* lines per page */
};
/* printer mode structure used with LPRMODG and LPRMODS */
/* Note: The default value for all modes is off. */
struct lprmod {
int modes; /* line printer modes */
#define PLOT 0x0001 /* if on, bypass all formatting/interpretation */
/* modes. NOFF, NONL, NOCL, NOTAB, NOBS, NOCR */
/* CAPS and WRAP are ignored. */
#define NOFF 0x0002 /* if on, simulate form feed function with */
/* line feeds, based on line value above. */
#define NONL 0x0004 /* if on, substitute carriage returns for any */
/* line feeds */
#define NOCL 0x0008 /* if on, do not insert a carriage return after */
/* each line feed */
#define NOTB 0x0010 /* if on, do not expand tabs. if off, simulate */
/* 8 position tabs with spaces. */
#define NOBS 0x0020 /* if on, ignore backspace characters */
#define NOCR 0x0040 /* if on, substitute line feeds for any */
/* carriage returns */
#define CAPS 0x0080 /* if on, map lower-case alphabetics to upper */
/* case */
#define WRAP 0x0100 /* if on, print characters beyond the page */
/* width on the next line. If off, truncate */
/* characters extending beyond page width. */
#define FONTINIT 0x0200 /* if on, fonts have been initialized */
#define RPTERR 0x0400 /* if on, errors are reported back to the */
/* application. If off, the device driver will */
/* not return until the error is cleared or */
/* a cancel signal is received. */
#define IGNOREPE 0x0800 /* Ignore the paper end line */
/* Temporary Definitions and Declarations */
#define DOALLWRITES 01000000
};
/* timeout structure used with LPRGTOV and LPRSTOV */
struct lptimer {
int v_timout; /* time out value in seconds */
};
struct lpquery {
int status; /* device status */
#define LPST_POUT 0x01 /* paper out condition */
#define LPST_TOUT 0x02 /* printer timeout - intervention required */
#define LPST_ERROR 0x04 /* unspec. error, intervention required */
#define LPST_BUSY 0x08 /* printer busy, may not be timeout yet */
#define LPST_NOSLCT 0x020 /* printer is not selected */
#define LPST_SOFT 0x040 /* software error */
#define LPST_OFF 0x080 /* power off */
int tadapt; /* adapter type */
#define LPAD_R1 1 /* releas one nio device */
#define LPAD_SA 2 /* relase two NIO device with DMA */
#define LPAD_NIO 3 /* new adapter high speed DMA */
#define LPAD_IOD 4 /* release IOD device */
int reccnt; /* number of bytes in rec buffer */
char rsvd[12]; /* reserved, set to binary value of 0 */
};
/* diagnostics structure used with LPDIAG, parallel printers only */
struct lpdiag {
int cmd; /* command to perform */
#define LP_R_STAT 0x01 /* put contents of status reg in value field */
#define LP_R_CNTL 0x02 /* put contents of contrl reg in value field */
#define LP_W_CNTL 0x03 /* put contents of value field in contrl reg */
#define LP_R_DATA 0x04 /* put contents of data reg in value field */
#define LP_W_DATA 0x05 /* put contents of value field in data reg */
#define LP_WATCHINT 0x06 /* Watch for an interrupt to occur */
#define LP_DIDINTOCC 0x07 /* Did an interrupt occur */
int value; /* data read or to be written, 0 - 255 */
#define LP_INTDIDOCC 0x01 /* Interrupt did occur */
#define LP_INTNOTOCC 0x02 /* Interrupt did not occur */
char rsvd[12]; /* reserved, set to binary value of 0 */
};
/* RS232 parameter change structure for LPRGETA and LPRSETA */
struct lpr232 {
unsigned c_cflag;
};
typedef volatile unsigned char REGTYPE; /* register data type */
/* Declarations for the "Write Interface" of the Streams Based sptr module : */
/* This macro declares an "strioctl" structure */
#define SP_WRITE_DECL struct strioctl lpwrite_str ;
/* This macro initialises the declared "strioctl" structure */
#define SP_WRITE_INIT \
lpwrite_str.ic_cmd = LPWRITE_REQ; \
lpwrite_str.ic_timout = -1; \
lpwrite_str.ic_len = 0; \
lpwrite_str.ic_dp = NULL;
/* Write Interface Macro */
#define SP_WRITE(fd, buf, len) \
( !isastream(fd) ? write(fd, buf, len) : \
( write(fd, buf, len) < 0 ? -1 : \
( ioctl(fd, I_STR, &lpwrite_str) == 0 ? len : -1 ) \
) \
)
/* Declarations for the "Write Interface" of the Streams Based sptr module . */
#endif /* _H_LPIO */