gdbsupport: add type definitions for pid, lwp and tid

A following patch will want to declare variables of the same type as
some ptid_t components.  To make that easy (and avoid harcoding those
types everywhere), define some type definitions in the ptid_t struct for
each of them.  Use them throughout ptid.h.

I initially used pid_t, lwp_t and tid_t, but there is the risk of some
system defining the pid_t type using a macro instead of a typedef, which
would break things.  So, use the _type suffix instead.

Change-Id: I820b0bea9dafcb4914f1c9ba4bb96b5c666c8dec
Approved-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
Simon Marchi 2022-09-23 11:55:32 -04:00 committed by Simon Marchi
parent b82d4ec99e
commit 7b065306be

View file

@ -39,6 +39,10 @@
class ptid_t
{
public:
using pid_type = int;
using lwp_type = long;
using tid_type = ULONGEST;
/* Must have a trivial defaulted default constructor so that the
type remains POD. */
ptid_t () noexcept = default;
@ -48,13 +52,13 @@ public:
A ptid with only a PID (LWP and TID equal to zero) is usually used to
represent a whole process, including all its lwps/threads. */
explicit constexpr ptid_t (int pid, long lwp = 0, ULONGEST tid = 0)
explicit constexpr ptid_t (pid_type pid, lwp_type lwp = 0, tid_type tid = 0)
: m_pid (pid), m_lwp (lwp), m_tid (tid)
{}
/* Fetch the pid (process id) component from the ptid. */
constexpr int pid () const
constexpr pid_type pid () const
{ return m_pid; }
/* Return true if the ptid's lwp member is non-zero. */
@ -64,7 +68,7 @@ public:
/* Fetch the lwp (lightweight process) component from the ptid. */
constexpr long lwp () const
constexpr lwp_type lwp () const
{ return m_lwp; }
/* Return true if the ptid's tid member is non-zero. */
@ -74,7 +78,7 @@ public:
/* Fetch the tid (thread id) component from a ptid. */
constexpr ULONGEST tid () const
constexpr tid_type tid () const
{ return m_tid; }
/* Return true if the ptid represents a whole process, including all its
@ -144,13 +148,13 @@ public:
private:
/* Process id. */
int m_pid;
pid_type m_pid;
/* Lightweight process id. */
long m_lwp;
lwp_type m_lwp;
/* Thread id. */
ULONGEST m_tid;
tid_type m_tid;
};
/* Functor to hash a ptid. */