/*
* Copyright ( C ) 2013 Altera Corporation
* Copyright ( C ) 2010 Tobias Klauser < tklauser @ distanz . ch >
* Copyright ( C ) 2004 Microtronix Datacom Ltd
* Copyright ( C ) 2001 Ken Hill ( khill @ microtronix . com )
* Vic Phillips ( vic @ microtronix . com )
*
* based on SPARC asm / processor_32 . h which is :
*
* Copyright ( C ) 1994 David S . Miller
*
* 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 .
*/
#ifndef _ASM_NIOS2_PROCESSOR_H
#define _ASM_NIOS2_PROCESSOR_H
#include <asm /ptrace.h>
#include <asm /registers.h>
#include <asm /page.h>
#define NIOS2_FLAG_KTHREAD 0 x00000001 /* task is a kernel thread */
#define NIOS2_OP_NOP 0 x1883a
#define NIOS2_OP_BREAK 0 x3da03a
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif /* __KERNEL__ */
/* Kuser helpers is mapped to this user space address */
#define KUSER_BASE 0 x1000
#define KUSER_SIZE (PAGE_SIZE)
#ifndef __ASSEMBLY__
# define TASK_SIZE 0 x7FFF0000UL
# define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3 ))
/* The Nios processor specific thread struct. */
struct thread_struct {
struct pt_regs *kregs;
/* Context switch saved kernel state. */
unsigned long ksp;
unsigned long kpsr;
};
# define INIT_THREAD { \
.kregs = NULL, \
.ksp = 0 , \
.kpsr = 0 , \
}
extern void start_thread(struct pt_regs *regs, unsigned long pc,
unsigned long sp);
struct task_struct;
extern unsigned long __get_wchan(struct task_struct *p);
#define task_pt_regs(p) \
((struct pt_regs *)(THREAD_SIZE + task_stack_page(p)) - 1 )
/* Used by procfs */
#define KSTK_EIP(tsk) ((tsk)->thread.kregs->ea)
#define KSTK_ESP(tsk) ((tsk)->thread.kregs->sp)
#define cpu_relax() barrier()
#endif /* __ASSEMBLY__ */
#endif /* _ASM_NIOS2_PROCESSOR_H */
Messung V0.5 in Prozent C=96 H=81 G=88
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland