Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/s390/include/asm/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  extable.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __S390_EXTABLE_H
#define __S390_EXTABLE_H

#include <asm/ptrace.h>
#include <linux/compiler.h>

/*
 * The exception table consists of three addresses:
 *
 * - Address of an instruction that is allowed to fault.
 * - Address at which the program should continue.
 * - Optional address of handler that takes pt_regs * argument and runs in
 *   interrupt context.
 *
 * No registers are modified, so it is entirely up to the continuation code
 * to figure out what to do.
 *
 * All the routines below use bits of fixup code that are out of line
 * with the main instruction path.  This means when everything is well,
 * we don't even have to jump over them.  Further, they do not intrude
 * on our cache or tlb entries.
 */


struct exception_table_entry
{
 int insn, fixup;
 short type, data;
};

extern struct exception_table_entry *__start_amode31_ex_table;
extern struct exception_table_entry *__stop_amode31_ex_table;

const struct exception_table_entry *s390_search_extables(unsigned long addr);

static inline unsigned long extable_fixup(const struct exception_table_entry *x)
{
 return (unsigned long)&x->fixup + x->fixup;
}

#define ARCH_HAS_RELATIVE_EXTABLE

static inline void swap_ex_entry_fixup(struct exception_table_entry *a,
           struct exception_table_entry *b,
           struct exception_table_entry tmp,
           int delta)
{
 a->fixup = b->fixup + delta;
 b->fixup = tmp.fixup - delta;
 a->type = b->type;
 b->type = tmp.type;
 a->data = b->data;
 b->data = tmp.data;
}
#define swap_ex_entry_fixup swap_ex_entry_fixup

#ifdef CONFIG_BPF_JIT

bool ex_handler_bpf(const struct exception_table_entry *ex, struct pt_regs *regs);

#else /* !CONFIG_BPF_JIT */

static inline bool ex_handler_bpf(const struct exception_table_entry *ex, struct pt_regs *regs)
{
 return false;
}

#endif /* CONFIG_BPF_JIT */

bool fixup_exception(struct pt_regs *regs);

#endif

Messung V0.5
C=95 H=96 G=95

¤ Dauer der Verarbeitung: 0.13 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.