summaryrefslogtreecommitdiff
path: root/gdb/common
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/common')
-rw-r--r--gdb/common/ptid.c29
-rw-r--r--gdb/common/ptid.h9
2 files changed, 35 insertions, 3 deletions
diff --git a/gdb/common/ptid.c b/gdb/common/ptid.c
index 506b5c2bef6..e8d25c02d18 100644
--- a/gdb/common/ptid.c
+++ b/gdb/common/ptid.c
@@ -83,10 +83,33 @@ ptid_equal (ptid_t ptid1, ptid_t ptid2)
int
ptid_is_pid (ptid_t ptid)
{
- if (ptid_equal (minus_one_ptid, ptid))
- return 0;
- if (ptid_equal (null_ptid, ptid))
+ if (ptid_equal (minus_one_ptid, ptid)
+ || ptid_equal (null_ptid, ptid))
return 0;
return (ptid_get_lwp (ptid) == 0 && ptid_get_tid (ptid) == 0);
}
+
+/* Returns true if PTID represents a lwp. */
+
+int
+ptid_lwp_p (ptid_t ptid)
+{
+ if (ptid_equal (minus_one_ptid, ptid)
+ || ptid_equal (null_ptid, ptid))
+ return 0;
+
+ return (ptid_get_lwp (ptid) != 0);
+}
+
+/* Returns true if PTID represents a tid. */
+
+int
+ptid_tid_p (ptid_t ptid)
+{
+ if (ptid_equal (minus_one_ptid, ptid)
+ || ptid_equal (null_ptid, ptid))
+ return 0;
+
+ return (ptid_get_tid (ptid) != 0);
+}
diff --git a/gdb/common/ptid.h b/gdb/common/ptid.h
index fefe8b6517a..1326506cb36 100644
--- a/gdb/common/ptid.h
+++ b/gdb/common/ptid.h
@@ -33,6 +33,9 @@
ptid_get_lwp - Fetch the lwp component of a ptid.
ptid_get_tid - Fetch the tid component of a ptid.
ptid_equal - Test to see if two ptids are equal.
+ ptid_is_pid - Test if a ptid is of the form (pid, 0, 0).
+ ptid_lwp_p - Test if a ptid's lwp component is non-zero.
+ ptid_tid_p - Test if a ptid's tid component is non-zero.
Please do NOT access the struct ptid members directly (except, of
course, in the implementation of the above ptid manipulation
@@ -82,4 +85,10 @@ int ptid_equal (ptid_t p1, ptid_t p2);
/* Return true if PTID represents a process id. */
int ptid_is_pid (ptid_t ptid);
+/* Return true if PTID's lwp member is non-zero. */
+int ptid_lwp_p (ptid_t ptid);
+
+/* Return true if PTID's tid member is non-zero. */
+int ptid_tid_p (ptid_t ptid);
+
#endif