~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/alpha/include/asm/processor.h

Version: ~ [ linux-5.3-rc5 ] ~ [ linux-5.2.9 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.67 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.139 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.189 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.189 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.72 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * include/asm-alpha/processor.h
  3  *
  4  * Copyright (C) 1994 Linus Torvalds
  5  */
  6 
  7 #ifndef __ASM_ALPHA_PROCESSOR_H
  8 #define __ASM_ALPHA_PROCESSOR_H
  9 
 10 #include <linux/personality.h>  /* for ADDR_LIMIT_32BIT */
 11 
 12 /*
 13  * Returns current instruction pointer ("program counter").
 14  */
 15 #define current_text_addr() \
 16   ({ void *__pc; __asm__ ("br %0,.+4" : "=r"(__pc)); __pc; })
 17 
 18 /*
 19  * We have a 42-bit user address space: 4TB user VM...
 20  */
 21 #define TASK_SIZE (0x40000000000UL)
 22 
 23 #define STACK_TOP \
 24   (current->personality & ADDR_LIMIT_32BIT ? 0x80000000 : 0x00120000000UL)
 25 
 26 #define STACK_TOP_MAX   0x00120000000UL
 27 
 28 /* This decides where the kernel will search for a free chunk of vm
 29  * space during mmap's.
 30  */
 31 #define TASK_UNMAPPED_BASE \
 32   ((current->personality & ADDR_LIMIT_32BIT) ? 0x40000000 : TASK_SIZE / 2)
 33 
 34 typedef struct {
 35         unsigned long seg;
 36 } mm_segment_t;
 37 
 38 /* This is dead.  Everything has been moved to thread_info.  */
 39 struct thread_struct { };
 40 #define INIT_THREAD  { }
 41 
 42 /* Return saved PC of a blocked thread.  */
 43 struct task_struct;
 44 extern unsigned long thread_saved_pc(struct task_struct *);
 45 
 46 /* Do necessary setup to start up a newly executed thread.  */
 47 extern void start_thread(struct pt_regs *, unsigned long, unsigned long);
 48 
 49 /* Free all resources held by a thread. */
 50 extern void release_thread(struct task_struct *);
 51 
 52 unsigned long get_wchan(struct task_struct *p);
 53 
 54 #define KSTK_EIP(tsk) (task_pt_regs(tsk)->pc)
 55 
 56 #define KSTK_ESP(tsk) \
 57   ((tsk) == current ? rdusp() : task_thread_info(tsk)->pcb.usp)
 58 
 59 #define cpu_relax()     barrier()
 60 
 61 #define ARCH_HAS_PREFETCH
 62 #define ARCH_HAS_PREFETCHW
 63 #define ARCH_HAS_SPINLOCK_PREFETCH
 64 
 65 #ifndef CONFIG_SMP
 66 /* Nothing to prefetch. */
 67 #define spin_lock_prefetch(lock)        do { } while (0)
 68 #endif
 69 
 70 extern inline void prefetch(const void *ptr)  
 71 { 
 72         __builtin_prefetch(ptr, 0, 3);
 73 }
 74 
 75 extern inline void prefetchw(const void *ptr)  
 76 {
 77         __builtin_prefetch(ptr, 1, 3);
 78 }
 79 
 80 #ifdef CONFIG_SMP
 81 extern inline void spin_lock_prefetch(const void *ptr)  
 82 {
 83         __builtin_prefetch(ptr, 1, 3);
 84 }
 85 #endif
 86 
 87 #endif /* __ASM_ALPHA_PROCESSOR_H */
 88 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp