source: mainline/uspace/drv/char/pc-lpt/pc-lpt_hw.h

Last change on this file was 10b21a1b, checked in by Jiri Svoboda <jiri@…>, 7 years ago

PC parallel port driver and printing utility

Add pc-lpt driver for the standard PC parallel port. Add lprint utility
to print a file or a short message to the printer port. Tested in Qemu.

  • Property mode set to 100644
File size: 2.2 KB
Line 
1/*
2 * Copyright (c) 2018 Jiri Svoboda
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/** @addtogroup uspace_drv_pc_lpt
30 * @{
31 */
32/** @file
33 */
34
35#ifndef PC_LPT_HW_H
36#define PC_LPT_HW_H
37
38#include <ddi.h>
39
40/** PC parallel port registers */
41typedef struct {
42 /** Data out register */
43 ioport8_t data;
44 /** Status register */
45 ioport8_t status;
46 /** Control register */
47 ioport8_t control;
48} pc_lpt_regs_t;
49
50/** Printer control register bits */
51typedef enum {
52 /** Strobe */
53 ctl_strobe = 0,
54 /** Auto linefeed */
55 ctl_autofd = 1,
56 /** -Init */
57 ctl_ninit = 2,
58 /** Select */
59 ctl_select = 3,
60 /** IRQ Enable */
61 ctl_irq_enable = 4
62} pc_lpt_ctl_bits_t;
63
64/** Printer status register bits */
65typedef enum {
66 /** -Error */
67 sts_nerror = 3,
68 /** Select */
69 sts_select = 4,
70 /** Init */
71 sts_paper_end = 5,
72 /** -Ack */
73 sts_nack = 6,
74 /** -Busy */
75 sts_nbusy = 7
76} pc_lpt_sts_bits_t;
77
78#endif
79
80/** @}
81 */
Note: See TracBrowser for help on using the repository browser.