1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/* LINTLIBRARY */
23/* PROTOLIB1 */
24
25/*
26 * Copyright (c) 1998 by Sun Microsystems, Inc.
27 * All rights reserved.
28 */
29
30/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
31/*	  All Rights Reserved  	*/
32
33#pragma ident	"%Z%%M%	%I%	%E% SMI"
34
35#include "../../include/lp.h"
36
37typedef struct PRINTER {
38	char   *name;		/* name of printer (redundant) */
39	unsigned short banner;	/* banner page conditions */
40	SCALED cpi;             /* default character pitch */
41	char   **char_sets;     /* list of okay char-sets/print-wheels */
42	char   **input_types;   /* list of types acceptable to printer */
43	char   *device;         /* printer port full path name */
44	char   *dial_info;      /* system name or phone # for dial-up */
45	char   *fault_rec;      /* printer fault recovery procedure */
46	char   *interface;      /* interface program full path name */
47	SCALED lpi;             /* default line pitch */
48	SCALED plen;            /* default page length */
49	unsigned short login;	/* is/isn't a login terminal */
50	char   *printer_type;   /* Terminfo look-up value (obsolete) */
51	char   *remote;         /* remote machine!printer-name */
52	char   *speed;          /* baud rate for connection */
53	char   *stty;           /* space separated list of stty options */
54	SCALED pwid;            /* default page width */
55	char   *description;	/* comment about printer */
56	FALERT fault_alert;	/* how to alert on printer fault */
57	short  daisy;           /* 1/0 - printwheels/character-sets */
58#if     defined(CAN_DO_MODULES)
59	char   **modules;	/* streams modules to push */
60#endif
61	char   **printer_types; /* Terminfo look-up values */
62	char	**options;	/* space separated list of undefined -o options */
63
64	/*
65	 * Adding new members to this structure? Check out
66	 * cmd/lpadmin/do_printer.c, where we initialize
67	 * each new printer structure.
68	 */
69}			PRINTER;
70
71typedef struct PWHEEL {
72	char   *name;		/* name of print wheel */
73	FALERT alert;		/* how to alert when mount needed */
74}			PWHEEL;
75
76extern unsigned long	badprinter,
77			ignprinter;
78PRINTER *	getprinter ( char * );
79
80PWHEEL *	getpwheel ( char * );
81
82char *		getdefault ( void );
83
84int		putprinter ( char *, PRINTER *);
85int		delprinter ( char * );
86int		putdefault ( char * );
87int		deldefault ( void );
88int		putpwheel ( char * , PWHEEL * );
89int		delpwheel ( char * );
90int		okprinter ( char * , PRINTER * , int );
91
92unsigned long	chkprinter (char *, char *, char *, char *, char *, char *);
93
94void		freeprinter ( PRINTER * );
95void		freepwheel ( PWHEEL * );
96
97char *	getpentry(char *, int);
98
99
100