Trace


Files

file  errors.c
file  errors.h
file  ipc_desc.c
file  ipc_desc.h
file  ipcp.c
file  ipcp.h
file  proto.c
file  proto.h
file  syscalls.c
file  syscalls.h
file  trace.c
file  trace.h

Data Structures

struct  connection_t
struct  err_desc_t
struct  ipc_m_desc_t
struct  method_oper_t
struct  oper_t
struct  pending_call_t
struct  proto_t
struct  sc_desc_t
struct  srv_proto_t

Defines

#define IPCP_CALLID_SYNC   0
#define MAX_PHONE   64
#define METHOD_OPER_TABLE_CHAINS   32
#define OPER_MAX_ARGS   (IPC_CALL_LEN - 1)
#define PCALL_TABLE_CHAINS   32
#define SRV_PROTO_TABLE_CHAINS   32
#define THBUF_SIZE   64

Enumerations

enum  display_mask_t {
  DM_THREAD = 1, DM_SYSCALL = 2, DM_IPC = 4, DM_SYSTEM = 8,
  DM_USER = 16
}
 Classes of events that can be displayed. More...
enum  val_type_t

Functions

static int cev_fibril (void *arg)
static void cev_fibril_start (void)
static int connect_task (task_id_t task_id)
static void event_syscall_b (unsigned thread_id, uintptr_t thread_hash, unsigned sc_id, sysarg_t sc_rc)
static void event_syscall_e (unsigned thread_id, uintptr_t thread_hash, unsigned sc_id, sysarg_t sc_rc)
static void event_thread_b (uintptr_t hash)
static int get_thread_list (void)
static void ipc_m_print (proto_t *proto, sysarg_t method)
void ipcp_call_in (ipc_call_t *call, ipc_callid_t hash)
void ipcp_call_out (int phone, ipc_call_t *call, ipc_callid_t hash)
void ipcp_call_sync (int phone, ipc_call_t *call, ipc_call_t *answer)
void ipcp_cleanup (void)
void ipcp_connection_clear (int phone)
void ipcp_connection_set (int phone, int server, proto_t *proto)
void ipcp_hangup (int phone, int rc)
void ipcp_init (void)
int main (int argc, char *argv[])
 Main entry point.
static void main_init (void)
static int method_oper_compare (unsigned long key[], hash_count_t keys, link_t *item)
static hash_index_t method_oper_hash (unsigned long key[])
static void method_oper_remove_callback (link_t *item)
oper_toper_new (const char *name, int argc, val_type_t *arg_types, val_type_t rv_type, int respc, val_type_t *resp_types)
static void oper_struct_init (oper_t *oper, const char *name)
static void parse_answer (ipc_callid_t hash, pending_call_t *pcall, ipc_call_t *answer)
static int parse_args (int argc, char *argv[])
static display_mask_t parse_display_mask (const char *text)
static int pending_call_compare (unsigned long key[], hash_count_t keys, link_t *item)
static hash_index_t pending_call_hash (unsigned long key[])
static void pending_call_remove_callback (link_t *item)
static loader_tpreload_task (const char *path, char **argv, task_id_t *task_id)
static void print_sc_args (sysarg_t *sc_args, int n)
static void print_sc_retval (sysarg_t retval, val_type_t val_type)
static void print_syntax ()
static void program_run (void)
static int program_run_fibril (void *arg)
void proto_add_oper (proto_t *proto, int method, oper_t *oper)
void proto_cleanup (void)
void proto_delete (proto_t *proto)
proto_tproto_get_by_srv (int srv)
oper_tproto_get_oper (proto_t *proto, int method)
void proto_init (void)
proto_tproto_new (const char *name)
void proto_register (int srv, proto_t *proto)
static void proto_struct_init (proto_t *proto, const char *name)
static void sc_ipc_call_async_fast (sysarg_t *sc_args, sysarg_t sc_rc)
static void sc_ipc_call_async_slow (sysarg_t *sc_args, sysarg_t sc_rc)
static void sc_ipc_call_sync_fast (sysarg_t *sc_args)
static void sc_ipc_call_sync_slow_b (unsigned thread_id, sysarg_t *sc_args)
static void sc_ipc_call_sync_slow_e (unsigned thread_id, sysarg_t *sc_args)
static void sc_ipc_wait (sysarg_t *sc_args, int sc_rc)
static int srv_proto_compare (unsigned long key[], hash_count_t keys, link_t *item)
static hash_index_t srv_proto_hash (unsigned long key[])
static void srv_proto_remove_callback (link_t *item)
void thread_trace_start (uintptr_t thread_hash)
static int trace_loop (void *thread_hash_arg)
static void trace_task (task_id_t task_id)
void val_print (sysarg_t val, val_type_t v_type)

Variables

bool abort_trace
static console_event_t cev
static bool cev_valid
connection_t connections [MAX_PHONE]
display_mask_t display_mask
 Combination of events to print.
display_mask_t display_mask
 Combination of events to print.
const err_desc_t err_desc []
const err_desc_t err_desc []
int have_conn [MAX_PHONE]
ipc_m_desc_t ipc_methods []
ipc_m_desc_t ipc_methods []
hash_table_operations_t method_oper_ops
int n_threads
int next_thread_id
static bool paused
hash_table_operations_t pending_call_ops
hash_table_t pending_calls
int phoneid
static proto_tproto_console
proto_tproto_system
 Protocol describing system IPC methods.
proto_tproto_unknown
 Protocol with no known methods.
hash_table_t srv_proto
hash_table_t srv_proto
hash_table_operations_t srv_proto_ops
static fibril_condvar_t state_cv
static fibril_mutex_t state_lock
const sc_desc_t syscall_desc []
const sc_desc_t syscall_desc []
static task_id_t task_id
static loader_ttask_ldr
static bool task_wait_for
uintptr_t thash
uintptr_t thread_hash_buf [THBUF_SIZE]
ipc_call_t thread_ipc_req [THBUF_SIZE]

Enumeration Type Documentation

enum display_mask_t

Classes of events that can be displayed.

Can be or-ed together.

Enumerator:
DM_THREAD  Thread creation and termination events.
DM_SYSCALL  System calls.
DM_IPC  Low-level IPC.
DM_SYSTEM  Sysipc protocol.
DM_USER  User IPC protocols.

Definition at line 43 of file trace.h.


Function Documentation

int main ( int  argc,
char *  argv[] 
)

Main entry point.

Returns:
Zero on success, non-zero on error.

Definition at line 968 of file trace.c.


Generated on Thu Jun 2 07:45:57 2011 for HelenOS/USB by  doxygen 1.4.7