]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/amd64nbsd-nat.c
Update year range in copyright notice of all files owned by the GDB project.
[thirdparty/binutils-gdb.git] / gdb / amd64nbsd-nat.c
CommitLineData
cced5e27
MK
1/* Native-dependent code for NetBSD/amd64.
2
32d0add0 3 Copyright (C) 2003-2015 Free Software Foundation, Inc.
cced5e27
MK
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
cced5e27
MK
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
cced5e27
MK
19
20#include "defs.h"
6a5c78a3 21#include "target.h"
cced5e27 22
f01be29b 23#include "nbsd-nat.h"
85be1ca6 24#include "amd64-tdep.h"
cced5e27
MK
25#include "amd64-nat.h"
26
27/* Mapping between the general-purpose registers in NetBSD/amd64
28 `struct reg' format and GDB's register cache layout for
29 NetBSD/i386.
30
31 Note that most (if not all) NetBSD/amd64 registers are 64-bit,
32 while the NetBSD/i386 registers are all 32-bit, but since we're
33 little-endian we get away with that. */
34
35/* From <machine/reg.h>. */
36static int amd64nbsd32_r_reg_offset[] =
37{
38 14 * 8, /* %eax */
39 3 * 8, /* %ecx */
40 2 * 8, /* %edx */
41 13 * 8, /* %ebx */
42 24 * 8, /* %esp */
43 12 * 8, /* %ebp */
44 1 * 8, /* %esi */
45 0 * 8, /* %edi */
46 21 * 8, /* %eip */
47 23 * 8, /* %eflags */
af233647
MK
48 22 * 8, /* %cs */
49 25 * 8, /* %ss */
cced5e27
MK
50 18 * 8, /* %ds */
51 17 * 8, /* %es */
52 16 * 8, /* %fs */
53 15 * 8 /* %gs */
54};
55\f
56
57/* Provide a prototype to silence -Wmissing-prototypes. */
58void _initialize_amd64nbsd_nat (void);
59
60void
61_initialize_amd64nbsd_nat (void)
62{
f01be29b
NH
63 struct target_ops *t;
64
cced5e27
MK
65 amd64_native_gregset32_reg_offset = amd64nbsd32_r_reg_offset;
66 amd64_native_gregset32_num_regs = ARRAY_SIZE (amd64nbsd32_r_reg_offset);
67 amd64_native_gregset64_reg_offset = amd64nbsd_r_reg_offset;
6a5c78a3 68
f01be29b
NH
69 /* Add some extra features to the common *BSD/amd64 target. */
70 t = amd64bsd_target ();
71 t->to_pid_to_exec_file = nbsd_pid_to_exec_file;
72 add_target (t);
cced5e27 73}