X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fnat%2Flinux-nat.h;h=7dd18feffface61e806470e3955da00465fe07ba;hb=ffce45d2243e5f52f411e314fc4e1a69f431a81f;hp=c06f72d6db1d493bdfc010e0f070f6c26a44cba6;hpb=7b6690874fa3a8afacd731b70a461d55a5b1311c;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h index c06f72d6db..7dd18fefff 100644 --- a/gdb/nat/linux-nat.h +++ b/gdb/nat/linux-nat.h @@ -1,6 +1,6 @@ /* Code for native debugging support for GNU/Linux (LWP layer). - Copyright (C) 2000-2015 Free Software Foundation, Inc. + Copyright (C) 2000-2017 Free Software Foundation, Inc. This file is part of GDB. @@ -20,6 +20,16 @@ #ifndef LINUX_NAT_H #define LINUX_NAT_H +#include "target/waitstatus.h" + +struct lwp_info; +struct arch_lwp_info; + +/* This is the kernel's hard limit. Not to be confused with SIGRTMIN. */ +#ifndef __SIGRTMIN +#define __SIGRTMIN 32 +#endif + /* Unlike other extended result codes, WSTOPSIG (status) on PTRACE_O_TRACESYSGOOD syscall events doesn't return SIGTRAP, but instead SIGTRAP with bit 7 set. */ @@ -32,4 +42,52 @@ extern ptid_t current_lwp_ptid (void); +/* Function type for the CALLBACK argument of iterate_over_lwps. */ +typedef int (iterate_over_lwps_ftype) (struct lwp_info *lwp, void *arg); + +/* Iterate over all LWPs. Calls CALLBACK with its second argument set + to DATA for every LWP in the list. If CALLBACK returns nonzero for + a particular LWP, return a pointer to the structure describing that + LWP immediately. Otherwise return NULL. This function must be + provided by the client. */ + +extern struct lwp_info *iterate_over_lwps (ptid_t filter, + iterate_over_lwps_ftype callback, + void *data); + +/* Return the ptid of LWP. */ + +extern ptid_t ptid_of_lwp (struct lwp_info *lwp); + +/* Set the architecture-specific data of LWP. This function must be + provided by the client. */ + +extern void lwp_set_arch_private_info (struct lwp_info *lwp, + struct arch_lwp_info *info); + +/* Return the architecture-specific data of LWP. This function must + be provided by the client. */ + +extern struct arch_lwp_info *lwp_arch_private_info (struct lwp_info *lwp); + +/* Return nonzero if LWP is stopped, zero otherwise. This function + must be provided by the client. */ + +extern int lwp_is_stopped (struct lwp_info *lwp); + +/* Return the reason the LWP last stopped. This function must be + provided by the client. */ + +extern enum target_stop_reason lwp_stop_reason (struct lwp_info *lwp); + +/* Cause LWP to stop. This function must be provided by the + client. */ + +extern void linux_stop_lwp (struct lwp_info *lwp); + +/* Return nonzero if we are single-stepping this LWP at the ptrace + level. */ + +extern int lwp_is_stepping (struct lwp_info *lwp); + #endif /* LINUX_NAT_H */