summaryrefslogtreecommitdiff
path: root/sys/src/cmd/gs/src/opextern.h
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/gs/src/opextern.h
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/gs/src/opextern.h')
-rwxr-xr-xsys/src/cmd/gs/src/opextern.h149
1 files changed, 149 insertions, 0 deletions
diff --git a/sys/src/cmd/gs/src/opextern.h b/sys/src/cmd/gs/src/opextern.h
new file mode 100755
index 000000000..5fa68211a
--- /dev/null
+++ b/sys/src/cmd/gs/src/opextern.h
@@ -0,0 +1,149 @@
+/* Copyright (C) 1995, 1996, 1999 Aladdin Enterprises. All rights reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ For more information about licensing, please refer to
+ http://www.ghostscript.com/licensing/. For information on
+ commercial licensing, go to http://www.artifex.com/licensing/ or
+ contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+ San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+*/
+
+/* $Id: opextern.h,v 1.6 2002/06/16 04:47:10 lpd Exp $ */
+/* Externally accessible operator declarations */
+
+#ifndef opextern_INCLUDED
+# define opextern_INCLUDED
+
+/*
+ * Normally, the procedures that implement PostScript operators (named zX
+ * where X is the name of the operator, e.g., zadd) are private to the
+ * file in which they are defined. There are, however, a surprising
+ * number of these procedures that are used from other files.
+ * This file, opextern.h, declares all z* procedures that are
+ * - referenced from outside their defining file, and
+ * - present in *all* configurations of the interpreter.
+ * For z* procedures referenced from outside their file but not present
+ * in all configurations (e.g., Level 2 operators), the file making the
+ * reference must include a local extern. Not pretty, but c'est la vie.
+ */
+
+/* Operators exported for the special operator encoding in interp.c. */
+int zadd(i_ctx_t *);
+int zdef(i_ctx_t *);
+int zdup(i_ctx_t *);
+int zexch(i_ctx_t *);
+int zif(i_ctx_t *);
+int zifelse(i_ctx_t *);
+int zindex(i_ctx_t *);
+int zpop(i_ctx_t *);
+int zroll(i_ctx_t *);
+int zsub(i_ctx_t *);
+/* Internal entry points for the interpreter. */
+int zop_add(ref *);
+int zop_def(i_ctx_t *);
+int zop_sub(ref *);
+
+/* Operators exported for server loop implementations. */
+int zflush(i_ctx_t *);
+int zflushpage(i_ctx_t *);
+int zsave(i_ctx_t *);
+int zrestore(i_ctx_t *);
+
+/* Operators exported for save/restore. */
+int zgsave(i_ctx_t *);
+int zgrestore(i_ctx_t *);
+
+/* Operators exported for Level 2 pagedevice facilities. */
+int zcopy_gstate(i_ctx_t *);
+int zcurrentgstate(i_ctx_t *);
+int zgrestoreall(i_ctx_t *);
+int zgstate(i_ctx_t *);
+int zreadonly(i_ctx_t *);
+int zsetdevice(i_ctx_t *);
+int zsetgstate(i_ctx_t *);
+
+/* Operators exported for Level 2 "wrappers". */
+int zcopy(i_ctx_t *);
+int zimage(i_ctx_t *);
+int zimagemask(i_ctx_t *);
+int zwhere(i_ctx_t *);
+
+/* Operators exported for specific-VM operators. */
+int zarray(i_ctx_t *);
+int zdict(i_ctx_t *);
+int zpackedarray(i_ctx_t *);
+int zstring(i_ctx_t *);
+
+/* Operators exported for user path decoding. */
+/* Note that only operators defined in all configurations are declared here. */
+int zclosepath(i_ctx_t *);
+int zcurveto(i_ctx_t *);
+int zlineto(i_ctx_t *);
+int zmoveto(i_ctx_t *);
+int zrcurveto(i_ctx_t *);
+int zrlineto(i_ctx_t *);
+int zrmoveto(i_ctx_t *);
+
+/* Operators exported for the FunctionType 4 interpreter. */
+/* zarith.c: */
+int zabs(i_ctx_t *);
+int zceiling(i_ctx_t *);
+int zdiv(i_ctx_t *);
+int zfloor(i_ctx_t *);
+int zidiv(i_ctx_t *);
+int zmod(i_ctx_t *);
+int zmul(i_ctx_t *);
+int zneg(i_ctx_t *);
+int zround(i_ctx_t *);
+int ztruncate(i_ctx_t *);
+/* zmath.c: */
+int zatan(i_ctx_t *);
+int zcos(i_ctx_t *);
+int zexp(i_ctx_t *);
+int zln(i_ctx_t *);
+int zlog(i_ctx_t *);
+int zsin(i_ctx_t *);
+int zsqrt(i_ctx_t *);
+/* zrelbit.c: */
+int zand(i_ctx_t *);
+int zbitshift(i_ctx_t *);
+int zeq(i_ctx_t *);
+int zge(i_ctx_t *);
+int zgt(i_ctx_t *);
+int zle(i_ctx_t *);
+int zlt(i_ctx_t *);
+int zne(i_ctx_t *);
+int znot(i_ctx_t *);
+int zor(i_ctx_t *);
+int zxor(i_ctx_t *);
+/* ztype.c: */
+int zcvi(i_ctx_t *);
+int zcvr(i_ctx_t *);
+
+/* Operators exported for CIE cache loading. */
+int zcvx(i_ctx_t *);
+int zexec(i_ctx_t *); /* also for .runexec */
+int zfor(i_ctx_t *);
+
+/* Odds and ends */
+int zbegin(i_ctx_t *);
+int zcleartomark(i_ctx_t *);
+int zclosefile(i_ctx_t *); /* for runexec_cleanup */
+int zcopy_dict(i_ctx_t *); /* for zcopy */
+int zend(i_ctx_t *);
+int zfor_samples(i_ctx_t *); /* for function sampling */
+int zsetfont(i_ctx_t *); /* for cshow_continue */
+
+/* Operators exported for special customer needs. */
+int zcurrentdevice(i_ctx_t *);
+int ztoken(i_ctx_t *);
+int ztokenexec(i_ctx_t *);
+int zwrite(i_ctx_t *);
+
+#endif /* opextern_INCLUDED */