Subversion Repositories HelenOS

Rev

Rev 2921 | Rev 3015 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2921 Rev 3014
Line 33... Line 33...
33
 */
33
 */
34
 
34
 
35
#ifndef KERN_UDEBUG_H_
35
#ifndef KERN_UDEBUG_H_
36
#define KERN_UDEBUG_H_
36
#define KERN_UDEBUG_H_
37
 
37
 
-
 
38
#include <ipc/ipc.h>
-
 
39
 
38
typedef enum { /* udebug_method_t */
40
typedef enum { /* udebug_method_t */
39
 
41
 
40
/** Start debugging the recipient.
42
/** Start debugging the recipient.
41
 * Causes all threads in the receiving task to stop. When they
43
 * Causes all threads in the receiving task to stop. When they
42
 * are all stoped, an answer with retval 0 is generated.
44
 * are all stoped, an answer with retval 0 is generated.
Line 182... Line 184...
182
    UDEBUG_TS_ACTIVE,
184
    UDEBUG_TS_ACTIVE,
183
    /** Task is shutting down, no more debug activities allowed */
185
    /** Task is shutting down, no more debug activities allowed */
184
    UDEBUG_TS_SHUTDOWN
186
    UDEBUG_TS_SHUTDOWN
185
} udebug_task_state_t;
187
} udebug_task_state_t;
186
 
188
 
-
 
189
/** Debugging part of task_t structure.
-
 
190
 */
-
 
191
typedef struct {
-
 
192
    udebug_task_state_t dt_state;
-
 
193
    call_t *begin_call;
-
 
194
    int not_stoppable_count;
-
 
195
    struct task *debugger;
-
 
196
    udebug_evmask_t evmask;
-
 
197
} udebug_task_t;
-
 
198
 
187
struct task;
199
struct task;
188
struct thread;
200
struct thread;
189
 
201
 
-
 
202
void udebug_task_init(udebug_task_t *ut);
-
 
203
 
190
void udebug_syscall_event(unative_t a1, unative_t a2, unative_t a3,
204
void udebug_syscall_event(unative_t a1, unative_t a2, unative_t a3,
191
    unative_t a4, unative_t a5, unative_t a6, unative_t id, unative_t rc,
205
    unative_t a4, unative_t a5, unative_t a6, unative_t id, unative_t rc,
192
    bool end_variant);
206
    bool end_variant);
193
 
207
 
194
void udebug_thread_b_event(struct thread *t);
208
void udebug_thread_b_event(struct thread *t);