diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2013-09-06 18:37:46 +0800 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2013-09-06 19:04:40 +0800 |
commit | 6986c6e7f06bb3bdedfc3bb08694da9b1227048c (patch) | |
tree | 5c0f01f1f54d9040100858182232c1fb4134b58f /9/platforms/android-18/arch-mips/usr/include/thread_db.h | |
parent | 30ee84f92cb832c789366c516fcadb718ccc25e8 (diff) | |
download | prebuilts_ndk-6986c6e7f06bb3bdedfc3bb08694da9b1227048c.zip prebuilts_ndk-6986c6e7f06bb3bdedfc3bb08694da9b1227048c.tar.gz prebuilts_ndk-6986c6e7f06bb3bdedfc3bb08694da9b1227048c.tar.bz2 |
Add NDK r9 part 1/2: platforms/
Change-Id: Ie572e90ffda7f982d931dda1a9f5a0c68953a762
Diffstat (limited to '9/platforms/android-18/arch-mips/usr/include/thread_db.h')
-rw-r--r-- | 9/platforms/android-18/arch-mips/usr/include/thread_db.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/9/platforms/android-18/arch-mips/usr/include/thread_db.h b/9/platforms/android-18/arch-mips/usr/include/thread_db.h new file mode 100644 index 0000000..1b36cb2 --- /dev/null +++ b/9/platforms/android-18/arch-mips/usr/include/thread_db.h @@ -0,0 +1,164 @@ +/* + * Copyright 2006 The Android Open Source Project + */ + +#ifndef _LIBTHREAD_DB__THREAD_DB_H +#define _LIBTHREAD_DB__THREAD_DB_H + +#include <pthread.h> +#include <signal.h> +#include <stdint.h> +#include <sys/types.h> + +typedef void *psaddr_t; +typedef pid_t lwpid_t; + +#define TD_THR_ANY_USER_FLAGS 0xffffffff +#define TD_THR_LOWEST_PRIORITY -20 +#define TD_SIGNO_MASK NULL + +/* td_err_e values */ +enum { + TD_OK, + TD_ERR, + TD_NOTHR, + TD_NOSV, + TD_NOLWP, + TD_BADPH, + TD_BADTH, + TD_BADSH, + TD_BADTA, + TD_BADKEY, + TD_NOMSG, + TD_NOFPREGS, + TD_NOLIBTHREAD, + TD_NOEVENT, + TD_NOCAPAB, + TD_DBERR, + TD_NOAPLIC, + TD_NOTSD, + TD_MALLOC, + TD_PARTIALREG, + TD_NOXREGS, + TD_VERSION +}; + +/* + * td_event_e values + * NOTE: There is a max of 32 events + */ +enum { + TD_CREATE, + TD_DEATH +}; + +/* td_thr_state_e values */ +enum { + TD_THR_ANY_STATE, + TD_THR_UNKNOWN, + TD_THR_SLEEP, + TD_THR_ZOMBIE +}; + +typedef int32_t td_err_e; +typedef uint32_t td_event_e; +typedef uint32_t td_notify_e; +typedef uint32_t td_thr_state_e; +typedef pthread_t thread_t; + +typedef struct +{ + pid_t pid; + struct ps_prochandle *ph; +} td_thragent_t; + +typedef struct +{ + pid_t pid; + pid_t tid; +} td_thrhandle_t; + +typedef struct +{ + td_event_e event; + td_thrhandle_t const * th_p; + union { + void * data; + } msg; +} td_event_msg_t; + +typedef struct +{ + uint32_t events; +} td_thr_events_t; + +typedef struct +{ + union { + void * bptaddr; + } u; +} td_notify_t; + +typedef struct +{ + td_thr_state_e ti_state; + thread_t ti_tid; // pthread's id for the thread + int32_t ti_lid; // the kernel's id for the thread +} td_thrinfo_t; + + +#define td_event_emptyset(set) \ + (set)->events = 0 + +#define td_event_fillset(set) \ + (set)->events = 0xffffffff + +#define td_event_addset(set, n) \ + (set)->events |= (1 << n) + + +typedef int td_thr_iter_f(td_thrhandle_t const *, void *); + + +struct ps_prochandle; + +#ifdef __cplusplus +extern "C"{ +#endif + +extern td_err_e td_ta_new(struct ps_prochandle * proc_handle, td_thragent_t ** thread_agent); + +extern td_err_e td_ta_delete(td_thragent_t * ta); + +extern td_err_e td_ta_set_event(td_thragent_t const * agent, td_thr_events_t * event); + +extern td_err_e td_ta_event_addr(td_thragent_t const * agent, td_event_e event, td_notify_t * notify); + +extern td_err_e td_ta_clear_event(const td_thragent_t * ta_arg, + td_thr_events_t * event); + +extern td_err_e td_ta_event_getmsg(td_thragent_t const * agent, td_event_msg_t * event); + +extern td_err_e td_ta_map_lwp2thr(td_thragent_t const * agent, lwpid_t lwpid, + td_thrhandle_t *th); + +extern td_err_e td_thr_get_info(td_thrhandle_t const * handle, + td_thrinfo_t * info); + +extern td_err_e td_thr_event_enable(td_thrhandle_t const * handle, + td_event_e event); + +extern td_err_e td_ta_thr_iter(td_thragent_t const * agent, td_thr_iter_f * func, void * cookie, + td_thr_state_e state, int32_t prio, sigset_t * sigmask, uint32_t user_flags); + +extern char const ** td_symbol_list(void); + +extern td_err_e td_thr_tls_get_addr(const td_thrhandle_t * th, + psaddr_t map_address, size_t offset, + psaddr_t * address); + +#ifdef __cplusplus +} +#endif + +#endif |