Lines Matching refs:event
43 static Event event; variable
57 enque_event(Event * event) in enque_event() argument
60 event->proc->pid, event->type); in enque_event()
67 *ne = *event; in enque_event()
83 Event * event; in each_qd_event() local
84 for (event = prev; event != NULL; ) { in each_qd_event()
85 switch ((*pred)(event, data)) { in each_qd_event()
87 prev = event; in each_qd_event()
88 event = event->next; in each_qd_event()
93 event->type, in each_qd_event()
94 event->proc != NULL ? event->proc->pid : -1); in each_qd_event()
99 if (end_delayed_events == event) in each_qd_event()
101 if (delayed_events == event) in each_qd_event()
102 delayed_events = event->next; in each_qd_event()
104 prev->next = event->next; in each_qd_event()
110 return event; in each_qd_event()
118 event_process_not_reenabling(Event * event, void * data) in event_process_not_reenabling() argument
120 if (event->proc == NULL in event_process_not_reenabling()
121 || event->proc->leader == NULL in event_process_not_reenabling()
122 || event->proc->leader->event_handler == NULL) in event_process_not_reenabling()
147 event = *ev; in next_event()
149 return &event; in next_event()
167 event.type = EVENT_NONE; in next_event()
168 return &event; in next_event()
173 event.proc = pid2proc(pid); in next_event()
174 if (!event.proc || event.proc->state == STATE_BEING_CREATED) { in next_event()
195 event.type = EVENT_NEW; in next_event()
196 event.e_un.newpid = pid; in next_event()
198 return &event; in next_event()
201 get_arch_dep(event.proc); in next_event()
203 struct process *leader = event.proc->leader; in next_event()
222 event.type = EVENT_NONE; \ in next_event()
223 continue_process(event.proc->pid); \ in next_event()
224 return &event; \ in next_event()
229 event.proc->instruction_pointer = (void *)(uintptr_t)-1; in next_event()
235 event.type = EVENT_EXIT_SIGNAL; in next_event()
236 event.e_un.signum = WTERMSIG(status); in next_event()
237 debug(DEBUG_EVENT, "event: EXIT_SIGNAL: pid=%d, signum=%d", pid, event.e_un.signum); in next_event()
238 return &event; in next_event()
241 event.type = EVENT_EXIT; in next_event()
242 event.e_un.ret_val = WEXITSTATUS(status); in next_event()
243 debug(DEBUG_EVENT, "event: EXIT: pid=%d, status=%d", pid, event.e_un.ret_val); in next_event()
244 return &event; in next_event()
247 event.proc->instruction_pointer = get_instruction_pointer(event.proc); in next_event()
248 if (event.proc->instruction_pointer == (void *)(uintptr_t)-1) { in next_event()
254 switch (syscall_p(event.proc, status, &tmp)) { in next_event()
256 event.type = EVENT_SYSCALL; in next_event()
257 event.e_un.sysnum = tmp; in next_event()
259 return &event; in next_event()
261 event.type = EVENT_SYSRET; in next_event()
262 event.e_un.sysnum = tmp; in next_event()
264 return &event; in next_event()
266 event.type = EVENT_ARCH_SYSCALL; in next_event()
267 event.e_un.sysnum = tmp; in next_event()
269 return &event; in next_event()
271 event.type = EVENT_ARCH_SYSRET; in next_event()
272 event.e_un.sysnum = tmp; in next_event()
274 return &event; in next_event()
286 event.type = what == PTRACE_EVENT_VFORK in next_event()
289 event.e_un.newpid = data; in next_event()
292 return &event; in next_event()
296 event.type = EVENT_EXEC; in next_event()
298 return &event; in next_event()
302 event.type = EVENT_NONE; in next_event()
304 return &event; in next_event()
318 = event.proc->instruction_pointer - DECR_PC_AFTER_BREAK; in next_event()
324 if (stop_signal != (SIGTRAP | event.proc->tracesysgood) in next_event()
326 event.type = EVENT_SIGNAL; in next_event()
327 event.e_un.signum = stop_signal; in next_event()
329 return &event; in next_event()
333 event.type = EVENT_BREAKPOINT; in next_event()
335 event.e_un.brk_addr = break_address; in next_event()
336 debug(DEBUG_EVENT, "event: BREAKPOINT: pid=%d, addr=%p", pid, event.e_un.brk_addr); in next_event()
338 return &event; in next_event()
342 event_for_proc(struct Event *event, void *data) in event_for_proc() argument
344 if (event->proc == data) in event_for_proc()
353 struct Event *event; in delete_events_for() local
354 while ((event = each_qd_event(&event_for_proc, proc)) != NULL) in delete_events_for()
355 free(event); in delete_events_for()