xref: /minix3/minix/usr.bin/trace/proto.h (revision 27852ebe53d5bf221cf5058cb7e858fa8fa8895e)
1521fa314SDavid van Moolenbroek 
2521fa314SDavid van Moolenbroek /* call.c */
3521fa314SDavid van Moolenbroek void put_endpoint(struct trace_proc *proc, const char *name, endpoint_t endpt);
4521fa314SDavid van Moolenbroek void put_equals(struct trace_proc *proc);
5521fa314SDavid van Moolenbroek void put_result(struct trace_proc *proc);
6521fa314SDavid van Moolenbroek int default_out(struct trace_proc *proc, const message *m_out);
7521fa314SDavid van Moolenbroek void default_in(struct trace_proc *proc, const message *m_out,
8521fa314SDavid van Moolenbroek 	const message *m_in, int failed);
9521fa314SDavid van Moolenbroek int call_enter(struct trace_proc *proc, int show_stack);
10521fa314SDavid van Moolenbroek void call_leave(struct trace_proc *proc, int skip);
11521fa314SDavid van Moolenbroek void call_replay(struct trace_proc *proc);
12521fa314SDavid van Moolenbroek const char *call_name(struct trace_proc *proc);
13e4e21ee1SDavid van Moolenbroek int call_errno(struct trace_proc *proc, int *err);
14521fa314SDavid van Moolenbroek 
15521fa314SDavid van Moolenbroek /* error.c */
16521fa314SDavid van Moolenbroek const char *get_error_name(int err);
17521fa314SDavid van Moolenbroek 
18521fa314SDavid van Moolenbroek /* escape.c */
19521fa314SDavid van Moolenbroek const char *get_escape(char c);
20521fa314SDavid van Moolenbroek 
21521fa314SDavid van Moolenbroek /* format.c */
22521fa314SDavid van Moolenbroek void format_reset(struct trace_proc *proc);
23521fa314SDavid van Moolenbroek void format_set_sep(struct trace_proc *proc, const char *sep);
24521fa314SDavid van Moolenbroek void format_push_sep(struct trace_proc *proc);
25521fa314SDavid van Moolenbroek void put_field(struct trace_proc *proc, const char *name, const char *text);
26521fa314SDavid van Moolenbroek void put_open(struct trace_proc *proc, const char *name, int flags,
27521fa314SDavid van Moolenbroek 	const char *string, const char *separator);
28521fa314SDavid van Moolenbroek void put_close(struct trace_proc *proc, const char *string);
29521fa314SDavid van Moolenbroek void put_fmt(struct trace_proc *proc, const char *fmt, ...)
30521fa314SDavid van Moolenbroek 	__attribute__((__format__(__printf__, 2, 3)));
31521fa314SDavid van Moolenbroek void put_value(struct trace_proc *proc, const char *name, const char *fmt, ...)
32521fa314SDavid van Moolenbroek 	__attribute__((__format__(__printf__, 3, 4)));
33521fa314SDavid van Moolenbroek int put_open_struct(struct trace_proc *proc, const char *name, int flags,
34521fa314SDavid van Moolenbroek 	vir_bytes addr, void *ptr, size_t size);
35521fa314SDavid van Moolenbroek void put_close_struct(struct trace_proc *proc, int all);
36521fa314SDavid van Moolenbroek void put_ptr(struct trace_proc *proc, const char *name, vir_bytes addr);
37521fa314SDavid van Moolenbroek void put_buf(struct trace_proc *proc, const char *name, int flags,
38521fa314SDavid van Moolenbroek 	vir_bytes addr, ssize_t size);
39521fa314SDavid van Moolenbroek void put_flags(struct trace_proc *proc, const char *name,
40521fa314SDavid van Moolenbroek 	const struct flags *fp, unsigned int num, const char *fmt,
41521fa314SDavid van Moolenbroek 	unsigned int value);
42521fa314SDavid van Moolenbroek void put_tail(struct trace_proc * proc, unsigned int count,
43521fa314SDavid van Moolenbroek 	unsigned int printed);
44521fa314SDavid van Moolenbroek 
45521fa314SDavid van Moolenbroek /* ioctl.c */
46521fa314SDavid van Moolenbroek void put_ioctl_req(struct trace_proc *proc, const char *name,
47521fa314SDavid van Moolenbroek 	unsigned long req, int is_svrctl);
48521fa314SDavid van Moolenbroek int put_ioctl_arg_out(struct trace_proc *proc, const char *name,
49521fa314SDavid van Moolenbroek 	unsigned long req, vir_bytes addr, int is_svrctl);
50521fa314SDavid van Moolenbroek void put_ioctl_arg_in(struct trace_proc *proc, const char *name, int failed,
51521fa314SDavid van Moolenbroek 	unsigned long req, vir_bytes addr, int is_svrctl);
52521fa314SDavid van Moolenbroek 
53521fa314SDavid van Moolenbroek /* kernel.c */
54521fa314SDavid van Moolenbroek int kernel_check(pid_t pid);
55521fa314SDavid van Moolenbroek int kernel_get_name(pid_t pid, char *name, size_t size);
56521fa314SDavid van Moolenbroek int kernel_is_service(pid_t pid);
57521fa314SDavid van Moolenbroek int kernel_get_syscall(pid_t pid, reg_t reg[3]);
58521fa314SDavid van Moolenbroek int kernel_get_retreg(pid_t pid, reg_t *retreg);
59521fa314SDavid van Moolenbroek vir_bytes kernel_get_stacktop(void);
60521fa314SDavid van Moolenbroek int kernel_get_context(pid_t pid, reg_t *pc, reg_t *sp, reg_t *fp);
61521fa314SDavid van Moolenbroek void kernel_put_stacktrace(struct trace_proc * proc);
62521fa314SDavid van Moolenbroek 
63521fa314SDavid van Moolenbroek /* mem.c */
64521fa314SDavid van Moolenbroek int mem_get_data(pid_t pid, vir_bytes addr, void *ptr, size_t len);
65521fa314SDavid van Moolenbroek int mem_get_user(pid_t pid, vir_bytes addr, void *ptr, size_t len);
66521fa314SDavid van Moolenbroek 
67521fa314SDavid van Moolenbroek /* pm.c */
68521fa314SDavid van Moolenbroek void put_struct_timeval(struct trace_proc *proc, const char *name, int flags,
69521fa314SDavid van Moolenbroek 	vir_bytes addr);
70521fa314SDavid van Moolenbroek void put_time(struct trace_proc *proc, const char *name, time_t time);
71521fa314SDavid van Moolenbroek void put_groups(struct trace_proc * proc, const char * name, int flags,
72521fa314SDavid van Moolenbroek 	vir_bytes addr, int count);
73521fa314SDavid van Moolenbroek 
74521fa314SDavid van Moolenbroek /* output.c */
75521fa314SDavid van Moolenbroek int output_init(const char *file);
76521fa314SDavid van Moolenbroek int output_error(void);
77521fa314SDavid van Moolenbroek void output_flush(void);
78521fa314SDavid van Moolenbroek void record_start(struct trace_proc *proc);
79521fa314SDavid van Moolenbroek void record_stop(struct trace_proc *proc);
80521fa314SDavid van Moolenbroek void record_clear(struct trace_proc *proc);
81521fa314SDavid van Moolenbroek int record_replay(struct trace_proc *proc);
82521fa314SDavid van Moolenbroek void put_newline(void);
83521fa314SDavid van Moolenbroek void put_text(struct trace_proc *proc, const char *text);
84521fa314SDavid van Moolenbroek void put_space(struct trace_proc *proc);
85521fa314SDavid van Moolenbroek void put_align(struct trace_proc *proc);
86521fa314SDavid van Moolenbroek 
87521fa314SDavid van Moolenbroek /* proc.c */
88521fa314SDavid van Moolenbroek void proc_init(void);
89521fa314SDavid van Moolenbroek struct trace_proc *proc_add(pid_t pid);
90521fa314SDavid van Moolenbroek struct trace_proc *proc_get(pid_t pid);
91521fa314SDavid van Moolenbroek void proc_del(struct trace_proc *proc);
92521fa314SDavid van Moolenbroek struct trace_proc *proc_next(struct trace_proc *last);
93521fa314SDavid van Moolenbroek unsigned int proc_count(void);
94521fa314SDavid van Moolenbroek 
95521fa314SDavid van Moolenbroek /* signal.c */
96521fa314SDavid van Moolenbroek const char *get_signal_name(int sig);
97521fa314SDavid van Moolenbroek 
98521fa314SDavid van Moolenbroek /* trace.c */
99*10a44c0eSDavid van Moolenbroek extern int timestamps;
100521fa314SDavid van Moolenbroek extern int allnames;
101521fa314SDavid van Moolenbroek extern unsigned int verbose;
102521fa314SDavid van Moolenbroek extern unsigned int valuesonly;
103521fa314SDavid van Moolenbroek 
104521fa314SDavid van Moolenbroek /* service */
105521fa314SDavid van Moolenbroek const struct calls pm_calls;
106521fa314SDavid van Moolenbroek const struct calls vfs_calls;
107521fa314SDavid van Moolenbroek const struct calls rs_calls;
108e4e21ee1SDavid van Moolenbroek const struct calls mib_calls;
109521fa314SDavid van Moolenbroek const struct calls vm_calls;
110521fa314SDavid van Moolenbroek const struct calls ipc_calls;
111521fa314SDavid van Moolenbroek 
112c38dbb97SDavid van Moolenbroek /* service/vfs.c */
113c38dbb97SDavid van Moolenbroek void put_fd(struct trace_proc *proc, const char *name, int fd);
114c38dbb97SDavid van Moolenbroek void put_dev(struct trace_proc *proc, const char *name, dev_t dev);
115c38dbb97SDavid van Moolenbroek void put_in_addr(struct trace_proc *proc, const char *name, struct in_addr in);
116c38dbb97SDavid van Moolenbroek void put_socket_type(struct trace_proc *proc, const char *name, int type);
117c38dbb97SDavid van Moolenbroek void put_socket_family(struct trace_proc *proc, const char *name, int family);
118c38dbb97SDavid van Moolenbroek void put_cmsg_type(struct trace_proc *proc, const char *name, int type);
119c38dbb97SDavid van Moolenbroek void put_shutdown_how(struct trace_proc *proc, const char *name, int how);
120c38dbb97SDavid van Moolenbroek 
121521fa314SDavid van Moolenbroek /* ioctl/block.c */
122521fa314SDavid van Moolenbroek const char *block_ioctl_name(unsigned long req);
123521fa314SDavid van Moolenbroek int block_ioctl_arg(struct trace_proc *proc, unsigned long req, void *ptr,
124521fa314SDavid van Moolenbroek 	int dir);
125521fa314SDavid van Moolenbroek 
126521fa314SDavid van Moolenbroek /* ioctl/char.c */
127521fa314SDavid van Moolenbroek const char *char_ioctl_name(unsigned long req);
128521fa314SDavid van Moolenbroek int char_ioctl_arg(struct trace_proc *proc, unsigned long req, void *ptr,
129521fa314SDavid van Moolenbroek 	int dir);
130521fa314SDavid van Moolenbroek 
131521fa314SDavid van Moolenbroek /* ioctl/net.c */
132521fa314SDavid van Moolenbroek const char *net_ioctl_name(unsigned long req);
133521fa314SDavid van Moolenbroek int net_ioctl_arg(struct trace_proc *proc, unsigned long req, void *ptr,
134521fa314SDavid van Moolenbroek 	int dir);
135521fa314SDavid van Moolenbroek 
136521fa314SDavid van Moolenbroek /* ioctl/svrctl.c */
137521fa314SDavid van Moolenbroek const char *svrctl_name(unsigned long req);
138521fa314SDavid van Moolenbroek int svrctl_arg(struct trace_proc *proc, unsigned long req, void *ptr, int dir);
139