# [glo_tab.h] Global Table

## contents

#include "standard.h"
#include "symbols.h"

Through the means of the module [glo_tab] it is possible to store and retrieve arbitrary pairs ( key, value ) with a bijective mapping between them.

This defines a special global process memory.

Originally this functionality was needed in order to make statically bind C-functions persistent. ( see also [binimg] )

In addition this module handles i.e. keeps track of dynamical loaded objects.

## Init & Quit

    void Glo_init(void)

inits [glo_tab]

    void Glo_quit(void)

quits [glo_tab]

## Table access

    void Glo_def(symbol Name, Abs_T Value)

adds global ( 'Name' <--> 'Value' )

    void Glo_rmv(symbol Name)

deletes global 'Name'

    c_bool Glo_key_known(symbol Name)

whether 'Name' is defined

    c_bool Glo_val_known(Abs_T Value)

whether 'Value' is defined

    Abs_T Glo__val(symbol Name)
    #define Glo_val(T,N) ((T)Glo__val(N))

value defined for 'Name'

    symbol Glo_key(Abs_T Value)

name defined for 'Value'

    symbol Glo_objkey_mk(symbol Lib, symbol Obj)

constructs key for loadable object

    c_bool Glo_objkey_de(symbol glokey, symbol* Lib, symbol* Obj)

destructs key of loadable object

    StdCPtr Glo_load(symbol Lib, symbol Obj, c_bool saveObj)

loads the object if not already defined
'saveObj' --> saves it in the global table