Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2787 | decky | 1 | |
2 | /** @addtogroup tdebug |
||
3 | * @{ |
||
4 | */ |
||
5 | /** @file |
||
6 | */ |
||
7 | |||
8 | #ifndef KERN_TDEBUG_H_ |
||
9 | #define KERN_TDEBUG_H_ |
||
10 | |||
11 | #include <atomic.h> |
||
12 | #include <arch/types.h> |
||
13 | #include <tdebug/tdebug_type.h> |
||
14 | #include <arch.h> |
||
15 | |||
16 | /* |
||
17 | * Managing tdebug structures. |
||
18 | */ |
||
19 | void tdebug_task_init(struct task *ta); |
||
20 | void tdebug_thread_init(struct thread *t); |
||
21 | void tdebug_cleanup(void); |
||
22 | |||
23 | /* |
||
24 | * Creating hooks at strategic points in the kernel. |
||
25 | */ |
||
26 | |||
27 | void tdebug_syscall_event(unative_t a1, unative_t a2, unative_t a3, |
||
28 | unative_t a4, unative_t a5, unative_t a6, unative_t id, unative_t rc); |
||
29 | void tdebug_exception_event(int n); |
||
30 | void tdebug_stopping_point(void); |
||
31 | |||
32 | static inline int tdebug_have_monitor() |
||
33 | { |
||
34 | return atomic_get(&TASK->tdebug.have_monitor); |
||
35 | } |
||
36 | |||
37 | /* |
||
38 | * Used to implement tdebug syscalls |
||
39 | */ |
||
40 | int tdebug_attach_task(task_id_t taskid, unative_t method); |
||
41 | int tdebug_detach_task(task_id_t taskid); |
||
42 | int tdebug_continue_thread(thread_id_t tid); |
||
43 | int tdebug_get_syscall_args(thread_id_t tid, unative_t *sc_args); |
||
44 | int tdebug_set_event_mask(thread_id_t tid, unative_t ev_mask); |
||
45 | int tdebug_stop_thread(thread_id_t tid); |
||
46 | int tdebug_stop_task(task_id_t taskid); |
||
47 | |||
48 | #endif |
||
49 | |||
50 | /** @} |
||
51 | */ |