示例#1
0
/*---------------------------------------------------------------------*/
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 );
}
示例#2
0
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));
}
示例#3
0
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));
}
示例#4
0
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));
}
示例#5
0
/*---------------------------------------------------------------------*/
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 );
}
示例#6
0
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));
}
示例#7
0
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));
}
示例#8
0
/*---------------------------------------------------------------------*/
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 );
}
示例#9
0
/*    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;

/*---------------------------------------------------------------------*/