Rev 3026 | Rev 3623 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3026 | Rev 3606 | ||
---|---|---|---|
Line 205... | Line 205... | ||
205 | } udebug_task_t; |
205 | } udebug_task_t; |
206 | 206 | ||
207 | /** Debugging part of thread_t structure. |
207 | /** Debugging part of thread_t structure. |
208 | */ |
208 | */ |
209 | typedef struct { |
209 | typedef struct { |
210 | /** |
- | |
211 | * Prevent deadlock with udebug_before_thread_runs() in interrupt |
- | |
212 | * handler, without actually disabling interrupts. |
- | |
213 | * ==0 means "unlocked", >0 means "locked" |
- | |
214 | */ |
- | |
215 | atomic_t int_lock; |
- | |
216 | - | ||
217 | /** Synchronize debug ops on this thread / access to this structure */ |
210 | /** Synchronize debug ops on this thread / access to this structure. */ |
218 | mutex_t lock; |
211 | mutex_t lock; |
219 | 212 | ||
220 | waitq_t go_wq; |
213 | waitq_t go_wq; |
221 | call_t *go_call; |
214 | call_t *go_call; |
222 | unative_t syscall_args[6]; |
215 | unative_t syscall_args[6]; |
223 | istate_t *uspace_state; |
216 | istate_t *uspace_state; |
224 | 217 | ||
225 | /** What type of event are we stopped in or 0 if none */ |
218 | /** What type of event are we stopped in or 0 if none. */ |
226 | udebug_event_t cur_event; |
219 | udebug_event_t cur_event; |
227 | bool stop; |
220 | bool go; /**< thread is GO */ |
228 | bool stoppable; |
221 | bool stoppable; /**< thread is stoppable */ |
229 | bool debug_active; /**< In a debugging session */ |
222 | bool debug_active; /**< thread is in a debugging session */ |
230 | } udebug_thread_t; |
223 | } udebug_thread_t; |
231 | 224 | ||
232 | struct task; |
225 | struct task; |
233 | struct thread; |
226 | struct thread; |
234 | 227 |