1 /* $OpenBSD: lptvar.h,v 1.3 2002/03/14 01:26:54 millert Exp $ */ 2 /* $NetBSD: lpt.c,v 1.42 1996/10/21 22:41:14 thorpej Exp $ */ 3 4 /* 5 * Copyright (c) 1993, 1994 Charles Hannum. 6 * Copyright (c) 1990 William F. Jolitz, TeleMuse 7 * All rights reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3. All advertising materials mentioning features or use of this software 18 * must display the following acknowledgement: 19 * This software is a component of "386BSD" developed by 20 * William F. Jolitz, TeleMuse. 21 * 4. Neither the name of the developer nor the name "386BSD" 22 * may be used to endorse or promote products derived from this software 23 * without specific prior written permission. 24 * 25 * THIS SOFTWARE IS A COMPONENT OF 386BSD DEVELOPED BY WILLIAM F. JOLITZ 26 * AND IS INTENDED FOR RESEARCH AND EDUCATIONAL PURPOSES ONLY. THIS 27 * SOFTWARE SHOULD NOT BE CONSIDERED TO BE A COMMERCIAL PRODUCT. 28 * THE DEVELOPER URGES THAT USERS WHO REQUIRE A COMMERCIAL PRODUCT 29 * NOT MAKE USE OF THIS WORK. 30 * 31 * FOR USERS WHO WISH TO UNDERSTAND THE 386BSD SYSTEM DEVELOPED 32 * BY WILLIAM F. JOLITZ, WE RECOMMEND THE USER STUDY WRITTEN 33 * REFERENCES SUCH AS THE "PORTING UNIX TO THE 386" SERIES 34 * (BEGINNING JANUARY 1991 "DR. DOBBS JOURNAL", USA AND BEGINNING 35 * JUNE 1991 "UNIX MAGAZIN", GERMANY) BY WILLIAM F. JOLITZ AND 36 * LYNNE GREER JOLITZ, AS WELL AS OTHER BOOKS ON UNIX AND THE 37 * ON-LINE 386BSD USER MANUAL BEFORE USE. A BOOK DISCUSSING THE INTERNALS 38 * OF 386BSD ENTITLED "386BSD FROM THE INSIDE OUT" WILL BE AVAILABLE LATE 1992. 39 * 40 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND 41 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 42 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 43 * ARE DISCLAIMED. IN NO EVENT SHALL THE DEVELOPER BE LIABLE 44 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 45 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 46 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 47 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 48 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 49 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 50 * SUCH DAMAGE. 51 */ 52 53 #include <sys/timeout.h> 54 55 struct lpt_softc { 56 struct device sc_dev; 57 void *sc_ih; 58 struct timeout sc_wakeup_tmo; 59 60 size_t sc_count; 61 struct buf *sc_inbuf; 62 u_int8_t *sc_cp; 63 int sc_spinmax; 64 bus_space_tag_t sc_iot; /* bus tag */ 65 bus_space_handle_t sc_ioh; /* handle to the registers */ 66 u_int8_t sc_state; 67 #define LPT_OPEN 0x01 /* device is open */ 68 #define LPT_OBUSY 0x02 /* printer is busy doing output */ 69 #define LPT_INIT 0x04 /* waiting to initialize for open */ 70 u_int8_t sc_flags; 71 #define LPT_POLLED 0x10 /* configured for polling only */ 72 #define LPT_AUTOLF 0x20 /* automatic LF on CR */ 73 #define LPT_NOPRIME 0x40 /* don't prime on open */ 74 #define LPT_NOINTR 0x80 /* do not use interrupt */ 75 u_int8_t sc_control; 76 u_int8_t sc_laststatus; 77 }; 78 79 int lptintr(void *); 80 int lpt_port_test(bus_space_tag_t, bus_space_handle_t, bus_addr_t, 81 bus_size_t, u_int8_t, u_int8_t); 82 void lpt_attach_common(struct lpt_softc *); 83