Home | History | Annotate | Download | only in lpsched
      1     0  stevel /*
      2     0  stevel  * CDDL HEADER START
      3     0  stevel  *
      4     0  stevel  * The contents of this file are subject to the terms of the
      5  3125  jacobs  * Common Development and Distribution License (the "License").
      6  3125  jacobs  * You may not use this file except in compliance with the License.
      7     0  stevel  *
      8     0  stevel  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9     0  stevel  * or http://www.opensolaris.org/os/licensing.
     10     0  stevel  * See the License for the specific language governing permissions
     11     0  stevel  * and limitations under the License.
     12     0  stevel  *
     13     0  stevel  * When distributing Covered Code, include this CDDL HEADER in each
     14     0  stevel  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15     0  stevel  * If applicable, add the following below this CDDL HEADER, with the
     16     0  stevel  * fields enclosed by brackets "[]" replaced with your own identifying
     17     0  stevel  * information: Portions Copyright [yyyy] [name of copyright owner]
     18     0  stevel  *
     19     0  stevel  * CDDL HEADER END
     20     0  stevel  */
     21     0  stevel /*
     22  3125  jacobs  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
     23     0  stevel  * Use is subject to license terms.
     24     0  stevel  */
     25     0  stevel 
     26     0  stevel /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
     27     0  stevel /*	  All Rights Reserved  	*/
     28     0  stevel 
     29     0  stevel 
     30     0  stevel #pragma ident	"%Z%%M%	%I%	%E% SMI"
     31     0  stevel 
     32     0  stevel typedef struct alert_node	ALERT;
     33     0  stevel typedef struct cstat_node	CSTATUS;
     34     0  stevel typedef struct exec_node	EXEC;
     35     0  stevel typedef struct form_node	_FORM;
     36     0  stevel typedef struct fstat_node	FSTATUS;
     37     0  stevel typedef struct pfstat_node	PFSTATUS;
     38     0  stevel typedef struct pstat_node	PSTATUS;
     39     0  stevel typedef struct pwstat_node	PWSTATUS;
     40     0  stevel typedef struct rstat_node	RSTATUS;
     41     0  stevel 
     42     0  stevel struct alert_node
     43     0  stevel {
     44     0  stevel     short	active;			/* Non-zero if triggered     */
     45     0  stevel     EXEC	*exec;			/* Index into EXEC table     */
     46     0  stevel     char	*msgfile;
     47     0  stevel };
     48     0  stevel 
     49     0  stevel struct cstat_node
     50     0  stevel {
     51     0  stevel     short	status;
     52     0  stevel     char	*rej_reason;
     53     0  stevel     time_t	rej_date;
     54     0  stevel     CLASS	*class;
     55     0  stevel };
     56     0  stevel 
     57     0  stevel struct exec_node
     58     0  stevel {
     59     0  stevel     int		pid;			/* process-id of exec		*/
     60     0  stevel     int		status;			/* low order bits from wait	*/
     61     0  stevel     long	key;			/* private key for security	*/
     62     0  stevel     short	Errno;			/* copy of child's errno	*/
     63     0  stevel     short	type;			/* type of exec, EX_...		*/
     64     0  stevel     ushort	flags;			/* flags, EXF_...		*/
     65     0  stevel     MESG	*md;
     66     0  stevel     union ex
     67     0  stevel     {
     68     0  stevel 	RSTATUS		*request;
     69     0  stevel 	FSTATUS		*form;
     70     0  stevel 	PWSTATUS	*pwheel;
     71     0  stevel 	PSTATUS		*printer;
     72     0  stevel     } ex;
     73     0  stevel };
     74     0  stevel 
     75     0  stevel #define	EX_INTERF	1	/* exec interface for ex.printer	*/
     76     0  stevel #define	EX_SLOWF	2	/* exec slow filter for ex.request	*/
     77     0  stevel #define	EX_ALERT	3	/* exec alert for ex.printer		*/
     78     0  stevel #define	EX_FALERT	4	/* exec alert for ex.form		*/
     79     0  stevel #define	EX_PALERT	5	/* exec alert for ex.pwheel		*/
     80     0  stevel #define	EX_NOTIFY	6	/* exec notification for ex.request	*/
     81     0  stevel #define	EX_FAULT_MESSAGE 7	/* exec fault message*/
     82     0  stevel #define	EX_FORM_MESSAGE	8	/* form fault message*/
     83     0  stevel 
     84     0  stevel #define	EXF_RESTART	0x0001	/* restart the exec			*/
     85     0  stevel #define	EXF_KILLED	0x0002	/* terminate() has killed the exec	*/
     86     0  stevel #define	EXF_GONE	0x0004	/* child has disappeared		*/
     87     0  stevel 
     88     0  stevel /*
     89     0  stevel **	Possible values for FLT.type
     90     0  stevel */
     91     0  stevel #define        FLT_FILES       1	/* remove alloc'd files		*/
     92     0  stevel #define        FLT_CHANGE      2	/* clear RS_CHANGING for .r1	*/
     93     0  stevel 
     94     0  stevel struct fstat_node
     95     0  stevel {
     96     0  stevel     _FORM	*form;
     97     0  stevel     ALERT	*alert;
     98     0  stevel     short	requests;		/* Number of events thus far */
     99     0  stevel     short	requests_last;		/* # when alert last sent */
    100     0  stevel     short	trigger;		/* Trigger when this value   */
    101     0  stevel     short	mounted;		/* # times currently mounted */
    102     0  stevel     char	**users_allowed;
    103     0  stevel     char	**users_denied;
    104     0  stevel     char	*cpi;
    105     0  stevel     char	*lpi;
    106     0  stevel     char	*plen;
    107     0  stevel     char	*pwid;
    108     0  stevel };
    109     0  stevel 
    110     0  stevel struct pfstat_node
    111     0  stevel {
    112     0  stevel 	FSTATUS	*form;
    113     0  stevel 	short isAvailable;
    114     0  stevel };
    115     0  stevel 
    116     0  stevel struct pstat_node
    117     0  stevel {
    118     0  stevel     short	status;			/* Current Status of printer */
    119     0  stevel     RSTATUS	*request;
    120     0  stevel     PRINTER	*printer;
    121     0  stevel     ALERT	*alert;
    122     0  stevel     EXEC	*exec;
    123     0  stevel     PFSTATUS	*forms;
    124     0  stevel     char	*pwheel_name;
    125     0  stevel     PWSTATUS	*pwheel;
    126     0  stevel     char	*dis_reason;
    127     0  stevel     char	*rej_reason;
    128     0  stevel     char	**users_allowed;
    129     0  stevel     char	**users_denied;
    130     0  stevel     char	**forms_allowed;
    131     0  stevel     char	**forms_denied;
    132     0  stevel     char	*cpi;
    133     0  stevel     char	*lpi;
    134     0  stevel     char	*plen;
    135     0  stevel     char	*pwid;
    136     0  stevel     time_t	dis_date;
    137     0  stevel     time_t	rej_date;
    138     0  stevel     short	last_dial_rc;		/* last exit from dial() */
    139     0  stevel     short	nretry;			/* number of dial attempts */
    140     0  stevel     short	nrequests;		/* TEMP ONLY! (used variously) */
    141     0  stevel     char	*fault_reason;
    142     0  stevel     EXEC	*fault_exec;
    143     0  stevel     short	numForms;
    144     0  stevel     char	**paper_allowed;
    145     0  stevel };
    146     0  stevel 
    147     0  stevel struct pwstat_node
    148     0  stevel {
    149     0  stevel     PWHEEL	*pwheel;
    150     0  stevel     ALERT	*alert;
    151     0  stevel     short	requests;
    152     0  stevel     short	requests_last;		/* # when alert last sent */
    153     0  stevel     short	trigger;
    154     0  stevel     short	mounted;
    155     0  stevel };
    156     0  stevel 
    157     0  stevel #define send		mputm
    158     0  stevel 
    159     0  stevel struct rstat_node
    160     0  stevel {
    161     0  stevel     long	status;
    162     0  stevel     MESG	*md;
    163     0  stevel 
    164     0  stevel     char	*req_file;
    165     0  stevel     char	*slow;
    166     0  stevel     char	*fast;
    167     0  stevel     short	copies;		/* # copies interface is to make */
    168     0  stevel     short	reason;		/* reason for failing _validate() */
    169     0  stevel 
    170     0  stevel     SECURE	*secure;
    171     0  stevel     REQUEST	*request;
    172     0  stevel     PSTATUS	*printer;
    173     0  stevel     FSTATUS	*form;
    174     0  stevel     char	*pwheel_name;
    175     0  stevel     PWSTATUS	*pwheel;
    176     0  stevel     EXEC	*exec;		/* Pointer to running filter or notify */
    177     0  stevel 
    178     0  stevel     char	*printer_type;
    179     0  stevel     char	*output_type;
    180     0  stevel     char	*cpi;
    181     0  stevel     char	*lpi;
    182     0  stevel     char	*plen;
    183     0  stevel     char	*pwid;
    184     0  stevel 
    185     0  stevel     RSTATUS	*next;
    186     0  stevel     RSTATUS	*prev;
    187     0  stevel     short	msgType; /* for getting status */
    188     0  stevel     short	trayNum; /* for mounting trays remotely */
    189     0  stevel     char	*formName; /* for mounting forms remotely */
    190     0  stevel };
    191     0  stevel 
    192     0  stevel # define	RSS_PWMAND	0x00000008 /* pwheel must be mounted */
    193     0  stevel # define	RSS_SEND_FAULT_MESSAGE	0x00000040 /* need to send message*/
    194     0  stevel # define	RSS_SEND_FORM_MESSAGE	0x00000080 /* need to send form message*/
    195     0  stevel 
    196     0  stevel struct form_node
    197     0  stevel {
    198     0  stevel     SCALED	plen;
    199     0  stevel     SCALED	pwid;
    200     0  stevel     SCALED	lpi;
    201     0  stevel     SCALED	cpi;
    202     0  stevel     int	np;
    203     0  stevel     char	*chset;
    204     0  stevel     short	mandatory;
    205     0  stevel     char	*rcolor;
    206     0  stevel     char	*comment;
    207     0  stevel     char	*conttype;
    208     0  stevel     char	*name;
    209     0  stevel     FALERT	alert;
    210     0  stevel     char	*paper;
    211     0  stevel     short	isDefault;
    212     0  stevel };
    213