linux/tools/objtool/arch.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2015 Josh Poimboeuf <jpoimboe@redhat.com>
   3 *
   4 * This program is free software; you can redistribute it and/or
   5 * modify it under the terms of the GNU General Public License
   6 * as published by the Free Software Foundation; either version 2
   7 * of the License, or (at your option) any later version.
   8 *
   9 * This program is distributed in the hope that it will be useful,
  10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12 * GNU General Public License for more details.
  13 *
  14 * You should have received a copy of the GNU General Public License
  15 * along with this program; if not, see <http://www.gnu.org/licenses/>.
  16 */
  17
  18#ifndef _ARCH_H
  19#define _ARCH_H
  20
  21#include <stdbool.h>
  22#include "elf.h"
  23
  24#define INSN_FP_SAVE            1
  25#define INSN_FP_SETUP           2
  26#define INSN_FP_RESTORE         3
  27#define INSN_JUMP_CONDITIONAL   4
  28#define INSN_JUMP_UNCONDITIONAL 5
  29#define INSN_JUMP_DYNAMIC       6
  30#define INSN_CALL               7
  31#define INSN_CALL_DYNAMIC       8
  32#define INSN_RETURN             9
  33#define INSN_CONTEXT_SWITCH     10
  34#define INSN_BUG                11
  35#define INSN_NOP                12
  36#define INSN_OTHER              13
  37#define INSN_LAST               INSN_OTHER
  38
  39int arch_decode_instruction(struct elf *elf, struct section *sec,
  40                            unsigned long offset, unsigned int maxlen,
  41                            unsigned int *len, unsigned char *type,
  42                            unsigned long *displacement);
  43
  44#endif /* _ARCH_H */
  45