summaryrefslogtreecommitdiff
path: root/dynasm/dasm_proto.h
diff options
context:
space:
mode:
authorMike Pall <mike>2009-12-08 19:46:35 +0100
committerMike Pall <mike>2009-12-08 19:46:35 +0100
commit55b16959717084884fd4a0cbae6d19e3786c20c7 (patch)
treec8a07a43c13679751ed25a9d06796e9e7b2134a6 /dynasm/dasm_proto.h
downloadluajit-2.0.0-beta1.tar.gz
luajit-2.0.0-beta1.tar.bz2
luajit-2.0.0-beta1.zip
RELEASE LuaJIT-2.0.0-beta1v2.0.0-beta1
Diffstat (limited to 'dynasm/dasm_proto.h')
-rw-r--r--dynasm/dasm_proto.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/dynasm/dasm_proto.h b/dynasm/dasm_proto.h
new file mode 100644
index 00000000..94d9a9e2
--- /dev/null
+++ b/dynasm/dasm_proto.h
@@ -0,0 +1,69 @@
1/*
2** DynASM encoding engine prototypes.
3** Copyright (C) 2005-2009 Mike Pall. All rights reserved.
4** Released under the MIT/X license. See dynasm.lua for full copyright notice.
5*/
6
7#ifndef _DASM_PROTO_H
8#define _DASM_PROTO_H
9
10#include <stddef.h>
11#include <stdarg.h>
12
13#define DASM_IDENT "DynASM 1.2.1"
14#define DASM_VERSION 10201 /* 1.2.1 */
15
16#ifndef Dst_DECL
17#define Dst_DECL dasm_State *Dst
18#endif
19
20#ifndef Dst_GET
21#define Dst_GET (Dst)
22#endif
23
24#ifndef DASM_FDEF
25#define DASM_FDEF extern
26#endif
27
28
29/* Internal DynASM encoder state. */
30typedef struct dasm_State dasm_State;
31
32/* Action list type. */
33typedef const unsigned char *dasm_ActList;
34
35
36/* Initialize and free DynASM state. */
37DASM_FDEF void dasm_init(Dst_DECL, int maxsection);
38DASM_FDEF void dasm_free(Dst_DECL);
39
40/* Setup global array. Must be called before dasm_setup(). */
41DASM_FDEF void dasm_setupglobal(Dst_DECL, void **gl, unsigned int maxgl);
42
43/* Grow PC label array. Can be called after dasm_setup(), too. */
44DASM_FDEF void dasm_growpc(Dst_DECL, unsigned int maxpc);
45
46/* Setup encoder. */
47DASM_FDEF void dasm_setup(Dst_DECL, dasm_ActList actionlist);
48
49/* Feed encoder with actions. Calls are generated by pre-processor. */
50DASM_FDEF void dasm_put(Dst_DECL, int start, ...);
51
52/* Link sections and return the resulting size. */
53DASM_FDEF int dasm_link(Dst_DECL, size_t *szp);
54
55/* Encode sections into buffer. */
56DASM_FDEF int dasm_encode(Dst_DECL, void *buffer);
57
58/* Get PC label offset. */
59DASM_FDEF int dasm_getpclabel(Dst_DECL, unsigned int pc);
60
61#ifdef DASM_CHECKS
62/* Optional sanity checker to call between isolated encoding steps. */
63DASM_FDEF int dasm_checkstep(Dst_DECL, int secmatch);
64#else
65#define dasm_checkstep(a, b) 0
66#endif
67
68
69#endif /* _DASM_PROTO_H */