mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-30 13:33:53 +08:00
1d506c26d9
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.
96 lines
3.3 KiB
C++
96 lines
3.3 KiB
C++
/* 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
|