Home | History | Annotate | Download | only in x86
      1 /*
      2  * This file is part of ltrace.
      3  * Copyright (C) 2011,2012,2013 Petr Machata, Red Hat Inc.
      4  * Copyright (C) 2006 Ian Wienand
      5  * Copyright (C) 2004 Juan Cespedes
      6  *
      7  * This program is free software; you can redistribute it and/or
      8  * modify it under the terms of the GNU General Public License as
      9  * published by the Free Software Foundation; either version 2 of the
     10  * License, or (at your option) any later version.
     11  *
     12  * This program is distributed in the hope that it will be useful, but
     13  * WITHOUT ANY WARRANTY; without even the implied warranty of
     14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15  * 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., 51 Franklin St, Fifth Floor, Boston, MA
     20  * 02110-1301 USA
     21  */
     22 #ifndef LTRACE_X86_ARCH_H
     23 #define LTRACE_X86_ARCH_H
     24 
     25 #include "vect.h"
     26 
     27 #define BREAKPOINT_VALUE {0xcc}
     28 #define BREAKPOINT_LENGTH 1
     29 #define DECR_PC_AFTER_BREAK 1
     30 #define ARCH_HAVE_FETCH_ARG
     31 #define ARCH_HAVE_SIZEOF
     32 #define ARCH_HAVE_ALIGNOF
     33 #define ARCH_ENDIAN_LITTLE
     34 
     35 #define ARCH_HAVE_ADD_PLT_ENTRY
     36 
     37 #define ARCH_HAVE_LTELF_DATA
     38 struct arch_ltelf_data {
     39 	struct vect plt_map;
     40 };
     41 
     42 #ifdef __x86_64__
     43 #define LT_ELFCLASS	ELFCLASS64
     44 #define LT_ELF_MACHINE	EM_X86_64
     45 #endif
     46 #define LT_ELFCLASS2	ELFCLASS32
     47 #define LT_ELF_MACHINE2	EM_386
     48 
     49 #endif /* LTRACE_X86_ARCH_H */
     50