summaryrefslogtreecommitdiff
path: root/py/runtime0.h
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2019-10-06 23:29:40 +1100
committerDamien George <damien.p.george@gmail.com>2019-12-12 20:15:28 +1100
commitb47e155bd07e5765b804c404411825b15378c0b6 (patch)
tree48e7c57050d5164e5482c5d9b1b2c2e921729031 /py/runtime0.h
parentb310930dba3a35dbe4d790f461caf27d78b4c7b9 (diff)
py/persistentcode: Add ability to relocate loaded native code.
Implements text, rodata and bss generalised relocations, as well as generic qstr-object linking. This allows importing dynamic native modules on all supported architectures in a unified way.
Diffstat (limited to 'py/runtime0.h')
-rw-r--r--py/runtime0.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/py/runtime0.h b/py/runtime0.h
index f588110c0..b433c716f 100644
--- a/py/runtime0.h
+++ b/py/runtime0.h
@@ -28,13 +28,17 @@
// The first four must fit in 8 bits, see emitbc.c
// The remaining must fit in 16 bits, see scope.h
+#define MP_SCOPE_FLAG_ALL_SIG (0x0f)
#define MP_SCOPE_FLAG_GENERATOR (0x01)
#define MP_SCOPE_FLAG_VARKEYWORDS (0x02)
#define MP_SCOPE_FLAG_VARARGS (0x04)
#define MP_SCOPE_FLAG_DEFKWARGS (0x08)
#define MP_SCOPE_FLAG_REFGLOBALS (0x10) // used only if native emitter enabled
#define MP_SCOPE_FLAG_HASCONSTS (0x20) // used only if native emitter enabled
-#define MP_SCOPE_FLAG_VIPERRET_POS (6) // 3 bits used for viper return type
+#define MP_SCOPE_FLAG_VIPERRET_POS (6) // 3 bits used for viper return type, to pass from compiler to native emitter
+#define MP_SCOPE_FLAG_VIPERRELOC (0x10) // used only when loading viper from .mpy
+#define MP_SCOPE_FLAG_VIPERRODATA (0x20) // used only when loading viper from .mpy
+#define MP_SCOPE_FLAG_VIPERBSS (0x40) // used only when loading viper from .mpy
// types for native (viper) function signature
#define MP_NATIVE_TYPE_OBJ (0x00)