2 * Copyright 2006 The Android Open Source Project
5 #ifndef _LIBTHREAD_DB__THREAD_DB_H
6 #define _LIBTHREAD_DB__THREAD_DB_H
11 #include <sys/types.h>
14 #define TD_THR_ANY_USER_FLAGS 0xffffffff
15 #define TD_THR_LOWEST_PRIORITY -20
16 #define TD_SIGNO_MASK NULL
46 * NOTE: There is a max of 32 events
53 /* td_thr_state_e values */
61 typedef int32_t td_err_e;
62 typedef uint32_t td_event_e;
63 typedef uint32_t td_notify_e;
64 typedef uint32_t td_thr_state_e;
65 typedef pthread_t thread_t;
81 td_thrhandle_t const * th_p;
101 td_thr_state_e ti_state;
102 thread_t ti_tid; // pthread's id for the thread
103 int32_t ti_lid; // the kernel's id for the thread
107 #define td_event_emptyset(set) \
110 #define td_event_fillset(set) \
111 (set)->events = 0xffffffff
113 #define td_event_addset(set, n) \
114 (set)->events |= (1 << n)
117 typedef int td_thr_iter_f(td_thrhandle_t const *, void *);
120 struct ps_prochandle;
126 extern td_err_e td_ta_new(struct ps_prochandle const * proc_handle, td_thragent_t ** thread_agent);
128 extern td_err_e td_ta_set_event(td_thragent_t const * agent, td_thr_events_t * event);
130 extern td_err_e td_ta_event_addr(td_thragent_t const * agent, td_event_e event, td_notify_t * notify);
132 extern td_err_e td_ta_event_getmsg(td_thragent_t const * agent, td_event_msg_t * event);
134 extern td_err_e td_ta_thr_iter(td_thragent_t const * agent, td_thr_iter_f * func, void * cookie,
135 td_thr_state_e state, int32_t prio, sigset_t * sigmask, uint32_t user_flags);
137 extern char const ** td_symbol_list(void);