PreviousUpNext

15.3.510  src/lib/std/src/nj/runtime-internals.api

## 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.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext