#ifndef GC_MEX_H
#define GC_MEX_H

#include "mex.h"


/*WARNING: gcc offsetof() macro generate the warning "warning: invalid access to non-static data member 'xxxxx'  of NULL object". se the following one*/
#define gc_mex_cpp_offsetof(class_, field_)  (((unsigned int)(&(((class_*)0x10)->field_)))-0x10)

#ifdef __cplusplus
extern "C" {
#endif

void gc_monitor_initialize(void);

mex_mt_list_t* gc_mex_obj_root();

void gc_mex_root_register(mex_mt_object_t* const obj);

#ifdef __cplusplus
}
#endif

#endif // GC_MEX_H
