php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
dasm_proto.h
Go to the documentation of this file.
1/*
2** DynASM encoding engine prototypes.
3** Copyright (C) 2005-2023 Mike Pall. All rights reserved.
4** Released under the MIT 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.5.0"
14#define DASM_VERSION 10500 /* 1.5.0 */
15
16#ifndef Dst_DECL
17#define Dst_DECL dasm_State **Dst
18#endif
19
20#ifndef Dst_REF
21#define Dst_REF (*Dst)
22#endif
23
24#ifndef DASM_FDEF
25#define DASM_FDEF extern
26#endif
27
28#ifndef DASM_M_GROW
29#define DASM_M_GROW(ctx, t, p, sz, need) \
30 do { \
31 size_t _sz = (sz), _need = (need); \
32 if (_sz < _need) { \
33 if (_sz < 16) _sz = 16; \
34 while (_sz < _need) _sz += _sz; \
35 (p) = (t *)realloc((p), _sz); \
36 if ((p) == NULL) exit(1); \
37 (sz) = _sz; \
38 } \
39 } while(0)
40#endif
41
42#ifndef DASM_M_FREE
43#define DASM_M_FREE(ctx, p, sz) free(p)
44#endif
45
46/* Internal DynASM encoder state. */
47typedef struct dasm_State dasm_State;
48
49
50/* Initialize and free DynASM state. */
53
54/* Setup global array. Must be called before dasm_setup(). */
55DASM_FDEF void dasm_setupglobal(Dst_DECL, void **gl, unsigned int maxgl);
56
57/* Grow PC label array. Can be called after dasm_setup(), too. */
58DASM_FDEF void dasm_growpc(Dst_DECL, unsigned int maxpc);
59
60/* Setup encoder. */
61DASM_FDEF void dasm_setup(Dst_DECL, const void *actionlist);
62
63/* Feed encoder with actions. Calls are generated by pre-processor. */
64DASM_FDEF void dasm_put(Dst_DECL, int start, ...);
65
66/* Link sections and return the resulting size. */
67DASM_FDEF int dasm_link(Dst_DECL, size_t *szp);
68
69/* Encode sections into buffer. */
71
72/* Get PC label offset. */
73DASM_FDEF int dasm_getpclabel(Dst_DECL, unsigned int pc);
74
75#ifdef DASM_CHECKS
76/* Optional sanity checker to call between isolated encoding steps. */
77DASM_FDEF int dasm_checkstep(Dst_DECL, int secmatch);
78#else
79#define dasm_checkstep(a, b) 0
80#endif
81
82
83#endif /* _DASM_PROTO_H */
#define dasm_checkstep(a, b)
Definition dasm_proto.h:79
DASM_FDEF int dasm_encode(Dst_DECL, void *buffer)
Definition dasm_arm.h:340
DASM_FDEF void dasm_free(Dst_DECL)
Definition dasm_arm.h:104
#define DASM_FDEF
Definition dasm_proto.h:25
DASM_FDEF int dasm_link(Dst_DECL, size_t *szp)
Definition dasm_arm.h:274
DASM_FDEF void dasm_init(Dst_DECL, int maxsection)
Definition dasm_arm.h:86
DASM_FDEF void dasm_put(Dst_DECL, int start,...)
Definition dasm_arm.h:172
DASM_FDEF void dasm_growpc(Dst_DECL, unsigned int maxpc)
Definition dasm_arm.h:125
DASM_FDEF void dasm_setup(Dst_DECL, const void *actionlist)
Definition dasm_arm.h:134
#define Dst_DECL
Definition dasm_proto.h:17
DASM_FDEF int dasm_getpclabel(Dst_DECL, unsigned int pc)
Definition dasm_arm.h:427
DASM_FDEF void dasm_setupglobal(Dst_DECL, void **gl, unsigned int maxgl)
Definition dasm_arm.h:117
buf start
Definition ffi.c:4687
Definition file.h:177
dasm_ActList actionlist
Definition dasm_arm.h:68
int maxsection
Definition dasm_arm.h:76