/* * User space process size: 3.75GB. This is hardcoded into a few places, * so don't change it unless you know what you are doing.
*/ #ifdef CONFIG_MMU #ifdefined(CONFIG_COLDFIRE) #define TASK_SIZE (0xC0000000UL) #elifdefined(CONFIG_SUN3) #define TASK_SIZE (0x0E000000UL) #else #define TASK_SIZE (0xF0000000UL) #endif #else #define TASK_SIZE (0xFFFFFFFFUL) #endif
/* This decides where the kernel will search for a free chunk of vm * space during mmap's.
*/ #ifdef CONFIG_MMU #ifdefined(CONFIG_COLDFIRE) #define TASK_UNMAPPED_BASE 0x60000000UL #elifdefined(CONFIG_SUN3) #define TASK_UNMAPPED_BASE 0x0A000000UL #else #define TASK_UNMAPPED_BASE 0xC0000000UL #endif #define TASK_UNMAPPED_ALIGN(addr, off) PAGE_ALIGN(addr) #else #define TASK_UNMAPPED_BASE 0 #endif
#ifdef CONFIG_CPU_HAS_ADDRESS_SPACES /* * Set the SFC/DFC registers for special MM operations. For most normal * operation these remain set to USER_DATA for the uaccess routines.
*/ staticinlinevoid set_fc(unsignedlong val)
{
WARN_ON_ONCE(in_interrupt());
/* * ColdFire stack format sbould be 0x4 for an aligned usp (will always be * true on thread creation). We need to set this explicitly.
*/ #ifdef CONFIG_COLDFIRE #define setframeformat(_regs) do { (_regs)->format = 0x4; } while(0) #else #define setframeformat(_regs) do { } while (0) #endif
/* * Do necessary setup to start up a newly executed thread.
*/ staticinlinevoid start_thread(struct pt_regs * regs, unsignedlong pc, unsignedlong usp)
{
regs->pc = pc;
regs->sr &= ~0x2000;
setframeformat(regs);
wrusp(usp);
}
/* Forward declaration, a strange C thing */ struct task_struct;
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.