Subversion Repositories HelenOS

Rev

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

Rev 2901 Rev 2903
Line 153... Line 153...
153
typedef enum {
153
typedef enum {
154
    UDEBUG_EVENT_FINISHED = 1/**< Debuging session has finished */
154
    UDEBUG_EVENT_FINISHED = 1/**< Debuging session has finished */
155
    UDEBUG_EVENT_STOP,      /**< Stopped on DEBUG_STOP request */
155
    UDEBUG_EVENT_STOP,      /**< Stopped on DEBUG_STOP request */
156
    UDEBUG_EVENT_SYSCALL_B,     /**< Before beginning syscall execution */
156
    UDEBUG_EVENT_SYSCALL_B,     /**< Before beginning syscall execution */
157
    UDEBUG_EVENT_SYSCALL_E,     /**< After finishing syscall execution */
157
    UDEBUG_EVENT_SYSCALL_E,     /**< After finishing syscall execution */
158
    UDEBUG_EVENT_NEW_THREAD     /**< The task created a new thread */
158
    UDEBUG_EVENT_THREAD_B,      /**< The task created a new thread */
-
 
159
    UDEBUG_EVENT_THREAD_E,      /**< A thread exited */
159
} udebug_event_t;
160
} udebug_event_t;
160
 
161
 
161
#define UDEBUG_EVMASK(event) (1 << ((event) - 1))
162
#define UDEBUG_EVMASK(event) (1 << ((event) - 1))
162
 
163
 
163
typedef enum {
164
typedef enum {
164
    UDEBUG_EM_FINISHED  = UDEBUG_EVMASK(UDEBUG_EVENT_FINISHED),
165
    UDEBUG_EM_FINISHED  = UDEBUG_EVMASK(UDEBUG_EVENT_FINISHED),
165
    UDEBUG_EM_STOP      = UDEBUG_EVMASK(UDEBUG_EVENT_STOP),
166
    UDEBUG_EM_STOP      = UDEBUG_EVMASK(UDEBUG_EVENT_STOP),
166
    UDEBUG_EM_SYSCALL_B = UDEBUG_EVMASK(UDEBUG_EVENT_SYSCALL_B),
167
    UDEBUG_EM_SYSCALL_B = UDEBUG_EVMASK(UDEBUG_EVENT_SYSCALL_B),
167
    UDEBUG_EM_SYSCALL_E = UDEBUG_EVMASK(UDEBUG_EVENT_SYSCALL_E),
168
    UDEBUG_EM_SYSCALL_E = UDEBUG_EVMASK(UDEBUG_EVENT_SYSCALL_E),
-
 
169
    UDEBUG_EM_THREAD_B  = UDEBUG_EVMASK(UDEBUG_EVENT_THREAD_B),
168
    UDEBUG_EM_NEW_THREAD    = UDEBUG_EVMASK(UDEBUG_EVENT_NEW_THREAD),
170
    UDEBUG_EM_THREAD_E  = UDEBUG_EVMASK(UDEBUG_EVENT_THREAD_E),
169
    UDEBUG_EM_ALL       =
171
    UDEBUG_EM_ALL       =
170
        UDEBUG_EVMASK(UDEBUG_EVENT_FINISHED) |
172
        UDEBUG_EVMASK(UDEBUG_EVENT_FINISHED) |
171
        UDEBUG_EVMASK(UDEBUG_EVENT_STOP) |
173
        UDEBUG_EVMASK(UDEBUG_EVENT_STOP) |
172
        UDEBUG_EVMASK(UDEBUG_EVENT_SYSCALL_B) |
174
        UDEBUG_EVMASK(UDEBUG_EVENT_SYSCALL_B) |
173
        UDEBUG_EVMASK(UDEBUG_EVENT_SYSCALL_E) |
175
        UDEBUG_EVMASK(UDEBUG_EVENT_SYSCALL_E) |
-
 
176
        UDEBUG_EVMASK(UDEBUG_EVENT_THREAD_B) |
174
        UDEBUG_EVMASK(UDEBUG_EVENT_NEW_THREAD)
177
        UDEBUG_EVMASK(UDEBUG_EVENT_THREAD_E)
175
} udebug_evmask_t;
178
} udebug_evmask_t;
176
 
179
 
177
#ifdef KERNEL
180
#ifdef KERNEL
178
 
181
 
179
typedef enum {
182
typedef enum {
Line 191... Line 194...
191
struct thread;
194
struct thread;
192
 
195
 
193
void udebug_syscall_event(unative_t a1, unative_t a2, unative_t a3,
196
void udebug_syscall_event(unative_t a1, unative_t a2, unative_t a3,
194
    unative_t a4, unative_t a5, unative_t a6, unative_t id, unative_t rc,
197
    unative_t a4, unative_t a5, unative_t a6, unative_t id, unative_t rc,
195
    bool end_variant);
198
    bool end_variant);
-
 
199
 
196
void udebug_new_thread_event(struct thread *t);
200
void udebug_thread_b_event(struct thread *t);
-
 
201
void udebug_thread_e_event(void);
197
 
202
 
198
void udebug_stoppable_begin(void);
203
void udebug_stoppable_begin(void);
199
void udebug_stoppable_end(void);
204
void udebug_stoppable_end(void);
200
 
205
 
201
int udebug_task_cleanup(struct task *ta);
206
int udebug_task_cleanup(struct task *ta);