thread_db.h (132332) | thread_db.h (132360) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2004 David Xu <davidxu@freebsd.org> |
|
2 * Copyright (c) 2004 Marcel Moolenaar 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright --- 8 unchanged lines hidden (view full) --- 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * | 3 * Copyright (c) 2004 Marcel Moolenaar 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * 1. Redistributions of source code must retain the above copyright --- 8 unchanged lines hidden (view full) --- 19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * |
26 * $FreeBSD: head/lib/libthread_db/thread_db.h 132332 2004-07-18 04:17:15Z marcel $ | 27 * $FreeBSD: head/lib/libthread_db/thread_db.h 132360 2004-07-18 19:29:38Z marcel $ |
27 */ 28 29#ifndef _THREAD_DB_H_ 30#define _THREAD_DB_H_ 31 32#include <sys/procfs.h> 33#include <pthread.h> 34 --- 31 unchanged lines hidden (view full) --- 66} td_thrhandle_t; /* Used non-opaguely. */ 67 68/* 69 * Events. 70 */ 71 72typedef enum { 73 TD_EVENT_NONE = 0, | 28 */ 29 30#ifndef _THREAD_DB_H_ 31#define _THREAD_DB_H_ 32 33#include <sys/procfs.h> 34#include <pthread.h> 35 --- 31 unchanged lines hidden (view full) --- 67} td_thrhandle_t; /* Used non-opaguely. */ 68 69/* 70 * Events. 71 */ 72 73typedef enum { 74 TD_EVENT_NONE = 0, |
74 TD_CREATE = 0x0001, 75 TD_DEATH = 0x0002, | 75 TD_CATCHSIG = 0x0001, 76 TD_CONCURRENCY= 0x0002, 77 TD_CREATE = 0x0004, 78 TD_DEATH = 0x0008, 79 TD_IDLE = 0x0010, 80 TD_LOCK_TRY = 0x0020, 81 TD_PREEMPT = 0x0040, 82 TD_PRI_INHERIT= 0x0080, 83 TD_READY = 0x0100, 84 TD_REAP = 0x0200, 85 TD_SLEEP = 0x0400, 86 TD_SWITCHFROM = 0x0800, 87 TD_SWITCHTO = 0x1000, 88 TD_TIMEOUT = 0x2000, |
76 TD_ALL_EVENTS = ~0 77} td_thr_events_e; 78 79/* Compatibility with Linux. */ 80#define td_event_e td_thr_events_e 81 82typedef struct { 83 td_thr_events_e event; 84 const td_thrhandle_t *th_p; 85 uintptr_t data; 86} td_event_msg_t; 87 88typedef unsigned int td_thr_events_t; 89 | 89 TD_ALL_EVENTS = ~0 90} td_thr_events_e; 91 92/* Compatibility with Linux. */ 93#define td_event_e td_thr_events_e 94 95typedef struct { 96 td_thr_events_e event; 97 const td_thrhandle_t *th_p; 98 uintptr_t data; 99} td_event_msg_t; 100 101typedef unsigned int td_thr_events_t; 102 |
90/* XXX can't be it... */ | 103typedef enum { 104 NOTIFY_BPT, /* User inserted breakpoint. */ 105 NOTIFY_AUTOBPT, /* Automatic breakpoint. */ 106 NOTIFY_SYSCALL /* Invocation of system call. */ 107} td_notify_e; 108 |
91typedef struct { | 109typedef struct { |
110 td_notify_e type; |
|
92 union { 93 psaddr_t bptaddr; | 111 union { 112 psaddr_t bptaddr; |
113 int syscallno; |
|
94 } u; 95} td_notify_t; 96 97static __inline void 98td_event_addset(td_thr_events_t *es, td_thr_events_e e) 99{ 100 *es |= e; 101} --- 44 unchanged lines hidden (view full) --- 146} td_thr_state_e; 147 148typedef enum 149{ 150 TD_THR_SYSTEM = 1, 151 TD_THR_USER 152} td_thr_type_e; 153 | 114 } u; 115} td_notify_t; 116 117static __inline void 118td_event_addset(td_thr_events_t *es, td_thr_events_e e) 119{ 120 *es |= e; 121} --- 44 unchanged lines hidden (view full) --- 166} td_thr_state_e; 167 168typedef enum 169{ 170 TD_THR_SYSTEM = 1, 171 TD_THR_USER 172} td_thr_type_e; 173 |
154typedef int thread_key_t; | 174typedef pthread_key_t thread_key_t; |
155 | 175 |
156#if 0 157typedef struct td_thrinfo_t { 158 unsigned int ti_user_flags; 159 psaddr_t ti_pc; 160 psaddr_t ti_sp; 161 short ti_flags; 162 uchar_t ti_preemptflag; 163 uchar_t ti_pirecflag; 164}; 165#endif 166 | |
167typedef struct { 168 const td_thragent_t *ti_ta_p; 169 thread_t ti_tid; 170 td_thr_state_e ti_state; 171 td_thr_type_e ti_type; 172 td_thr_events_t ti_events; 173 int ti_pri; 174 lwpid_t ti_lid; --- 56 unchanged lines hidden --- | 176typedef struct { 177 const td_thragent_t *ti_ta_p; 178 thread_t ti_tid; 179 td_thr_state_e ti_state; 180 td_thr_type_e ti_type; 181 td_thr_events_t ti_events; 182 int ti_pri; 183 lwpid_t ti_lid; --- 56 unchanged lines hidden --- |