aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/global.h
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2011-11-17 09:52:12 +0100
committerBjörn Gustavsson <[email protected]>2011-11-17 09:52:12 +0100
commitab75301714c3183172e3d315437ed2d62d735c4e (patch)
tree59b6a520961a6e6bacb05a48c58d62d8509f067b /erts/emulator/beam/global.h
parent8e8fa01525dabf757009054798569aba115d2952 (diff)
parentbee543c25be70380be225021864a079c01b56255 (diff)
downloadotp-ab75301714c3183172e3d315437ed2d62d735c4e.tar.gz
otp-ab75301714c3183172e3d315437ed2d62d735c4e.tar.bz2
otp-ab75301714c3183172e3d315437ed2d62d735c4e.zip
Merge branch 'bjorn/erts/code-loading/OTP-9720'
* bjorn/erts/code-loading/OTP-9720: BEAM loader: Don't stop other schedulers until truly needed BEAM loader: Refactor code loading into separate functions beam_load.c: Factor out cleaning up of the loader state into free_state() BEAM loader: Clean up handling of error reasons Remove the useless -l option beam_load.c: Simplify handling of the bs_put_string_II instruction beam_load.c: Remove the unused struct LoadedCode
Diffstat (limited to 'erts/emulator/beam/global.h')
-rw-r--r--erts/emulator/beam/global.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/erts/emulator/beam/global.h b/erts/emulator/beam/global.h
index 4a4973baab..9f19172e08 100644
--- a/erts/emulator/beam/global.h
+++ b/erts/emulator/beam/global.h
@@ -555,7 +555,6 @@ extern Eterm node_cookie;
extern erts_smp_atomic_t erts_bytes_out; /* no bytes written out */
extern erts_smp_atomic_t erts_bytes_in; /* no bytes sent into the system */
extern Uint display_items; /* no of items to display in traces etc */
-extern Uint display_loads; /* print info about loaded modules */
extern int erts_backtrace_depth;
extern erts_smp_atomic32_t erts_max_gen_gcs;
@@ -867,8 +866,14 @@ typedef struct {
Eterm* fname_ptr; /* Pointer to fname table */
} FunctionInfo;
-int erts_load_module(Process *c_p, ErtsProcLocks c_p_locks,
- Eterm group_leader, Eterm* mod, byte* code, int size);
+struct LoaderState* erts_alloc_loader_state(void);
+Eterm erts_prepare_loading(struct LoaderState*, Process *c_p,
+ Eterm group_leader, Eterm* modp,
+ byte* code, Uint size);
+Eterm erts_finish_loading(struct LoaderState* stp, Process* c_p,
+ ErtsProcLocks c_p_locks, Eterm* modp);
+Eterm erts_load_module(Process *c_p, ErtsProcLocks c_p_locks,
+ Eterm group_leader, Eterm* mod, byte* code, Uint size);
void init_load(void);
BeamInstr* find_function_from_pc(BeamInstr* pc);
Eterm* erts_build_mfa_item(FunctionInfo* fi, Eterm* hp,