binutils-gdb/gdb/x86-linux-nat.h
Andrew Burgess 1d506c26d9 Update copyright year range in header of all files managed by GDB
This commit is the result of the following actions:

  - Running gdb/copyright.py to update all of the copyright headers to
    include 2024,

  - Manually updating a few files the copyright.py script told me to
    update, these files had copyright headers embedded within the
    file,

  - Regenerating gdbsupport/Makefile.in to refresh it's copyright
    date,

  - Using grep to find other files that still mentioned 2023.  If
    these files were updated last year from 2022 to 2023 then I've
    updated them this year to 2024.

I'm sure I've probably missed some dates.  Feel free to fix them up as
you spot them.
2024-01-12 15:49:57 +00:00

96 lines
3.3 KiB
C++
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Native-dependent code for GNU/Linux x86 (i386 and x86-64).
Copyright (C) 1999-2024 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef X86_LINUX_NAT_H
#define X86_LINUX_NAT_H 1
#include "gdb_proc_service.h"
#include "linux-nat.h"
#include "gdbsupport/x86-xstate.h"
#include "x86-nat.h"
#include "nat/x86-linux.h"
struct x86_linux_nat_target : public x86_nat_target<linux_nat_target>
{
virtual ~x86_linux_nat_target () override = 0;
/* Add the description reader. */
const struct target_desc *read_description () override;
struct btrace_target_info *enable_btrace (thread_info *tp,
const struct btrace_config *conf) override;
void disable_btrace (struct btrace_target_info *tinfo) override;
void teardown_btrace (struct btrace_target_info *tinfo) override;
enum btrace_error read_btrace (struct btrace_data *data,
struct btrace_target_info *btinfo,
enum btrace_read_type type) override;
const struct btrace_config *btrace_conf (const struct btrace_target_info *) override;
x86_xsave_layout fetch_x86_xsave_layout () override
{ return m_xsave_layout; }
/* These two are rewired to low_ versions. linux-nat.c queries
stopped-by-watchpoint info as soon as an lwp stops (via the low_
methods) and caches the result, to be returned via the normal
non-low methods. */
bool stopped_by_watchpoint () override
{ return linux_nat_target::stopped_by_watchpoint (); }
bool stopped_data_address (CORE_ADDR *addr_p) override
{ return linux_nat_target::stopped_data_address (addr_p); }
bool low_stopped_by_watchpoint () override
{ return x86_nat_target::stopped_by_watchpoint (); }
bool low_stopped_data_address (CORE_ADDR *addr_p) override
{ return x86_nat_target::stopped_data_address (addr_p); }
void low_new_fork (struct lwp_info *parent, pid_t child_pid) override;
void low_forget_process (pid_t pid) override
{ x86_forget_process (pid); }
void low_prepare_to_resume (struct lwp_info *lwp) override
{ x86_linux_prepare_to_resume (lwp); }
void low_new_thread (struct lwp_info *lwp) override
{ x86_linux_new_thread (lwp); }
void low_delete_thread (struct arch_lwp_info *lwp) override
{ x86_linux_delete_thread (lwp); }
protected:
/* Override the GNU/Linux inferior startup hook. */
void post_startup_inferior (ptid_t) override;
private:
x86_xsave_layout m_xsave_layout;
};
/* Helper for ps_get_thread_area. Sets BASE_ADDR to a pointer to
the thread local storage (or its descriptor) and returns PS_OK
on success. Returns PS_ERR on failure. */
extern ps_err_e x86_linux_get_thread_area (pid_t pid, void *addr,
unsigned int *base_addr);
#endif