## runtime-internals.api
# Compiled by:
#
src/lib/std/src/standard-core.sublib# This package (lib7::internals) is a gathering place for internal
# features that need to be exposed outside the boot directory.
api Runtime_Internals {
#
package at: Run_At__Premicrothread; # Run_At__Premicrothread is from
src/lib/std/src/nj/run-at--premicrothread.api package rpc: Runtime_Profiling_Control; # Runtime_Profiling_Control is from
src/lib/std/src/nj/runtime-profiling-control.api package hc: Heapcleaner_Control; # Heapcleaner_Control is from
src/lib/std/src/nj/heapcleaner-control.api print_hook: Ref (String -> Void);
#
# This hook can be used to change the top-level print function.
# Routines for managing the internal signal handler tables.
# These are for programs that must otherwise bypass
# the standard initialization mechanisms:
#
initialize_posix_interprocess_signal_handler_table: Void -> Void;
clear_posix_interprocess_signal_handler_table: Void -> Void;
reset_posix_interprocess_signal_handler_table: Void -> Void;
# Reset the total real and CPU time timers
#
# reset_timers: Void -> Void;
# Generic trace/debug/profile control; (Matthias Blume 10/2004)
#
package tdp
:
api {
Plugin
=
{ name: String,
save: Void -> Void -> Void,
push: (Int, Int) -> Void -> Void,
nopush: (Int, Int) -> Void,
enter: (Int, Int) -> Void,
register: (Int, Int, Int, String) -> Void
};
Monitor
=
{ name: String,
monitor: (Bool, (Void -> Void)) -> Void
};
active_plugins: Ref( List( Plugin ) );
active_monitors: Ref( List( Monitor ) );
reserve: Int -> Int; # Reserve a number of IDs.
reset: Void -> Void; # Reset the ID generator.
# Pre-defined ID kinds:
#
idk_entry_point: Int;
idk_non_tail_call: Int;
idk_tail_call: Int;
# Ref cell controlling instrumentation mode:
#
tdp_instrument_enabled: Ref( Bool );
with_monitors
:
Bool -> (Void -> Void) -> Void;
};
};
## COPYRIGHT (c) 1996 AT&T Research.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.