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