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


Quelle  unwind.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
 */


#ifndef _ASM_ARC_UNWIND_H
#define _ASM_ARC_UNWIND_H

#ifdef CONFIG_ARC_DW2_UNWIND

#include <linux/sched.h>

struct arc700_regs {
 unsigned long r0;
 unsigned long r1;
 unsigned long r2;
 unsigned long r3;
 unsigned long r4;
 unsigned long r5;
 unsigned long r6;
 unsigned long r7;
 unsigned long r8;
 unsigned long r9;
 unsigned long r10;
 unsigned long r11;
 unsigned long r12;
 unsigned long r13;
 unsigned long r14;
 unsigned long r15;
 unsigned long r16;
 unsigned long r17;
 unsigned long r18;
 unsigned long r19;
 unsigned long r20;
 unsigned long r21;
 unsigned long r22;
 unsigned long r23;
 unsigned long r24;
 unsigned long r25;
 unsigned long r26;
 unsigned long r27; /* fp */
 unsigned long r28; /* sp */
 unsigned long r29;
 unsigned long r30;
 unsigned long r31; /* blink */
 unsigned long r63; /* pc */
};

struct unwind_frame_info {
 struct arc700_regs regs;
 struct task_struct *task;
 unsigned call_frame:1;
};

#define UNW_PC(frame)  ((frame)->regs.r63)
#define UNW_SP(frame)  ((frame)->regs.r28)
#define UNW_BLINK(frame) ((frame)->regs.r31)

/* Rajesh FIXME */
#ifdef CONFIG_FRAME_POINTER
#define UNW_FP(frame)  ((frame)->regs.r27)
#define FRAME_RETADDR_OFFSET 4
#define FRAME_LINK_OFFSET 0
#define STACK_BOTTOM_UNW(tsk) STACK_LIMIT((tsk)->thread.ksp)
#define STACK_TOP_UNW(tsk) ((tsk)->thread.ksp)
#else
#define UNW_FP(frame)  ((void)(frame), 0)
#endif

#define STACK_LIMIT(ptr) (((ptr) - 1) & ~(THREAD_SIZE - 1))

#define UNW_REGISTER_INFO \
 PTREGS_INFO(r0), \
 PTREGS_INFO(r1), \
 PTREGS_INFO(r2), \
 PTREGS_INFO(r3), \
 PTREGS_INFO(r4), \
 PTREGS_INFO(r5), \
 PTREGS_INFO(r6), \
 PTREGS_INFO(r7), \
 PTREGS_INFO(r8), \
 PTREGS_INFO(r9), \
 PTREGS_INFO(r10), \
 PTREGS_INFO(r11), \
 PTREGS_INFO(r12), \
 PTREGS_INFO(r13), \
 PTREGS_INFO(r14), \
 PTREGS_INFO(r15), \
 PTREGS_INFO(r16), \
 PTREGS_INFO(r17), \
 PTREGS_INFO(r18), \
 PTREGS_INFO(r19), \
 PTREGS_INFO(r20), \
 PTREGS_INFO(r21), \
 PTREGS_INFO(r22), \
 PTREGS_INFO(r23), \
 PTREGS_INFO(r24), \
 PTREGS_INFO(r25), \
 PTREGS_INFO(r26), \
 PTREGS_INFO(r27), \
 PTREGS_INFO(r28), \
 PTREGS_INFO(r29), \
 PTREGS_INFO(r30), \
 PTREGS_INFO(r31), \
 PTREGS_INFO(r63)

#define UNW_DEFAULT_RA(raItem, dataAlign) \
 ((raItem).where == Memory && !((raItem).value * (dataAlign) + 4))

extern int arc_unwind(struct unwind_frame_info *frame);
extern void arc_unwind_init(void);
extern void *unwind_add_table(struct module *module, const void *table_start,
         unsigned long table_size);
extern void unwind_remove_table(void *handle, int init_only);

static inline int
arch_unwind_init_running(struct unwind_frame_info *info,
    int (*callback) (struct unwind_frame_info *info,
       void *arg),
    void *arg)
{
 return 0;
}

static inline int arch_unw_user_mode(const struct unwind_frame_info *info)
{
 return 0;
}

static inline void arch_unw_init_blocked(struct unwind_frame_info *info)
{
 return;
}

static inline void arch_unw_init_frame_info(struct unwind_frame_info *info,
         struct pt_regs *regs)
{
 return;
}

#else

#define UNW_PC(frame) ((void)(frame), 0)
#define UNW_SP(frame) ((void)(frame), 0)
#define UNW_FP(frame) ((void)(frame), 0)

static inline void arc_unwind_init(void)
{
}

#define unwind_add_table(a, b, c)
#define unwind_remove_table(a, b)

#endif /* CONFIG_ARC_DW2_UNWIND */

#endif /* _ASM_ARC_UNWIND_H */

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

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