1 /* The ptid_t type and common functions operating on it.
3 Copyright (C) 1986-2014 Free Software Foundation, Inc.
5 This file is part of GDB.
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
27 /* See ptid.h for these. */
29 ptid_t null_ptid = { 0, 0, 0 };
30 ptid_t minus_one_ptid = { -1, 0, 0 };
35 ptid_build (int pid, long lwp, long tid)
50 return ptid_build (pid, 0, 0);
56 ptid_get_pid (ptid_t ptid)
64 ptid_get_lwp (ptid_t ptid)
72 ptid_get_tid (ptid_t ptid)
80 ptid_equal (ptid_t ptid1, ptid_t ptid2)
82 return (ptid1.pid == ptid2.pid
83 && ptid1.lwp == ptid2.lwp
84 && ptid1.tid == ptid2.tid);
90 ptid_is_pid (ptid_t ptid)
92 if (ptid_equal (minus_one_ptid, ptid)
93 || ptid_equal (null_ptid, ptid))
96 return (ptid_get_lwp (ptid) == 0 && ptid_get_tid (ptid) == 0);
102 ptid_lwp_p (ptid_t ptid)
104 if (ptid_equal (minus_one_ptid, ptid)
105 || ptid_equal (null_ptid, ptid))
108 return (ptid_get_lwp (ptid) != 0);
114 ptid_tid_p (ptid_t ptid)
116 if (ptid_equal (minus_one_ptid, ptid)
117 || ptid_equal (null_ptid, ptid))
120 return (ptid_get_tid (ptid) != 0);
124 ptid_match (ptid_t ptid, ptid_t filter)
126 if (ptid_equal (filter, minus_one_ptid))
128 if (ptid_is_pid (filter)
129 && ptid_get_pid (ptid) == ptid_get_pid (filter))
131 else if (ptid_equal (ptid, filter))