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