1/* Native-dependent code for OpenBSD/amd64. 2 3 Copyright 2003, 2004 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 2 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, write to the Free Software 19 Foundation, Inc., 59 Temple Place - Suite 330, 20 Boston, MA 02111-1307, USA. */ 21 22#include "defs.h" 23 24#include "gdb_assert.h" 25 26#include "amd64-tdep.h" 27#include "amd64-nat.h" 28 29/* Mapping between the general-purpose registers in OpenBSD/amd64 30 `struct reg' format and GDB's register cache layout for 31 OpenBSD/i386. 32 33 Note that most (if not all) OpenBSD/amd64 registers are 64-bit, 34 while the OpenBSD/i386 registers are all 32-bit, but since we're 35 little-endian we get away with that. */ 36 37/* From <machine/reg.h>. */ 38static int amd64obsd32_r_reg_offset[] = 39{ 40 14 * 8, /* %eax */ 41 3 * 8, /* %ecx */ 42 2 * 8, /* %edx */ 43 13 * 8, /* %ebx */ 44 15 * 8, /* %esp */ 45 12 * 8, /* %ebp */ 46 1 * 8, /* %esi */ 47 0 * 8, /* %edi */ 48 16 * 8, /* %eip */ 49 17 * 8, /* %eflags */ 50 18 * 8, /* %cs */ 51 19 * 8, /* %ss */ 52 20 * 8, /* %ds */ 53 21 * 8, /* %es */ 54 22 * 8, /* %fs */ 55 23 * 8 /* %gs */ 56}; 57 58 59/* Provide a prototype to silence -Wmissing-prototypes. */ 60void _initialize_amd64obsd_nat (void); 61 62void 63_initialize_amd64obsd_nat (void) 64{ 65 amd64_native_gregset32_reg_offset = amd64obsd32_r_reg_offset; 66 amd64_native_gregset32_num_regs = ARRAY_SIZE (amd64obsd32_r_reg_offset); 67 amd64_native_gregset64_reg_offset = amd64obsd_r_reg_offset; 68} 69