1
/* Copyright (C) 2001-2006 Artifex Software, Inc.
4
This software is provided AS-IS with no warranty, either express or
7
This software is distributed under license and may not be copied, modified
8
or distributed except as expressly authorized under the terms of that
9
license. Refer to licensing information at http://www.artifex.com/
10
or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
11
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
14
/* $Id: opextern.h 8022 2007-06-05 22:23:38Z giles $ */
15
/* Externally accessible operator declarations */
17
#ifndef opextern_INCLUDED
18
# define opextern_INCLUDED
21
* Normally, the procedures that implement PostScript operators (named zX
22
* where X is the name of the operator, e.g., zadd) are private to the
23
* file in which they are defined. There are, however, a surprising
24
* number of these procedures that are used from other files.
25
* This file, opextern.h, declares all z* procedures that are
26
* - referenced from outside their defining file, and
27
* - present in *all* configurations of the interpreter.
28
* For z* procedures referenced from outside their file but not present
29
* in all configurations (e.g., Level 2 operators), the file making the
30
* reference must include a local extern. Not pretty, but c'est la vie.
33
/* Operators exported for the special operator encoding in interp.c. */
39
int zifelse(i_ctx_t *);
40
int zindex(i_ctx_t *);
42
int zrepeat(i_ctx_t *);
45
/* Internal entry points for the interpreter. */
47
int zop_def(i_ctx_t *);
50
/* Operators exported for server loop implementations. */
51
int zflush(i_ctx_t *);
52
int zflushpage(i_ctx_t *);
54
int zrestore(i_ctx_t *);
56
/* Operators exported for save/restore. */
57
int zgsave(i_ctx_t *);
58
int zgrestore(i_ctx_t *);
60
/* Operators exported for Level 2 pagedevice facilities. */
61
int zcopy_gstate(i_ctx_t *);
62
int zcurrentgstate(i_ctx_t *);
63
int zgrestoreall(i_ctx_t *);
64
int zgstate(i_ctx_t *);
65
int zreadonly(i_ctx_t *);
66
int zsetdevice(i_ctx_t *);
67
int zsetgstate(i_ctx_t *);
69
/* Operators exported for Level 2 "wrappers". */
71
int zimage(i_ctx_t *);
72
int zimagemask(i_ctx_t *);
73
int zwhere(i_ctx_t *);
75
/* Operators exported for specific-VM operators. */
76
int zarray(i_ctx_t *);
78
int zpackedarray(i_ctx_t *);
79
int zstring(i_ctx_t *);
81
int zlibfile(i_ctx_t *);
84
/* Operators exported for user path decoding. */
85
/* Note that only operators defined in all configurations are declared here. */
86
int zclosepath(i_ctx_t *);
87
int zcurveto(i_ctx_t *);
88
int zlineto(i_ctx_t *);
89
int zmoveto(i_ctx_t *);
90
int zrcurveto(i_ctx_t *);
91
int zrlineto(i_ctx_t *);
92
int zrmoveto(i_ctx_t *);
94
/* Operators exported for the FunctionType 4 interpreter. */
97
int zceiling(i_ctx_t *);
99
int zfloor(i_ctx_t *);
100
int zidiv(i_ctx_t *);
104
int zround(i_ctx_t *);
105
int ztruncate(i_ctx_t *);
107
int zatan(i_ctx_t *);
113
int zsqrt(i_ctx_t *);
116
int zbitshift(i_ctx_t *);
130
/* Operators exported for CIE cache loading. */
132
int zexec(i_ctx_t *); /* also for .runexec and .errorexec */
136
int zbegin(i_ctx_t *);
137
int zcleartomark(i_ctx_t *);
138
int zclosefile(i_ctx_t *); /* for runexec_cleanup */
139
int zcopy_dict(i_ctx_t *); /* for zcopy */
141
int zfor_samples(i_ctx_t *); /* for function sampling */
142
int zsetfont(i_ctx_t *); /* for cshow_continue */
144
/* Operators exported for special customer needs. */
145
int zcurrentdevice(i_ctx_t *);
146
int ztoken(i_ctx_t *);
147
int ztokenexec(i_ctx_t *);
148
int zwrite(i_ctx_t *);
150
#endif /* opextern_INCLUDED */