xref: /minix3/minix/usr.bin/trace/proto.h (revision 521fa314e2aaec3c192c15f2aaa4c677a544e62a)
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