1*521fa314SDavid van Moolenbroek 2*521fa314SDavid van Moolenbroek /* call.c */ 3*521fa314SDavid van Moolenbroek void put_endpoint(struct trace_proc *proc, const char *name, endpoint_t endpt); 4*521fa314SDavid van Moolenbroek void put_equals(struct trace_proc *proc); 5*521fa314SDavid van Moolenbroek void put_result(struct trace_proc *proc); 6*521fa314SDavid van Moolenbroek int default_out(struct trace_proc *proc, const message *m_out); 7*521fa314SDavid van Moolenbroek void default_in(struct trace_proc *proc, const message *m_out, 8*521fa314SDavid van Moolenbroek const message *m_in, int failed); 9*521fa314SDavid van Moolenbroek int call_enter(struct trace_proc *proc, int show_stack); 10*521fa314SDavid van Moolenbroek void call_leave(struct trace_proc *proc, int skip); 11*521fa314SDavid van Moolenbroek void call_replay(struct trace_proc *proc); 12*521fa314SDavid van Moolenbroek const char *call_name(struct trace_proc *proc); 13*521fa314SDavid van Moolenbroek 14*521fa314SDavid van Moolenbroek /* error.c */ 15*521fa314SDavid van Moolenbroek const char *get_error_name(int err); 16*521fa314SDavid van Moolenbroek 17*521fa314SDavid van Moolenbroek /* escape.c */ 18*521fa314SDavid van Moolenbroek const char *get_escape(char c); 19*521fa314SDavid van Moolenbroek 20*521fa314SDavid van Moolenbroek /* format.c */ 21*521fa314SDavid van Moolenbroek void format_reset(struct trace_proc *proc); 22*521fa314SDavid van Moolenbroek void format_set_sep(struct trace_proc *proc, const char *sep); 23*521fa314SDavid van Moolenbroek void format_push_sep(struct trace_proc *proc); 24*521fa314SDavid van Moolenbroek void put_field(struct trace_proc *proc, const char *name, const char *text); 25*521fa314SDavid van Moolenbroek void put_open(struct trace_proc *proc, const char *name, int flags, 26*521fa314SDavid van Moolenbroek const char *string, const char *separator); 27*521fa314SDavid van Moolenbroek void put_close(struct trace_proc *proc, const char *string); 28*521fa314SDavid van Moolenbroek void put_fmt(struct trace_proc *proc, const char *fmt, ...) 29*521fa314SDavid van Moolenbroek __attribute__((__format__(__printf__, 2, 3))); 30*521fa314SDavid van Moolenbroek void put_value(struct trace_proc *proc, const char *name, const char *fmt, ...) 31*521fa314SDavid van Moolenbroek __attribute__((__format__(__printf__, 3, 4))); 32*521fa314SDavid van Moolenbroek int put_open_struct(struct trace_proc *proc, const char *name, int flags, 33*521fa314SDavid van Moolenbroek vir_bytes addr, void *ptr, size_t size); 34*521fa314SDavid van Moolenbroek void put_close_struct(struct trace_proc *proc, int all); 35*521fa314SDavid van Moolenbroek void put_ptr(struct trace_proc *proc, const char *name, vir_bytes addr); 36*521fa314SDavid van Moolenbroek void put_buf(struct trace_proc *proc, const char *name, int flags, 37*521fa314SDavid van Moolenbroek vir_bytes addr, ssize_t size); 38*521fa314SDavid van Moolenbroek void put_flags(struct trace_proc *proc, const char *name, 39*521fa314SDavid van Moolenbroek const struct flags *fp, unsigned int num, const char *fmt, 40*521fa314SDavid van Moolenbroek unsigned int value); 41*521fa314SDavid van Moolenbroek void put_tail(struct trace_proc * proc, unsigned int count, 42*521fa314SDavid van Moolenbroek unsigned int printed); 43*521fa314SDavid van Moolenbroek 44*521fa314SDavid van Moolenbroek /* ioctl.c */ 45*521fa314SDavid van Moolenbroek void put_ioctl_req(struct trace_proc *proc, const char *name, 46*521fa314SDavid van Moolenbroek unsigned long req, int is_svrctl); 47*521fa314SDavid van Moolenbroek int put_ioctl_arg_out(struct trace_proc *proc, const char *name, 48*521fa314SDavid van Moolenbroek unsigned long req, vir_bytes addr, int is_svrctl); 49*521fa314SDavid van Moolenbroek void put_ioctl_arg_in(struct trace_proc *proc, const char *name, int failed, 50*521fa314SDavid van Moolenbroek unsigned long req, vir_bytes addr, int is_svrctl); 51*521fa314SDavid van Moolenbroek 52*521fa314SDavid van Moolenbroek /* kernel.c */ 53*521fa314SDavid van Moolenbroek int kernel_check(pid_t pid); 54*521fa314SDavid van Moolenbroek int kernel_get_name(pid_t pid, char *name, size_t size); 55*521fa314SDavid van Moolenbroek int kernel_is_service(pid_t pid); 56*521fa314SDavid van Moolenbroek int kernel_get_syscall(pid_t pid, reg_t reg[3]); 57*521fa314SDavid van Moolenbroek int kernel_get_retreg(pid_t pid, reg_t *retreg); 58*521fa314SDavid van Moolenbroek vir_bytes kernel_get_stacktop(void); 59*521fa314SDavid van Moolenbroek int kernel_get_context(pid_t pid, reg_t *pc, reg_t *sp, reg_t *fp); 60*521fa314SDavid van Moolenbroek void kernel_put_stacktrace(struct trace_proc * proc); 61*521fa314SDavid van Moolenbroek 62*521fa314SDavid van Moolenbroek /* mem.c */ 63*521fa314SDavid van Moolenbroek int mem_get_data(pid_t pid, vir_bytes addr, void *ptr, size_t len); 64*521fa314SDavid van Moolenbroek int mem_get_user(pid_t pid, vir_bytes addr, void *ptr, size_t len); 65*521fa314SDavid van Moolenbroek 66*521fa314SDavid van Moolenbroek /* pm.c */ 67*521fa314SDavid van Moolenbroek void put_struct_timeval(struct trace_proc *proc, const char *name, int flags, 68*521fa314SDavid van Moolenbroek vir_bytes addr); 69*521fa314SDavid van Moolenbroek void put_time(struct trace_proc *proc, const char *name, time_t time); 70*521fa314SDavid van Moolenbroek void put_groups(struct trace_proc * proc, const char * name, int flags, 71*521fa314SDavid van Moolenbroek vir_bytes addr, int count); 72*521fa314SDavid van Moolenbroek 73*521fa314SDavid van Moolenbroek /* output.c */ 74*521fa314SDavid van Moolenbroek int output_init(const char *file); 75*521fa314SDavid van Moolenbroek int output_error(void); 76*521fa314SDavid van Moolenbroek void output_flush(void); 77*521fa314SDavid van Moolenbroek void record_start(struct trace_proc *proc); 78*521fa314SDavid van Moolenbroek void record_stop(struct trace_proc *proc); 79*521fa314SDavid van Moolenbroek void record_clear(struct trace_proc *proc); 80*521fa314SDavid van Moolenbroek int record_replay(struct trace_proc *proc); 81*521fa314SDavid van Moolenbroek void put_newline(void); 82*521fa314SDavid van Moolenbroek void put_text(struct trace_proc *proc, const char *text); 83*521fa314SDavid van Moolenbroek void put_space(struct trace_proc *proc); 84*521fa314SDavid van Moolenbroek void put_align(struct trace_proc *proc); 85*521fa314SDavid van Moolenbroek 86*521fa314SDavid van Moolenbroek /* proc.c */ 87*521fa314SDavid van Moolenbroek void proc_init(void); 88*521fa314SDavid van Moolenbroek struct trace_proc *proc_add(pid_t pid); 89*521fa314SDavid van Moolenbroek struct trace_proc *proc_get(pid_t pid); 90*521fa314SDavid van Moolenbroek void proc_del(struct trace_proc *proc); 91*521fa314SDavid van Moolenbroek struct trace_proc *proc_next(struct trace_proc *last); 92*521fa314SDavid van Moolenbroek unsigned int proc_count(void); 93*521fa314SDavid van Moolenbroek 94*521fa314SDavid van Moolenbroek /* signal.c */ 95*521fa314SDavid van Moolenbroek const char *get_signal_name(int sig); 96*521fa314SDavid van Moolenbroek 97*521fa314SDavid van Moolenbroek /* trace.c */ 98*521fa314SDavid van Moolenbroek extern int allnames; 99*521fa314SDavid van Moolenbroek extern unsigned int verbose; 100*521fa314SDavid van Moolenbroek extern unsigned int valuesonly; 101*521fa314SDavid van Moolenbroek 102*521fa314SDavid van Moolenbroek /* vfs.c */ 103*521fa314SDavid van Moolenbroek void put_fd(struct trace_proc *proc, const char *name, int fd); 104*521fa314SDavid van Moolenbroek void put_dev(struct trace_proc *proc, const char *name, dev_t dev); 105*521fa314SDavid van Moolenbroek 106*521fa314SDavid van Moolenbroek /* service */ 107*521fa314SDavid van Moolenbroek const struct calls pm_calls; 108*521fa314SDavid van Moolenbroek const struct calls vfs_calls; 109*521fa314SDavid van Moolenbroek const struct calls rs_calls; 110*521fa314SDavid van Moolenbroek const struct calls vm_calls; 111*521fa314SDavid van Moolenbroek const struct calls ipc_calls; 112*521fa314SDavid van Moolenbroek 113*521fa314SDavid van Moolenbroek /* ioctl/block.c */ 114*521fa314SDavid van Moolenbroek const char *block_ioctl_name(unsigned long req); 115*521fa314SDavid van Moolenbroek int block_ioctl_arg(struct trace_proc *proc, unsigned long req, void *ptr, 116*521fa314SDavid van Moolenbroek int dir); 117*521fa314SDavid van Moolenbroek 118*521fa314SDavid van Moolenbroek /* ioctl/char.c */ 119*521fa314SDavid van Moolenbroek const char *char_ioctl_name(unsigned long req); 120*521fa314SDavid van Moolenbroek int char_ioctl_arg(struct trace_proc *proc, unsigned long req, void *ptr, 121*521fa314SDavid van Moolenbroek int dir); 122*521fa314SDavid van Moolenbroek 123*521fa314SDavid van Moolenbroek /* ioctl/net.c */ 124*521fa314SDavid van Moolenbroek const char *net_ioctl_name(unsigned long req); 125*521fa314SDavid van Moolenbroek int net_ioctl_arg(struct trace_proc *proc, unsigned long req, void *ptr, 126*521fa314SDavid van Moolenbroek int dir); 127*521fa314SDavid van Moolenbroek 128*521fa314SDavid van Moolenbroek /* ioctl/svrctl.c */ 129*521fa314SDavid van Moolenbroek const char *svrctl_name(unsigned long req); 130*521fa314SDavid van Moolenbroek int svrctl_arg(struct trace_proc *proc, unsigned long req, void *ptr, int dir); 131