diff options
author | stevel@tonic-gate <none@none> | 2005-06-14 00:00:00 -0700 |
---|---|---|
committer | stevel@tonic-gate <none@none> | 2005-06-14 00:00:00 -0700 |
commit | 7c478bd95313f5f23a4c958a745db2134aa03244 (patch) | |
tree | c871e58545497667cbb4b0a4f2daf204743e1fe7 /usr/src/uts/common/sys/prnio.h | |
download | illumos-joyent-7c478bd95313f5f23a4c958a745db2134aa03244.tar.gz |
OpenSolaris Launch
Diffstat (limited to 'usr/src/uts/common/sys/prnio.h')
-rw-r--r-- | usr/src/uts/common/sys/prnio.h | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/usr/src/uts/common/sys/prnio.h b/usr/src/uts/common/sys/prnio.h new file mode 100644 index 0000000000..14d4e8e834 --- /dev/null +++ b/usr/src/uts/common/sys/prnio.h @@ -0,0 +1,141 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright (c) 2001 by Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _SYS_PRNIO_H +#define _SYS_PRNIO_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +/* + * Printing system I/O interface + */ + +#include <sys/types.h> +#include <sys/ioccom.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define PRNIOC 'p' +#define PRNIOC_GET_IFCAP _IOR(PRNIOC, 90, uint_t) +#define PRNIOC_SET_IFCAP _IOR(PRNIOC, 91, uint_t) +#define PRNIOC_GET_IFINFO _IOWR(PRNIOC, 92, struct prn_interface_info) +#define PRNIOC_GET_STATUS _IOR(PRNIOC, 93, uint_t) +#define PRNIOC_GET_1284_DEVID _IOWR(PRNIOC, 94, struct prn_1284_device_id) +#define PRNIOC_GET_1284_STATUS _IOR(PRNIOC, 95, uchar_t) +#define PRNIOC_GET_TIMEOUTS _IOR(PRNIOC, 96, struct prn_timeouts) +#define PRNIOC_SET_TIMEOUTS _IOW(PRNIOC, 97, struct prn_timeouts) +#define PRNIOC_RESET _IO(PRNIOC, 98) + +/* + * interface capabilities + */ +#define PRN_BIDI 0x0001 /* bi-directional operation is supported */ +#define PRN_HOTPLUG 0x0002 /* interface allows device hotplugging */ +#define PRN_1284_DEVID 0x0004 /* device can return 1284 device ID */ +#define PRN_1284_STATUS 0x0008 /* device can return status lines state */ +#define PRN_TIMEOUTS 0x0010 /* timeouts are supported */ +#define PRN_STREAMS 0x0020 /* special flush semantics */ + +/* + * printer interface info + */ +struct prn_interface_info { + uint_t if_len; /* length of buffer */ + uint_t if_rlen; /* actual length of info string */ + char *if_data; /* buffer address */ +#ifndef _LP64 + int if_filler; /* preserve struct size in 32 bit */ +#endif +}; + +/* + * printer interface info string (recommended values) + */ +#define PRN_PARALLEL "parallel" /* parallel port (Centronics or 1284) */ +#define PRN_SERIAL "serial" /* serial port (EIA-232, EIA-485) */ +#define PRN_USB "USB" /* USB */ +#define PRN_1394 "1394" /* IEEE 1394 (Firewire) */ + +/* + * status bits for PRNIOC_GET_STATUS + */ +#define PRN_ONLINE 0x01 /* device is connected */ +#define PRN_READY 0x02 /* device is ready to communicate */ + +/* + * 1284 pins status bits + */ +#define PRN_1284_NOFAULT 0x08 /* device is not in error state */ +#define PRN_1284_SELECT 0x10 /* device selected */ +#define PRN_1284_PE 0x20 /* paper error */ +#define PRN_1284_BUSY 0x80 /* device busy */ + +/* + * IEEE 1284 device ID + */ +struct prn_1284_device_id { + uint_t id_len; /* length of buffer */ + uint_t id_rlen; /* actual length of device ID string */ + char *id_data; /* buffer address */ +#ifndef _LP64 + int id_filler; /* preserve struct size in 32 bit */ +#endif +}; + +/* + * printer driver timeouts + */ +struct prn_timeouts { + uint_t tmo_forward; /* forward transfer timeout */ + uint_t tmo_reverse; /* reverse transfer timeout */ +}; + +/* + * driver support for 32-bit applications + */ +#ifdef _KERNEL + +struct prn_interface_info32 { + uint_t if_len; /* length of buffer */ + uint_t if_rlen; /* actual length of info string */ + caddr32_t if_data; /* buffer address */ +}; + +struct prn_1284_device_id32 { + uint_t id_len; /* length of buffer */ + uint_t id_rlen; /* actual length of device id string */ + caddr32_t id_data; /* buffer address */ +}; + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_PRNIO_H */ |