core/kernel_linux/clients/umbra/umbra.c
/* initialize thread private data structure for umbra */
initialize thread private data structure for umbra
initialize thread private data structure for umbra
void
umbra_thread_init(void *drcontext)
{
    umbra_info_t *info;
    info = (umbra_info_t *)
        dr_thread_alloc(drcontext, sizeof(umbra_info_t));
#ifdef LINUX_KERNEL
    __get_cpu_var(cpu_umbra_info) = info;
#endif
    dr_set_tls_field      (drcontext, info);
    umbra_info_init       (drcontext, info);
    table_thread_init     (drcontext, info);
    cfg_thread_init       (drcontext, info);
    shadow_thread_init    (drcontext, info);
    analyzer_thread_init  (drcontext, info);
    instrument_thread_init(drcontext, info);
    if (proc_info.client.thread_init != NULL)
        proc_info.client.thread_init(drcontext, info);
}
void umbra_thread_init ( void * drcontext ) { umbra_info_t * info ; info = ( umbra_info_t * ) dr_thread_alloc ( drcontext , sizeof ( umbra_info_t ) ) ; #ifdef LINUX_KERNEL __get_cpu_var ( cpu_umbra_info ) = info ; #endif dr_set_tls_field ( drcontext , info ) ; umbra_info_init ( drcontext , info ) ; table_thread_init ( drcontext , info ) ; cfg_thread_init ( drcontext , info ) ; shadow_thread_init ( drcontext , info ) ; analyzer_thread_init ( drcontext , info ) ; instrument_thread_init ( drcontext , info ) ; if ( proc_info . client . thread_init != NULL ) proc_info . client . thread_init ( drcontext , info ) ; }
initialize thread private data structure for umbra
initialize thread private data structure for umbra
/* initialize thread private umbra_info */