Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  decode-thumb.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * arch/arm/probes/decode-thumb.h
 *
 * Copyright 2013 Linaro Ltd.
 * Written by: David A. Long
 */


#ifndef _ARM_KERNEL_PROBES_THUMB_H
#define  _ARM_KERNEL_PROBES_THUMB_H

#include "decode.h"

/*
 * True if current instruction is in an IT block.
 */

#define in_it_block(cpsr) ((cpsr & 0x06000c00) != 0x00000000)

/*
 * Return the condition code to check for the currently executing instruction.
 * This is in ITSTATE<7:4> which is in CPSR<15:12> but is only valid if
 * in_it_block returns true.
 */

#define current_cond(cpsr) ((cpsr >> 12) & 0xf)

enum probes_t32_action {
 PROBES_T32_EMULATE_NONE,
 PROBES_T32_SIMULATE_NOP,
 PROBES_T32_LDMSTM,
 PROBES_T32_LDRDSTRD,
 PROBES_T32_TABLE_BRANCH,
 PROBES_T32_TST,
 PROBES_T32_CMP,
 PROBES_T32_MOV,
 PROBES_T32_ADDSUB,
 PROBES_T32_LOGICAL,
 PROBES_T32_ADDWSUBW_PC,
 PROBES_T32_ADDWSUBW,
 PROBES_T32_MOVW,
 PROBES_T32_SAT,
 PROBES_T32_BITFIELD,
 PROBES_T32_SEV,
 PROBES_T32_WFE,
 PROBES_T32_MRS,
 PROBES_T32_BRANCH_COND,
 PROBES_T32_BRANCH,
 PROBES_T32_PLDI,
 PROBES_T32_LDR_LIT,
 PROBES_T32_LDRSTR,
 PROBES_T32_SIGN_EXTEND,
 PROBES_T32_MEDIA,
 PROBES_T32_REVERSE,
 PROBES_T32_MUL_ADD,
 PROBES_T32_MUL_ADD2,
 PROBES_T32_MUL_ADD_LONG,
 NUM_PROBES_T32_ACTIONS
};

enum probes_t16_action {
 PROBES_T16_ADD_SP,
 PROBES_T16_CBZ,
 PROBES_T16_SIGN_EXTEND,
 PROBES_T16_PUSH,
 PROBES_T16_POP,
 PROBES_T16_SEV,
 PROBES_T16_WFE,
 PROBES_T16_IT,
 PROBES_T16_CMP,
 PROBES_T16_ADDSUB,
 PROBES_T16_LOGICAL,
 PROBES_T16_BLX,
 PROBES_T16_HIREGOPS,
 PROBES_T16_LDR_LIT,
 PROBES_T16_LDRHSTRH,
 PROBES_T16_LDRSTR,
 PROBES_T16_ADR,
 PROBES_T16_LDMSTM,
 PROBES_T16_BRANCH_COND,
 PROBES_T16_BRANCH,
 NUM_PROBES_T16_ACTIONS
};

extern const union decode_item probes_decode_thumb32_table[];
extern const union decode_item probes_decode_thumb16_table[];

enum probes_insn __kprobes
thumb16_probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
  bool emulate, const union decode_action *actions,
  const struct decode_checker *checkers[]);
enum probes_insn __kprobes
thumb32_probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
  bool emulate, const union decode_action *actions,
  const struct decode_checker *checkers[]);

#endif

Messung V0.5
C=96 H=100 G=97

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge