1 /* Copyright (C) 1995, 1996, 1999 Aladdin Enterprises. All rights reserved. 2 3 This software is provided AS-IS with no warranty, either express or 4 implied. 5 6 This software is distributed under license and may not be copied, 7 modified or distributed except as expressly authorized under the terms 8 of the license contained in the file LICENSE in this distribution. 9 10 For more information about licensing, please refer to 11 http://www.ghostscript.com/licensing/. For information on 12 commercial licensing, go to http://www.artifex.com/licensing/ or 13 contact Artifex Software, Inc., 101 Lucas Valley Road #110, 14 San Rafael, CA 94903, U.S.A., +1(415)492-9861. 15 */ 16 17 /* $Id: opextern.h,v 1.6 2002/06/16 04:47:10 lpd Exp $ */ 18 /* Externally accessible operator declarations */ 19 20 #ifndef opextern_INCLUDED 21 # define opextern_INCLUDED 22 23 /* 24 * Normally, the procedures that implement PostScript operators (named zX 25 * where X is the name of the operator, e.g., zadd) are private to the 26 * file in which they are defined. There are, however, a surprising 27 * number of these procedures that are used from other files. 28 * This file, opextern.h, declares all z* procedures that are 29 * - referenced from outside their defining file, and 30 * - present in *all* configurations of the interpreter. 31 * For z* procedures referenced from outside their file but not present 32 * in all configurations (e.g., Level 2 operators), the file making the 33 * reference must include a local extern. Not pretty, but c'est la vie. 34 */ 35 36 /* Operators exported for the special operator encoding in interp.c. */ 37 int zadd(i_ctx_t *); 38 int zdef(i_ctx_t *); 39 int zdup(i_ctx_t *); 40 int zexch(i_ctx_t *); 41 int zif(i_ctx_t *); 42 int zifelse(i_ctx_t *); 43 int zindex(i_ctx_t *); 44 int zpop(i_ctx_t *); 45 int zroll(i_ctx_t *); 46 int zsub(i_ctx_t *); 47 /* Internal entry points for the interpreter. */ 48 int zop_add(ref *); 49 int zop_def(i_ctx_t *); 50 int zop_sub(ref *); 51 52 /* Operators exported for server loop implementations. */ 53 int zflush(i_ctx_t *); 54 int zflushpage(i_ctx_t *); 55 int zsave(i_ctx_t *); 56 int zrestore(i_ctx_t *); 57 58 /* Operators exported for save/restore. */ 59 int zgsave(i_ctx_t *); 60 int zgrestore(i_ctx_t *); 61 62 /* Operators exported for Level 2 pagedevice facilities. */ 63 int zcopy_gstate(i_ctx_t *); 64 int zcurrentgstate(i_ctx_t *); 65 int zgrestoreall(i_ctx_t *); 66 int zgstate(i_ctx_t *); 67 int zreadonly(i_ctx_t *); 68 int zsetdevice(i_ctx_t *); 69 int zsetgstate(i_ctx_t *); 70 71 /* Operators exported for Level 2 "wrappers". */ 72 int zcopy(i_ctx_t *); 73 int zimage(i_ctx_t *); 74 int zimagemask(i_ctx_t *); 75 int zwhere(i_ctx_t *); 76 77 /* Operators exported for specific-VM operators. */ 78 int zarray(i_ctx_t *); 79 int zdict(i_ctx_t *); 80 int zpackedarray(i_ctx_t *); 81 int zstring(i_ctx_t *); 82 83 /* Operators exported for user path decoding. */ 84 /* Note that only operators defined in all configurations are declared here. */ 85 int zclosepath(i_ctx_t *); 86 int zcurveto(i_ctx_t *); 87 int zlineto(i_ctx_t *); 88 int zmoveto(i_ctx_t *); 89 int zrcurveto(i_ctx_t *); 90 int zrlineto(i_ctx_t *); 91 int zrmoveto(i_ctx_t *); 92 93 /* Operators exported for the FunctionType 4 interpreter. */ 94 /* zarith.c: */ 95 int zabs(i_ctx_t *); 96 int zceiling(i_ctx_t *); 97 int zdiv(i_ctx_t *); 98 int zfloor(i_ctx_t *); 99 int zidiv(i_ctx_t *); 100 int zmod(i_ctx_t *); 101 int zmul(i_ctx_t *); 102 int zneg(i_ctx_t *); 103 int zround(i_ctx_t *); 104 int ztruncate(i_ctx_t *); 105 /* zmath.c: */ 106 int zatan(i_ctx_t *); 107 int zcos(i_ctx_t *); 108 int zexp(i_ctx_t *); 109 int zln(i_ctx_t *); 110 int zlog(i_ctx_t *); 111 int zsin(i_ctx_t *); 112 int zsqrt(i_ctx_t *); 113 /* zrelbit.c: */ 114 int zand(i_ctx_t *); 115 int zbitshift(i_ctx_t *); 116 int zeq(i_ctx_t *); 117 int zge(i_ctx_t *); 118 int zgt(i_ctx_t *); 119 int zle(i_ctx_t *); 120 int zlt(i_ctx_t *); 121 int zne(i_ctx_t *); 122 int znot(i_ctx_t *); 123 int zor(i_ctx_t *); 124 int zxor(i_ctx_t *); 125 /* ztype.c: */ 126 int zcvi(i_ctx_t *); 127 int zcvr(i_ctx_t *); 128 129 /* Operators exported for CIE cache loading. */ 130 int zcvx(i_ctx_t *); 131 int zexec(i_ctx_t *); /* also for .runexec */ 132 int zfor(i_ctx_t *); 133 134 /* Odds and ends */ 135 int zbegin(i_ctx_t *); 136 int zcleartomark(i_ctx_t *); 137 int zclosefile(i_ctx_t *); /* for runexec_cleanup */ 138 int zcopy_dict(i_ctx_t *); /* for zcopy */ 139 int zend(i_ctx_t *); 140 int zfor_samples(i_ctx_t *); /* for function sampling */ 141 int zsetfont(i_ctx_t *); /* for cshow_continue */ 142 143 /* Operators exported for special customer needs. */ 144 int zcurrentdevice(i_ctx_t *); 145 int ztoken(i_ctx_t *); 146 int ztokenexec(i_ctx_t *); 147 int zwrite(i_ctx_t *); 148 149 #endif /* opextern_INCLUDED */ 150