gdb - Fix indentantion in DragonFly specific files.
[dragonfly.git] / contrib / gdb-7 / gdb / i386dfly-tdep.c
1 /* Target-dependent code for DragonFly/i386.
2
3    Copyright (C) 2003-2013 Free Software Foundation, Inc.
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
9    the Free Software Foundation; either version 3 of the License, or
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
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
20 #include "defs.h"
21 #include "arch-utils.h"
22 #include "gdbcore.h"
23 #include "osabi.h"
24 #include "regcache.h"
25
26 #include "gdb_assert.h"
27
28 #include "i386-tdep.h"
29 #include "i387-tdep.h"
30 #include "solib-svr4.h"
31
32 static int i386dfly_r_reg_offset[] =
33 {
34         44,                     /* %eax */
35         40,                     /* %ecx */
36         36,                     /* %edx */
37         32,                     /* %ebx */
38         72,                     /* %esp */
39         24,                     /* %ebp */
40         20,                     /* %esi */
41         16,                     /* %edi */
42         60,                     /* %eip */
43         68,                     /* %eflags */
44         64,                     /* %cs */
45         76,                     /* %ss */
46         12,                     /* %ds */
47         8,                      /* %es */
48         4,                      /* %fs */
49         0                       /* %gs */
50 };
51
52 /* Sigtramp routine location.  */
53 CORE_ADDR i386dfly_sigtramp_start_addr = 0xbfbfdf20;
54 CORE_ADDR i386dfly_sigtramp_end_addr = 0xbfbfdff0;
55
56 int i386dfly_sc_reg_offset[] =
57 {
58         64,                     /* %eax */
59         60,                     /* %ecx */
60         56,                     /* %edx */
61         52,                     /* %ebx */
62         92,                     /* %esp */
63         44,                     /* %ebp */
64         40,                     /* %esi */
65         36,                     /* %edi */
66         80,                     /* %eip */
67         88,                     /* %eflags */
68         84,                     /* %cs */
69         96,                     /* %ss */
70         32,                     /* %ds */
71         28,                     /* %es */
72         24,                     /* %fs */
73         20                      /* %gs */
74 };
75
76 static void
77 i386dfly_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
78 {
79         struct gdbarch_tdep *tdep = gdbarch_tdep(gdbarch);
80
81         i386_elf_init_abi(info, gdbarch);
82
83         tdep->gregset_reg_offset = i386dfly_r_reg_offset;
84         tdep->gregset_num_regs = ARRAY_SIZE(i386dfly_r_reg_offset);
85         tdep->sizeof_gregset = 80;
86
87         tdep->sc_reg_offset = i386dfly_sc_reg_offset;
88         tdep->sc_num_regs = ARRAY_SIZE(i386dfly_sc_reg_offset);
89
90         set_solib_svr4_fetch_link_map_offsets
91             (gdbarch, svr4_ilp32_fetch_link_map_offsets);
92 }
93
94
95
96 /* Provide a prototype to silence -Wmissing-prototypes.  */
97 void _initialize_i386dfly_tdep(void);
98
99 void
100 _initialize_i386dfly_tdep(void)
101 {
102         gdbarch_register_osabi(bfd_arch_i386, 0, GDB_OSABI_DRAGONFLY,
103             i386dfly_init_abi);
104 }