Version:
~ [ 0.6-2.3.46 ] ~
Architecture:
~ [ um ] ~
** Warning: Cannot open xref database.
1 #ifndef __PROC_UTIL_H__
2 #define __PROC_UTIL_H__
3
4 #define LONG_LEN (8)
5 #define PERM_LEN (4)
6 #define DEV_LEN (2)
7 #define LONG_DEC_LEN (10)
8 #define SIG_LEN (2)
9
10 #ifndef _UNISTD_H
11 extern int write(int, const char *, int);
12 #endif
13
14 #define y(s) #s
15 #define yy(s) y(s)
16
17 #define PROC_UNTESTED() \
18 do { char buf[100]; \
19 static int stop_here = 1; \
20 if(stop_here){ \
21 sprintf(buf, "Untested (%d) [0x%p]: " __FILE__ " line " yy(__LINE__) \
22 "\n", getpid(), &stop_here); \
23 write(1, buf, strlen(buf)); \
24 stop(); \
25 } \
26 } while(0)
27
28 enum { OP_NONE, OP_EXEC, OP_SWITCH, OP_THREAD, OP_INPUT, OP_FORK,
29 OP_FORK_FINISH };
30
31 enum { INPUT_NONE, INPUT_HALT, INPUT_REBOOT, INPUT_NEW_FD };
32
33 struct init_thread {
34 int (*proc)(void *);
35 void *sp;
36 };
37
38 struct cpu_task {
39 int pid;
40 void *task;
41 };
42
43 struct reg_fd {
44 int fd;
45 void (*proc)(int);
46 };
47
48 extern struct reg_fd reg_fd[];
49
50 extern struct cpu_task cpu_tasks[];
51
52 extern int physmem_fd;
53
54 extern unsigned long low_physmem;
55 extern unsigned long high_physmem;
56 extern unsigned long physmem;
57 extern unsigned long end_vm;
58 extern unsigned long start_vm;
59
60 extern int physmem_inode;
61
62 extern int open_maps(void);
63 extern int read_map(int fd, unsigned long *start_out, unsigned long *end_out,
64 char *r_out, char *w_out, char *x_out, char *p_out,
65 unsigned long *offset_out, unsigned long *major_out,
66 unsigned long *minor_out, unsigned int *inode_out);
67 extern void close_maps(int fd);
68 extern unsigned long get_brk(void);
69 extern int file_size(char *file);
70 extern void stop(void);
71 extern int proc_start_thread(unsigned long ip, unsigned long sp);
72 extern void child_handler(int sig);
73 extern int linux_wait(int pid, int *status, int flags);
74 extern int linux_getpid(void);
75 extern void stack_protections(unsigned long address, int len);
76 extern void abandon_proc_space(int (*proc)(void *), unsigned long sp);
77 extern int signals(void *unused);
78 extern unsigned long setup_memory(unsigned long total_size,
79 unsigned long physmem_size, int *fd_out,
80 int *inode_out);
81 extern void map(unsigned long virt, unsigned long phys, unsigned long len,
82 int r, int w, int x);
83 extern void unmap(unsigned long address, unsigned long len);
84 extern void protect(unsigned long addr, unsigned long len, int r, int w,
85 int x);
86 extern void stop_pid(int pid);
87 extern void kill_pid(int pid);
88 extern void trap_pid(int pid);
89 extern void usr1_pid(int pid);
90 extern void cont_pid(int pid);
91 extern int __personality(int);
92 extern void signal_handler(void *task, unsigned long handler, int sig);
93 extern void syscall_handler(int sig);
94 extern int have_syscall_result(void *t, int *result_out);
95 extern void do_syscall(void *task, int pid);
96 extern void kern_segv_handler(int sig);
97 extern void user_segv_handler(int sig);
98 extern void wait_for_stop(int pid, int sig);
99 extern void *add_signal_handler(int sig, void (*handler)(int));
100 extern void signal_init(void);
101 extern void start_syscall_thread(void);
102 extern void finish_exec(int pid, unsigned long ip, unsigned long sp);
103 extern int trampoline(void *unused);
104 extern int start_fork_tramp(unsigned long *saved_regs,
105 unsigned long sig_stack, unsigned long temp_stack);
106 extern void register_pid(int pid, int is_main);
107 extern int kill_aux_pids(void);
108 extern void trace_myself(void);
109 extern void block_shlib_mem(void);
110 extern void unblock_shlib_mem(void);
111 extern void get_profile_timer(void);
112 extern void set_timers(void);
113 extern int clone_and_wait(int (*fn)(void *), void *arg, void *sp, int flags);
114 extern int get_main_pid(void);
115 extern int input_loop(void);
116 extern void usr1_and_wait(int pid);
117 extern void set_sigstack(void *sig_stack, int sig, void (*handler)(int),
118 int alt_stack, int nodefer, int mask_sig);
119 extern void (*set_signal_handler(int sig, void (*new_handler)(int)))(int);
120 extern void continue_execing_proc(int pid);
121 extern int linux_main(int argc, char **argv);
122 extern void remap_data(char *perms);
123 extern int getmaster(char *line);
124 extern void set_cmdline(char *cmd);
125 extern void continue_fork(int pid, unsigned long *regs);
126
127 #endif
128
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.