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 | ||