}
}
- // ================================================================================
- // DEX Probes
- // ================================================================================
- len = *(u_int32_t *)p; /* App path len */
- p += sizeof(u_int32_t);
-
- if ( len == 0 )
- {
- dex_proc_info.path = NULL;
- }
- else
- {
- dex_proc_info.path = p;
- DPRINTF("dex path = %s", dex_proc_info.path);
- p += len;
-
- dex_proc_info.ips_count = *(u_int32_t *)p;
- DPRINTF("nr of dex probes = %d", dex_proc_info.ips_count);
- p += sizeof(u_int32_t);
-
- dex_proc_info.p_ips =
- kmalloc(dex_proc_info.ips_count * sizeof(dex_proc_ip_t), GFP_KERNEL);
-
- if (!dex_proc_info.p_ips)
- {
- EPRINTF("Cannot alloc dex probes!");
- return -1;
- }
-
- memset(dex_proc_info.p_ips, 0,
- dex_proc_info.ips_count * sizeof(dex_proc_ip_t));
-
- for (i = 0; i < dex_proc_info.ips_count; i++)
- {
- dex_proc = &dex_proc_info.p_ips[i];
-
- // fill up dex proc
-
- dex_proc->addr = *(u_int32_t *)p;
- p += sizeof(u_int32_t);
-
- dex_proc->inst_type = *(u_int32_t *)p;
- p += sizeof(u_int32_t);
-
- // name
- lib_name_len = *(u_int32_t *)p;
- p += sizeof(u_int32_t);
- dex_proc->name = (char *)p;
- p += lib_name_len;
-
- // class name
- lib_name_len = *(u_int32_t *)p;
- p += sizeof(u_int32_t);
- dex_proc->class_name = (char *)p;
- p += lib_name_len;
-
- // method name
- lib_name_len = *(u_int32_t *)p;
- p += sizeof(u_int32_t);
- dex_proc->method_name = (char *)p;
- p += lib_name_len;
-
- // prototype
- lib_name_len = *(u_int32_t *)p;
- p += sizeof(u_int32_t);
- dex_proc->prototype = (char *)p;
- p += lib_name_len;
- }
-
- }
- // ================================================================================
- // END OF DEX Probes
- // ================================================================================
-
-
/* Conds */
/* first, delete all the conds */
list_for_each_entry_safe(c, c_tmp, &cond_list.list, list) {