⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dcl.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/* @(#)dcl.h	4.2      ULTRIX 	10/16/90 *//************************************************************************ *									* *			Copyright (c) 1988 by				* *		Digital Equipment Corporation, Maynard, MA		* *			All rights reserved.				* *									* *   This software is furnished under a license and may be used and	* *   copied  only  in accordance with the terms of such license and	* *   with the  inclusion  of  the  above  copyright  notice.   This	* *   software  or  any  other copies thereof may not be provided or	* *   otherwise made available to any other person.  No title to and	* *   ownership of the software is hereby transferred.			* *									* *   The information in this software is subject to change  without	* *   notice  and should not be construed as a commitment by Digital	* *   Equipment Corporation.						* *									* *   Digital assumes no responsibility for the use  or  reliability	* *   of its software on equipment which is not supplied by Digital.	* *									* ************************************************************************//* * dcl.h -- data structure to describe PostScript job *  * Two main data structures are:- * * struct dcl_job -- describes whole job and hides *	the vector of functions used for building it * * struct dcl_module -- used for creating a linked list *	of job modules. *//* * Modification History: * * 02-Oct-90 - Adrian Thoms (thoms@wessex) *	Added flags field to dcl_job structure *//* SCCS history beginning * This is now OBSOLETE, add modification history above * *************************************************************** *                -- Revision History -- * *************************************************************** *  * 1.1  02/06/88 -- thoms * date and time created 88/06/02 17:45:10 by thoms *  * *************************************************************** * * 1.2  15/07/88 -- thoms * Added copyright notice, modification history, improved comments * * *************************************************************** * * 1.3  28/07/88 -- thoms * Added dj_resources field to dcl_job structure to store LPS * preloaded resources * * SCCS history end *//* * The vector of arguments to a job module is grown by * this much as necessary */#define DJ_CLICK	16/*****************************************************************	enum job_element_e -- constants to identify job modules****************************************************************//* * Each job module has an associated execution function * which is accessed via the table dj_vec in dcl.c which isindexed * by constants of this enumeration type */enum job_element_e {	je_default,		/* nop value */	je_archive,		/* used by PostScript jobs */	je_print,		/* xlate and print file */	je_bypass,		/* xlate and print, bypass output filter */	je_outstr,		/* output strings */	je_banner,		/* used by lp jobs only */};/*****************************************************************		handlers for job modules -- in dm_handler.c****************************************************************//* * These functions perform the actions required to send a * particular job module to the printer * * They are implemented in dm_handler.c and * are accessed indirectly via dj_vec (see above) */extern int dm_default(/* DJP djp; DMP dmp */);	/* does nothing */extern int dm_archive(/* DJP djp; DMP dmp */);	/* extract archive */extern int dm_print(/* DJP djp; DMP dmp */);	/* xlate and print */extern int dm_bypass(/* DJP djp; DMP dmp */);	/* xlate and print (no OF) */extern int dm_outstr(/* DJP djp; DMP dmp */);	/* output strings */extern int dm_banner(/* DJP djp; DMP dmp */);	/* output ascii banner */extern int dm_debug(/* DJP djp; DMP dmp */);	/* describe the module *//****************************************************************/typedef enum job_element_e job_el_t; /* job type, index into handler fns vec */typedef int (*job_element_pfn)(/* DJP djp; DMP dmp */);/* * typedef job_build_sw -- type for table of job building functions * *	These 3 major job building activities may be different *	for different types of printer hence are called indirectly */typedef struct job_build_sw_s {	void (*jb_prolog)(/* DJP djp */);	void (*jb_epilog)(/* DJP djp */);	enum job_status_e (*jb_add_file)(/* DJP djp;					  * int format;					  * char *file */);} job_build_sw;/* * Type of the method object in a job_module * used to hold pointer to filter description structure */typedef char *opaque_method;	/* type of object used by element handler *//* * Shorthand names for job and job module pointers */typedef struct dcl_module *DMP;typedef struct dcl_job *DJP;/*****************************************************************	dcl_module -- Structure for job module object****************************************************************/struct dcl_module {	DMP dm_next;		/* linked list pointer */	char **dm_argv;		/* Module description vector */	job_el_t dm_el;		/* job element type */	opaque_method dm_method;/* arg to job element handler */};/*****************************************************************	dcl_job -- Structure for job description object****************************************************************/struct dcl_job {	job_build_sw *dj_build; /* build functions */	CXP dj_cxp;		/* output connection */	FCP dj_resources;	/* preloaded resources in LPS */	unsigned dj_flags;	/* Miscellaneous flags */	unsigned short dj_i;	/* index into args of current module */	unsigned short dj_maxargs; /* max args for current module */	struct dcl_module *dj_mod; /* Module descriptions head */	struct dcl_module *dj_mod_tail; /* " descriptions tail */};/* Flag definitions for dj_flags field */#define DJ_HAVE_SETNUMBERUP	(1<<0) /* Have loaded number up module */#define DJ_AFTER_FIRST_FILE	(1<<1) /* Have put first file in job */#define DJ_WIDTH_WINS		(1<<2) /* old sizes beat orientation *//*****************************************************************	dcl_job operations -- export declarations****************************************************************/extern void dj_init(/* DJP djp; CXP cxp; job_build_sw *build_sw; */);	extern DJP new_dj(/* CXP cxp; job_build_sw *dj_build_sw */);extern void dj_delete(/* DJP djp; int onheap */);/* * functions to add new args to current filter */extern void dj_add_arg(/* DJP djp; char *arg */);extern void dj_add_args_l(/* DJP djp; char *arg; ... */);extern void dj_add_args_v(/* DJP djp; char **argv */);extern void dj_add_args_va(/* DJP djp; va_list ap */);/* * Bracketing functions for setting up module description */extern void dj_start_module(/* DJP djp;			     * enum job_el_e el;			     * opaque_method method; */);extern void dj_end_module(/* DJP djp */);/* * high level job module operations * * These make indirect calls via table stored in dj_build field */extern void dj_prolog(/* DJP djp */); /* add job prolog to job description */extern void dj_epilog(/* DJP djp */); /* add job epilog to job description */extern enum job_status_e dj_add_file(/* DJP djp, int format, char *file */);/* * The "do it" call: sends job to printer */extern enum job_status_e dj_exec(/* DJP djp */); /* execute the job *//*****************************************************************         ar module extraction routines -- in dcl_xar.c****************************************************************/extern int ar_init(/* char *arname */);	/* 0 for success called from init()*/extern int ar_x(/* int ar_fd, out_fd; char * module */);	/* returns 1 for success else 0 */extern int ar_get(/* char *arnam */);	/* return archive file desc. */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -