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

Quelle  ptrace.h   Sprache: C

 
/*
 * include/asm-xtensa/ptrace.h
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Copyright (C) 2001 - 2005 Tensilica Inc.
 */

#ifndef _XTENSA_PTRACE_H
#define _XTENSA_PTRACE_H

#include <asm/kmem_layout.h>
#include <uapi/asm/ptrace.h>

/*
 * Kernel stack
 *
 * +-----------------------+  -------- STACK_SIZE
 * |     register file     |  |
 * +-----------------------+  |
 * |    struct pt_regs     |  |
 * +-----------------------+  | ------ PT_REGS_OFFSET
 * double :  16 bytes spill area  :  |  ^
 * excetion :- - - - - - - - - - - -:  |  |
 * frame :    struct pt_regs     :  |  |
 * :- - - - - - - - - - - -:  |  |
 * |                       |  |  |
 * |     memory stack      |  |  |
 * |                       |  |  |
 * ~                       ~  ~  ~
 * ~                       ~  ~  ~
 * |                       |  |  |
 * |                       |  |  |
 * +-----------------------+  |  | --- STACK_BIAS
 * |  struct task_struct   |  |  |  ^
 *  current --> +-----------------------+  |  |  |
 * |  struct thread_info   |  |  |  |
 * +-----------------------+ --------
 */


#define NO_SYSCALL (-1)

#ifndef __ASSEMBLER__

#include <asm/coprocessor.h>
#include <asm/core.h>

/*
 * This struct defines the way the registers are stored on the
 * kernel stack during a system call or other kernel entry.
 */

struct pt_regs {
 unsigned long pc;  /*   4 */
 unsigned long ps;  /*   8 */
 unsigned long depc;  /*  12 */
 unsigned long exccause;  /*  16 */
 unsigned long excvaddr;  /*  20 */
 unsigned long debugcause; /*  24 */
 unsigned long wmask;  /*  28 */
 unsigned long lbeg;  /*  32 */
 unsigned long lend;  /*  36 */
 unsigned long lcount;  /*  40 */
 unsigned long sar;  /*  44 */
 unsigned long windowbase; /*  48 */
 unsigned long windowstart; /*  52 */
 unsigned long syscall;  /*  56 */
 unsigned long icountlevel; /*  60 */
 unsigned long scompare1; /*  64 */
 unsigned long threadptr; /*  68 */

 /* Additional configurable registers that are used by the compiler. */
 xtregs_opt_t xtregs_opt;

 /* current register frame.
 * Note: The ESF for kernel exceptions ends after 16 registers!
 */

 unsigned long areg[XCHAL_NUM_AREGS] __aligned(16);
};

define arch_has_single_step() (1)
define task_pt_regs(tsk) ((struct pt_regs*) \
 (task_stack_page(tsk) + KERNEL_STACK_SIZE) - 1)
define user_mode(regs) (((regs)->ps & 0x00000020)!=0)
define instruction_pointer(regs) ((regs)->pc)
define return_pointer(regs) (MAKE_PC_FROM_RA((regs)->areg[0], \
            (regs)->pc))

ifndef CONFIG_SMP
#  define profile_pc(regs) instruction_pointer(regs)
else
#  define profile_pc(regs)      \
 ({        \
  in_lock_functions(instruction_pointer(regs)) ?  \
  return_pointer(regs) : instruction_pointer(regs); \
 })
endif

#define user_stack_pointer(regs) ((regs)->areg[1])

static inline unsigned long regs_return_value(struct pt_regs *regs)
{
 return regs->areg[2];
}

int do_syscall_trace_enter(struct pt_regs *regs);
void do_syscall_trace_leave(struct pt_regs *regs);

#else /* __ASSEMBLER__ */

include <asm/asm-offsets.h>
#define PT_REGS_OFFSET   (KERNEL_STACK_SIZE - PT_USER_SIZE)

#endif /* !__ASSEMBLER__ */

#endif /* _XTENSA_PTRACE_H */

Messung V0.5
C=80 H=82 G=80

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