/*---------------------------------------------------------------------*/ static obj_t make_symbol( obj_t name ) { obj_t symbol; set_alloc_type( SYMBOL_TYPE_NUM, 0 ); symbol = GC_MALLOC( ESYMBOL_SIZE ); #if BMEMDEBUG if( bmem_debug > 1 ) { fprintf( stderr, "make_symbol: %s %p\n", BSTRING_TO_STRING( name ), symbol ); } #endif #if( !defined( TAG_SYMBOL ) ) symbol->symbol_t.header = MAKE_HEADER( SYMBOL_TYPE, SYMBOL_SIZE ); #endif symbol->symbol_t.string = name; symbol->symbol_t.cval = BNIL; ((esymbol_t *)(symbol))->alloc_info = 0; ((esymbol_t *)(symbol))->class_alloc = -1; ((esymbol_t *)(symbol))->class_offset = 0; ((esymbol_t *)(symbol))->stamp = -3; return BSYMBOL( symbol ); }
void tracker_add_exit (tracker_t *tracker, pid_t pid) { exit_t event; event.header = MAKE_HEADER (EXIT, pid); tracker_append (tracker, &event, sizeof (event)); }
void tracker_add_fork (tracker_t *tracker, pid_t pid, pid_t child_pid) { fork_t event; event.header = MAKE_HEADER(FORK, pid); event.child_pid = child_pid; tracker_append (tracker, &event, sizeof (event)); }
void tracker_add_sample (tracker_t *tracker, pid_t pid, uint64_t *ips, int n_ips) { sample_t event; event.header = MAKE_HEADER (SAMPLE, pid); event.trace = stack_stash_add_trace (tracker->stash, ips, n_ips, 1); tracker_append (tracker, &event, sizeof (event)); }
/*---------------------------------------------------------------------*/ BGL_RUNTIME_DEF obj_t cobj_to_foreign( obj_t id, void *cobj ) { obj_t handle; handle = GC_MALLOC( FOREIGN_SIZE ); handle->foreign_t.header = MAKE_HEADER( FOREIGN_TYPE, FOREIGN_SIZE ); handle->foreign_t.cobj = (void *)cobj; handle->foreign_t.id = id; return BREF( handle ); }
void tracker_add_process (tracker_t * tracker, pid_t pid, const char *command_line) { new_process_t event; #if 0 g_print ("Add new process %s %d to tracker ", command_line, pid); #endif event.header = MAKE_HEADER (NEW_PROCESS, pid); COPY_STRING (event.command_line, command_line); tracker_append (tracker, &event, sizeof (event)); }
void tracker_add_map (tracker_t * tracker, pid_t pid, uint64_t start, uint64_t end, uint64_t offset, uint64_t inode, const char *filename) { new_map_t event; event.header = MAKE_HEADER (NEW_MAP, pid); COPY_STRING (event.filename, filename); event.start = start; event.end = end; event.offset = offset; event.inode = inode; tracker_append (tracker, &event, sizeof (event)); }
/*---------------------------------------------------------------------*/ static obj_t tm_to_date( struct tm *tm ) { obj_t date; date = GC_MALLOC_ATOMIC( BGL_DATE_SIZE ); date->date_t.header = MAKE_HEADER( DATE_TYPE, 0 ); date->date_t.timezone = BGL_TIMEZONE; date->date_t.sec = tm->tm_sec; date->date_t.min = tm->tm_min; date->date_t.hour = tm->tm_hour; date->date_t.mday = tm->tm_mday; date->date_t.mon = tm->tm_mon + 1; date->date_t.year = tm->tm_year + 1900; date->date_t.wday = tm->tm_wday + 1; date->date_t.yday = tm->tm_yday + 1; date->date_t.isdst = tm->tm_isdst; return BREF( date ); }
/* Bootstrap of pre-allocated objects. */ /*=====================================================================*/ #include <stdio.h> #include <bigloo.h> /*---------------------------------------------------------------------*/ /* Les objects vitaux ... */ /*---------------------------------------------------------------------*/ obj_t an_object; obj_t quote; obj_t *c_allocated_char; obj_t bprof_port = BUNSPEC; BGL_RUNTIME_DEF header_t bgl_opaque_nil = MAKE_HEADER( OPAQUE_TYPE, 0 ); /*---------------------------------------------------------------------*/ /* Global mutex */ /*---------------------------------------------------------------------*/ BGL_RUNTIME_DEF obj_t bigloo_mutex = BUNSPEC; BGL_RUNTIME_DEF obj_t bigloo_generic_mutex = BUNSPEC; DEFINE_STRING( bigloo_mutex_name, _1, "bigloo-mutex", 12 ); /*---------------------------------------------------------------------*/ /* Global floating point constants */ /*---------------------------------------------------------------------*/ double bgl_nan(), bgl_infinity(); BGL_RUNTIME_DEF obj_t bigloo_nan, bigloo_infinity, bigloo_minfinity; /*---------------------------------------------------------------------*/