UAPI: (Scripted) Disintegrate arch/ia64/include/asm
Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Michael Kerrisk <mtk.manpages@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Acked-by: Dave Jones <davej@redhat.com>
This commit is contained in:
parent
9e2d8656f5
commit
43e40f25d2
@ -1,16 +1,2 @@
|
|||||||
include include/asm-generic/Kbuild.asm
|
|
||||||
|
|
||||||
header-y += break.h
|
|
||||||
header-y += cmpxchg.h
|
|
||||||
header-y += fpu.h
|
|
||||||
header-y += gcc_intrin.h
|
|
||||||
header-y += ia64regs.h
|
|
||||||
header-y += intel_intrin.h
|
|
||||||
header-y += intrinsics.h
|
|
||||||
header-y += perfmon.h
|
|
||||||
header-y += perfmon_default_smpl.h
|
|
||||||
header-y += ptrace_offsets.h
|
|
||||||
header-y += rse.h
|
|
||||||
header-y += ucontext.h
|
|
||||||
header-y += ustack.h
|
|
||||||
generic-y += clkdev.h
|
generic-y += clkdev.h
|
||||||
|
@ -1,621 +1,12 @@
|
|||||||
#ifndef _ASM_IA64_GCC_INTRIN_H
|
|
||||||
#define _ASM_IA64_GCC_INTRIN_H
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002,2003 Jun Nakajima <jun.nakajima@intel.com>
|
* Copyright (C) 2002,2003 Jun Nakajima <jun.nakajima@intel.com>
|
||||||
* Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com>
|
* Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com>
|
||||||
*/
|
*/
|
||||||
|
#ifndef _ASM_IA64_GCC_INTRIN_H
|
||||||
|
#define _ASM_IA64_GCC_INTRIN_H
|
||||||
|
|
||||||
#include <linux/types.h>
|
#include <uapi/asm/gcc_intrin.h>
|
||||||
#include <linux/compiler.h>
|
|
||||||
|
|
||||||
/* define this macro to get some asm stmts included in 'c' files */
|
|
||||||
#define ASM_SUPPORTED
|
|
||||||
|
|
||||||
/* Optimization barrier */
|
|
||||||
/* The "volatile" is due to gcc bugs */
|
|
||||||
#define ia64_barrier() asm volatile ("":::"memory")
|
|
||||||
|
|
||||||
#define ia64_stop() asm volatile (";;"::)
|
|
||||||
|
|
||||||
#define ia64_invala_gr(regnum) asm volatile ("invala.e r%0" :: "i"(regnum))
|
|
||||||
|
|
||||||
#define ia64_invala_fr(regnum) asm volatile ("invala.e f%0" :: "i"(regnum))
|
|
||||||
|
|
||||||
#define ia64_flushrs() asm volatile ("flushrs;;":::"memory")
|
|
||||||
|
|
||||||
#define ia64_loadrs() asm volatile ("loadrs;;":::"memory")
|
|
||||||
|
|
||||||
extern void ia64_bad_param_for_setreg (void);
|
|
||||||
extern void ia64_bad_param_for_getreg (void);
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
register unsigned long ia64_r13 asm ("r13") __used;
|
register unsigned long ia64_r13 asm ("r13") __used;
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ia64_native_setreg(regnum, val) \
|
|
||||||
({ \
|
|
||||||
switch (regnum) { \
|
|
||||||
case _IA64_REG_PSR_L: \
|
|
||||||
asm volatile ("mov psr.l=%0" :: "r"(val) : "memory"); \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_AR_KR0 ... _IA64_REG_AR_EC: \
|
|
||||||
asm volatile ("mov ar%0=%1" :: \
|
|
||||||
"i" (regnum - _IA64_REG_AR_KR0), \
|
|
||||||
"r"(val): "memory"); \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_CR_DCR ... _IA64_REG_CR_LRR1: \
|
|
||||||
asm volatile ("mov cr%0=%1" :: \
|
|
||||||
"i" (regnum - _IA64_REG_CR_DCR), \
|
|
||||||
"r"(val): "memory" ); \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_SP: \
|
|
||||||
asm volatile ("mov r12=%0" :: \
|
|
||||||
"r"(val): "memory"); \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_GP: \
|
|
||||||
asm volatile ("mov gp=%0" :: "r"(val) : "memory"); \
|
|
||||||
break; \
|
|
||||||
default: \
|
|
||||||
ia64_bad_param_for_setreg(); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_native_getreg(regnum) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
\
|
|
||||||
switch (regnum) { \
|
|
||||||
case _IA64_REG_GP: \
|
|
||||||
asm volatile ("mov %0=gp" : "=r"(ia64_intri_res)); \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_IP: \
|
|
||||||
asm volatile ("mov %0=ip" : "=r"(ia64_intri_res)); \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_PSR: \
|
|
||||||
asm volatile ("mov %0=psr" : "=r"(ia64_intri_res)); \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_TP: /* for current() */ \
|
|
||||||
ia64_intri_res = ia64_r13; \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_AR_KR0 ... _IA64_REG_AR_EC: \
|
|
||||||
asm volatile ("mov %0=ar%1" : "=r" (ia64_intri_res) \
|
|
||||||
: "i"(regnum - _IA64_REG_AR_KR0)); \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_CR_DCR ... _IA64_REG_CR_LRR1: \
|
|
||||||
asm volatile ("mov %0=cr%1" : "=r" (ia64_intri_res) \
|
|
||||||
: "i" (regnum - _IA64_REG_CR_DCR)); \
|
|
||||||
break; \
|
|
||||||
case _IA64_REG_SP: \
|
|
||||||
asm volatile ("mov %0=sp" : "=r" (ia64_intri_res)); \
|
|
||||||
break; \
|
|
||||||
default: \
|
|
||||||
ia64_bad_param_for_getreg(); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_hint_pause 0
|
|
||||||
|
|
||||||
#define ia64_hint(mode) \
|
|
||||||
({ \
|
|
||||||
switch (mode) { \
|
|
||||||
case ia64_hint_pause: \
|
|
||||||
asm volatile ("hint @pause" ::: "memory"); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
/* Integer values for mux1 instruction */
|
|
||||||
#define ia64_mux1_brcst 0
|
|
||||||
#define ia64_mux1_mix 8
|
|
||||||
#define ia64_mux1_shuf 9
|
|
||||||
#define ia64_mux1_alt 10
|
|
||||||
#define ia64_mux1_rev 11
|
|
||||||
|
|
||||||
#define ia64_mux1(x, mode) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
\
|
|
||||||
switch (mode) { \
|
|
||||||
case ia64_mux1_brcst: \
|
|
||||||
asm ("mux1 %0=%1,@brcst" : "=r" (ia64_intri_res) : "r" (x)); \
|
|
||||||
break; \
|
|
||||||
case ia64_mux1_mix: \
|
|
||||||
asm ("mux1 %0=%1,@mix" : "=r" (ia64_intri_res) : "r" (x)); \
|
|
||||||
break; \
|
|
||||||
case ia64_mux1_shuf: \
|
|
||||||
asm ("mux1 %0=%1,@shuf" : "=r" (ia64_intri_res) : "r" (x)); \
|
|
||||||
break; \
|
|
||||||
case ia64_mux1_alt: \
|
|
||||||
asm ("mux1 %0=%1,@alt" : "=r" (ia64_intri_res) : "r" (x)); \
|
|
||||||
break; \
|
|
||||||
case ia64_mux1_rev: \
|
|
||||||
asm ("mux1 %0=%1,@rev" : "=r" (ia64_intri_res) : "r" (x)); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
|
|
||||||
# define ia64_popcnt(x) __builtin_popcountl(x)
|
|
||||||
#else
|
|
||||||
# define ia64_popcnt(x) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm ("popcnt %0=%1" : "=r" (ia64_intri_res) : "r" (x)); \
|
|
||||||
\
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ia64_getf_exp(x) \
|
|
||||||
({ \
|
|
||||||
long ia64_intri_res; \
|
|
||||||
\
|
|
||||||
asm ("getf.exp %0=%1" : "=r"(ia64_intri_res) : "f"(x)); \
|
|
||||||
\
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_shrp(a, b, count) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm ("shrp %0=%1,%2,%3" : "=r"(ia64_intri_res) : "r"(a), "r"(b), "i"(count)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_ldfs(regnum, x) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("ldfs %0=[%1]" :"=f"(__f__): "r"(x)); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_ldfd(regnum, x) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("ldfd %0=[%1]" :"=f"(__f__): "r"(x)); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_ldfe(regnum, x) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("ldfe %0=[%1]" :"=f"(__f__): "r"(x)); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_ldf8(regnum, x) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("ldf8 %0=[%1]" :"=f"(__f__): "r"(x)); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_ldf_fill(regnum, x) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("ldf.fill %0=[%1]" :"=f"(__f__): "r"(x)); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_st4_rel_nta(m, val) \
|
|
||||||
({ \
|
|
||||||
asm volatile ("st4.rel.nta [%0] = %1\n\t" :: "r"(m), "r"(val)); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_stfs(x, regnum) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("stfs [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_stfd(x, regnum) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("stfd [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_stfe(x, regnum) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("stfe [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_stf8(x, regnum) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("stf8 [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_stf_spill(x, regnum) \
|
|
||||||
({ \
|
|
||||||
register double __f__ asm ("f"#regnum); \
|
|
||||||
asm volatile ("stf.spill [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_fetchadd4_acq(p, inc) \
|
|
||||||
({ \
|
|
||||||
\
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("fetchadd4.acq %0=[%1],%2" \
|
|
||||||
: "=r"(ia64_intri_res) : "r"(p), "i" (inc) \
|
|
||||||
: "memory"); \
|
|
||||||
\
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_fetchadd4_rel(p, inc) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("fetchadd4.rel %0=[%1],%2" \
|
|
||||||
: "=r"(ia64_intri_res) : "r"(p), "i" (inc) \
|
|
||||||
: "memory"); \
|
|
||||||
\
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_fetchadd8_acq(p, inc) \
|
|
||||||
({ \
|
|
||||||
\
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("fetchadd8.acq %0=[%1],%2" \
|
|
||||||
: "=r"(ia64_intri_res) : "r"(p), "i" (inc) \
|
|
||||||
: "memory"); \
|
|
||||||
\
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_fetchadd8_rel(p, inc) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("fetchadd8.rel %0=[%1],%2" \
|
|
||||||
: "=r"(ia64_intri_res) : "r"(p), "i" (inc) \
|
|
||||||
: "memory"); \
|
|
||||||
\
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_xchg1(ptr,x) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("xchg1 %0=[%1],%2" \
|
|
||||||
: "=r" (ia64_intri_res) : "r" (ptr), "r" (x) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_xchg2(ptr,x) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("xchg2 %0=[%1],%2" : "=r" (ia64_intri_res) \
|
|
||||||
: "r" (ptr), "r" (x) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_xchg4(ptr,x) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("xchg4 %0=[%1],%2" : "=r" (ia64_intri_res) \
|
|
||||||
: "r" (ptr), "r" (x) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_xchg8(ptr,x) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("xchg8 %0=[%1],%2" : "=r" (ia64_intri_res) \
|
|
||||||
: "r" (ptr), "r" (x) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_cmpxchg1_acq(ptr, new, old) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
|
||||||
asm volatile ("cmpxchg1.acq %0=[%1],%2,ar.ccv": \
|
|
||||||
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_cmpxchg1_rel(ptr, new, old) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
|
||||||
asm volatile ("cmpxchg1.rel %0=[%1],%2,ar.ccv": \
|
|
||||||
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_cmpxchg2_acq(ptr, new, old) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
|
||||||
asm volatile ("cmpxchg2.acq %0=[%1],%2,ar.ccv": \
|
|
||||||
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_cmpxchg2_rel(ptr, new, old) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
|
||||||
\
|
|
||||||
asm volatile ("cmpxchg2.rel %0=[%1],%2,ar.ccv": \
|
|
||||||
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_cmpxchg4_acq(ptr, new, old) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
|
||||||
asm volatile ("cmpxchg4.acq %0=[%1],%2,ar.ccv": \
|
|
||||||
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_cmpxchg4_rel(ptr, new, old) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
|
||||||
asm volatile ("cmpxchg4.rel %0=[%1],%2,ar.ccv": \
|
|
||||||
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_cmpxchg8_acq(ptr, new, old) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
|
||||||
asm volatile ("cmpxchg8.acq %0=[%1],%2,ar.ccv": \
|
|
||||||
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_cmpxchg8_rel(ptr, new, old) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
|
||||||
\
|
|
||||||
asm volatile ("cmpxchg8.rel %0=[%1],%2,ar.ccv": \
|
|
||||||
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_mf() asm volatile ("mf" ::: "memory")
|
|
||||||
#define ia64_mfa() asm volatile ("mf.a" ::: "memory")
|
|
||||||
|
|
||||||
#define ia64_invala() asm volatile ("invala" ::: "memory")
|
|
||||||
|
|
||||||
#define ia64_native_thash(addr) \
|
|
||||||
({ \
|
|
||||||
unsigned long ia64_intri_res; \
|
|
||||||
asm volatile ("thash %0=%1" : "=r"(ia64_intri_res) : "r" (addr)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_srlz_i() asm volatile (";; srlz.i ;;" ::: "memory")
|
|
||||||
#define ia64_srlz_d() asm volatile (";; srlz.d" ::: "memory");
|
|
||||||
|
|
||||||
#ifdef HAVE_SERIALIZE_DIRECTIVE
|
|
||||||
# define ia64_dv_serialize_data() asm volatile (".serialize.data");
|
|
||||||
# define ia64_dv_serialize_instruction() asm volatile (".serialize.instruction");
|
|
||||||
#else
|
|
||||||
# define ia64_dv_serialize_data()
|
|
||||||
# define ia64_dv_serialize_instruction()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ia64_nop(x) asm volatile ("nop %0"::"i"(x));
|
|
||||||
|
|
||||||
#define ia64_itci(addr) asm volatile ("itc.i %0;;" :: "r"(addr) : "memory")
|
|
||||||
|
|
||||||
#define ia64_itcd(addr) asm volatile ("itc.d %0;;" :: "r"(addr) : "memory")
|
|
||||||
|
|
||||||
|
|
||||||
#define ia64_itri(trnum, addr) asm volatile ("itr.i itr[%0]=%1" \
|
|
||||||
:: "r"(trnum), "r"(addr) : "memory")
|
|
||||||
|
|
||||||
#define ia64_itrd(trnum, addr) asm volatile ("itr.d dtr[%0]=%1" \
|
|
||||||
:: "r"(trnum), "r"(addr) : "memory")
|
|
||||||
|
|
||||||
#define ia64_tpa(addr) \
|
|
||||||
({ \
|
|
||||||
unsigned long ia64_pa; \
|
|
||||||
asm volatile ("tpa %0 = %1" : "=r"(ia64_pa) : "r"(addr) : "memory"); \
|
|
||||||
ia64_pa; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define __ia64_set_dbr(index, val) \
|
|
||||||
asm volatile ("mov dbr[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
|
||||||
|
|
||||||
#define ia64_set_ibr(index, val) \
|
|
||||||
asm volatile ("mov ibr[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
|
||||||
|
|
||||||
#define ia64_set_pkr(index, val) \
|
|
||||||
asm volatile ("mov pkr[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
|
||||||
|
|
||||||
#define ia64_set_pmc(index, val) \
|
|
||||||
asm volatile ("mov pmc[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
|
||||||
|
|
||||||
#define ia64_set_pmd(index, val) \
|
|
||||||
asm volatile ("mov pmd[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
|
||||||
|
|
||||||
#define ia64_native_set_rr(index, val) \
|
|
||||||
asm volatile ("mov rr[%0]=%1" :: "r"(index), "r"(val) : "memory");
|
|
||||||
|
|
||||||
#define ia64_native_get_cpuid(index) \
|
|
||||||
({ \
|
|
||||||
unsigned long ia64_intri_res; \
|
|
||||||
asm volatile ("mov %0=cpuid[%r1]" : "=r"(ia64_intri_res) : "rO"(index)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define __ia64_get_dbr(index) \
|
|
||||||
({ \
|
|
||||||
unsigned long ia64_intri_res; \
|
|
||||||
asm volatile ("mov %0=dbr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_get_ibr(index) \
|
|
||||||
({ \
|
|
||||||
unsigned long ia64_intri_res; \
|
|
||||||
asm volatile ("mov %0=ibr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_get_pkr(index) \
|
|
||||||
({ \
|
|
||||||
unsigned long ia64_intri_res; \
|
|
||||||
asm volatile ("mov %0=pkr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_get_pmc(index) \
|
|
||||||
({ \
|
|
||||||
unsigned long ia64_intri_res; \
|
|
||||||
asm volatile ("mov %0=pmc[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
#define ia64_native_get_pmd(index) \
|
|
||||||
({ \
|
|
||||||
unsigned long ia64_intri_res; \
|
|
||||||
asm volatile ("mov %0=pmd[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_native_get_rr(index) \
|
|
||||||
({ \
|
|
||||||
unsigned long ia64_intri_res; \
|
|
||||||
asm volatile ("mov %0=rr[%1]" : "=r"(ia64_intri_res) : "r" (index)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_native_fc(addr) asm volatile ("fc %0" :: "r"(addr) : "memory")
|
|
||||||
|
|
||||||
|
|
||||||
#define ia64_sync_i() asm volatile (";; sync.i" ::: "memory")
|
|
||||||
|
|
||||||
#define ia64_native_ssm(mask) asm volatile ("ssm %0":: "i"((mask)) : "memory")
|
|
||||||
#define ia64_native_rsm(mask) asm volatile ("rsm %0":: "i"((mask)) : "memory")
|
|
||||||
#define ia64_sum(mask) asm volatile ("sum %0":: "i"((mask)) : "memory")
|
|
||||||
#define ia64_rum(mask) asm volatile ("rum %0":: "i"((mask)) : "memory")
|
|
||||||
|
|
||||||
#define ia64_ptce(addr) asm volatile ("ptc.e %0" :: "r"(addr))
|
|
||||||
|
|
||||||
#define ia64_native_ptcga(addr, size) \
|
|
||||||
do { \
|
|
||||||
asm volatile ("ptc.ga %0,%1" :: "r"(addr), "r"(size) : "memory"); \
|
|
||||||
ia64_dv_serialize_data(); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define ia64_ptcl(addr, size) \
|
|
||||||
do { \
|
|
||||||
asm volatile ("ptc.l %0,%1" :: "r"(addr), "r"(size) : "memory"); \
|
|
||||||
ia64_dv_serialize_data(); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define ia64_ptri(addr, size) \
|
|
||||||
asm volatile ("ptr.i %0,%1" :: "r"(addr), "r"(size) : "memory")
|
|
||||||
|
|
||||||
#define ia64_ptrd(addr, size) \
|
|
||||||
asm volatile ("ptr.d %0,%1" :: "r"(addr), "r"(size) : "memory")
|
|
||||||
|
|
||||||
#define ia64_ttag(addr) \
|
|
||||||
({ \
|
|
||||||
__u64 ia64_intri_res; \
|
|
||||||
asm volatile ("ttag %0=%1" : "=r"(ia64_intri_res) : "r" (addr)); \
|
|
||||||
ia64_intri_res; \
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
/* Values for lfhint in ia64_lfetch and ia64_lfetch_fault */
|
|
||||||
|
|
||||||
#define ia64_lfhint_none 0
|
|
||||||
#define ia64_lfhint_nt1 1
|
|
||||||
#define ia64_lfhint_nt2 2
|
|
||||||
#define ia64_lfhint_nta 3
|
|
||||||
|
|
||||||
#define ia64_lfetch(lfhint, y) \
|
|
||||||
({ \
|
|
||||||
switch (lfhint) { \
|
|
||||||
case ia64_lfhint_none: \
|
|
||||||
asm volatile ("lfetch [%0]" : : "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nt1: \
|
|
||||||
asm volatile ("lfetch.nt1 [%0]" : : "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nt2: \
|
|
||||||
asm volatile ("lfetch.nt2 [%0]" : : "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nta: \
|
|
||||||
asm volatile ("lfetch.nta [%0]" : : "r"(y)); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_lfetch_excl(lfhint, y) \
|
|
||||||
({ \
|
|
||||||
switch (lfhint) { \
|
|
||||||
case ia64_lfhint_none: \
|
|
||||||
asm volatile ("lfetch.excl [%0]" :: "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nt1: \
|
|
||||||
asm volatile ("lfetch.excl.nt1 [%0]" :: "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nt2: \
|
|
||||||
asm volatile ("lfetch.excl.nt2 [%0]" :: "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nta: \
|
|
||||||
asm volatile ("lfetch.excl.nta [%0]" :: "r"(y)); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_lfetch_fault(lfhint, y) \
|
|
||||||
({ \
|
|
||||||
switch (lfhint) { \
|
|
||||||
case ia64_lfhint_none: \
|
|
||||||
asm volatile ("lfetch.fault [%0]" : : "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nt1: \
|
|
||||||
asm volatile ("lfetch.fault.nt1 [%0]" : : "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nt2: \
|
|
||||||
asm volatile ("lfetch.fault.nt2 [%0]" : : "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nta: \
|
|
||||||
asm volatile ("lfetch.fault.nta [%0]" : : "r"(y)); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_lfetch_fault_excl(lfhint, y) \
|
|
||||||
({ \
|
|
||||||
switch (lfhint) { \
|
|
||||||
case ia64_lfhint_none: \
|
|
||||||
asm volatile ("lfetch.fault.excl [%0]" :: "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nt1: \
|
|
||||||
asm volatile ("lfetch.fault.excl.nt1 [%0]" :: "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nt2: \
|
|
||||||
asm volatile ("lfetch.fault.excl.nt2 [%0]" :: "r"(y)); \
|
|
||||||
break; \
|
|
||||||
case ia64_lfhint_nta: \
|
|
||||||
asm volatile ("lfetch.fault.excl.nta [%0]" :: "r"(y)); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_native_intrin_local_irq_restore(x) \
|
|
||||||
do { \
|
|
||||||
asm volatile (";; cmp.ne p6,p7=%0,r0;;" \
|
|
||||||
"(p6) ssm psr.i;" \
|
|
||||||
"(p7) rsm psr.i;;" \
|
|
||||||
"(p6) srlz.d" \
|
|
||||||
:: "r"((x)) : "p6", "p7", "memory"); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#endif /* _ASM_IA64_GCC_INTRIN_H */
|
#endif /* _ASM_IA64_GCC_INTRIN_H */
|
||||||
|
@ -1,99 +1,16 @@
|
|||||||
#ifndef _ASM_IA64_INTRINSICS_H
|
|
||||||
#define _ASM_IA64_INTRINSICS_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Compiler-dependent intrinsics.
|
* Compiler-dependent intrinsics.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2003 Hewlett-Packard Co
|
* Copyright (C) 2002-2003 Hewlett-Packard Co
|
||||||
* David Mosberger-Tang <davidm@hpl.hp.com>
|
* David Mosberger-Tang <davidm@hpl.hp.com>
|
||||||
*/
|
*/
|
||||||
|
#ifndef _ASM_IA64_INTRINSICS_H
|
||||||
|
#define _ASM_IA64_INTRINSICS_H
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
|
||||||
|
|
||||||
#include <linux/types.h>
|
|
||||||
/* include compiler specific intrinsics */
|
|
||||||
#include <asm/ia64regs.h>
|
|
||||||
#ifdef __INTEL_COMPILER
|
|
||||||
# include <asm/intel_intrin.h>
|
|
||||||
#else
|
|
||||||
# include <asm/gcc_intrin.h>
|
|
||||||
#endif
|
|
||||||
#include <asm/cmpxchg.h>
|
|
||||||
|
|
||||||
#define ia64_native_get_psr_i() (ia64_native_getreg(_IA64_REG_PSR) & IA64_PSR_I)
|
|
||||||
|
|
||||||
#define ia64_native_set_rr0_to_rr4(val0, val1, val2, val3, val4) \
|
|
||||||
do { \
|
|
||||||
ia64_native_set_rr(0x0000000000000000UL, (val0)); \
|
|
||||||
ia64_native_set_rr(0x2000000000000000UL, (val1)); \
|
|
||||||
ia64_native_set_rr(0x4000000000000000UL, (val2)); \
|
|
||||||
ia64_native_set_rr(0x6000000000000000UL, (val3)); \
|
|
||||||
ia64_native_set_rr(0x8000000000000000UL, (val4)); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Force an unresolved reference if someone tries to use
|
|
||||||
* ia64_fetch_and_add() with a bad value.
|
|
||||||
*/
|
|
||||||
extern unsigned long __bad_size_for_ia64_fetch_and_add (void);
|
|
||||||
extern unsigned long __bad_increment_for_ia64_fetch_and_add (void);
|
|
||||||
|
|
||||||
#define IA64_FETCHADD(tmp,v,n,sz,sem) \
|
|
||||||
({ \
|
|
||||||
switch (sz) { \
|
|
||||||
case 4: \
|
|
||||||
tmp = ia64_fetchadd4_##sem((unsigned int *) v, n); \
|
|
||||||
break; \
|
|
||||||
\
|
|
||||||
case 8: \
|
|
||||||
tmp = ia64_fetchadd8_##sem((unsigned long *) v, n); \
|
|
||||||
break; \
|
|
||||||
\
|
|
||||||
default: \
|
|
||||||
__bad_size_for_ia64_fetch_and_add(); \
|
|
||||||
} \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_fetchadd(i,v,sem) \
|
|
||||||
({ \
|
|
||||||
__u64 _tmp; \
|
|
||||||
volatile __typeof__(*(v)) *_v = (v); \
|
|
||||||
/* Can't use a switch () here: gcc isn't always smart enough for that... */ \
|
|
||||||
if ((i) == -16) \
|
|
||||||
IA64_FETCHADD(_tmp, _v, -16, sizeof(*(v)), sem); \
|
|
||||||
else if ((i) == -8) \
|
|
||||||
IA64_FETCHADD(_tmp, _v, -8, sizeof(*(v)), sem); \
|
|
||||||
else if ((i) == -4) \
|
|
||||||
IA64_FETCHADD(_tmp, _v, -4, sizeof(*(v)), sem); \
|
|
||||||
else if ((i) == -1) \
|
|
||||||
IA64_FETCHADD(_tmp, _v, -1, sizeof(*(v)), sem); \
|
|
||||||
else if ((i) == 1) \
|
|
||||||
IA64_FETCHADD(_tmp, _v, 1, sizeof(*(v)), sem); \
|
|
||||||
else if ((i) == 4) \
|
|
||||||
IA64_FETCHADD(_tmp, _v, 4, sizeof(*(v)), sem); \
|
|
||||||
else if ((i) == 8) \
|
|
||||||
IA64_FETCHADD(_tmp, _v, 8, sizeof(*(v)), sem); \
|
|
||||||
else if ((i) == 16) \
|
|
||||||
IA64_FETCHADD(_tmp, _v, 16, sizeof(*(v)), sem); \
|
|
||||||
else \
|
|
||||||
_tmp = __bad_increment_for_ia64_fetch_and_add(); \
|
|
||||||
(__typeof__(*(v))) (_tmp); /* return old value */ \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
#include <asm/paravirt_privop.h>
|
#include <asm/paravirt_privop.h>
|
||||||
#endif
|
#include <uapi/asm/intrinsics.h>
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
#define IA64_INTRINSIC_API(name) ia64_native_ ## name
|
|
||||||
#define IA64_INTRINSIC_MACRO(name) ia64_native_ ## name
|
|
||||||
|
|
||||||
#if defined(__KERNEL__)
|
|
||||||
#if defined(CONFIG_PARAVIRT)
|
#if defined(CONFIG_PARAVIRT)
|
||||||
# undef IA64_INTRINSIC_API
|
# undef IA64_INTRINSIC_API
|
||||||
# undef IA64_INTRINSIC_MACRO
|
# undef IA64_INTRINSIC_MACRO
|
||||||
@ -104,36 +21,5 @@ extern unsigned long __bad_increment_for_ia64_fetch_and_add (void);
|
|||||||
# endif
|
# endif
|
||||||
#define IA64_INTRINSIC_MACRO(name) paravirt_ ## name
|
#define IA64_INTRINSIC_MACRO(name) paravirt_ ## name
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/************************************************/
|
|
||||||
/* Instructions paravirtualized for correctness */
|
|
||||||
/************************************************/
|
|
||||||
/* fc, thash, get_cpuid, get_pmd, get_eflags, set_eflags */
|
|
||||||
/* Note that "ttag" and "cover" are also privilege-sensitive; "ttag"
|
|
||||||
* is not currently used (though it may be in a long-format VHPT system!)
|
|
||||||
*/
|
|
||||||
#define ia64_fc IA64_INTRINSIC_API(fc)
|
|
||||||
#define ia64_thash IA64_INTRINSIC_API(thash)
|
|
||||||
#define ia64_get_cpuid IA64_INTRINSIC_API(get_cpuid)
|
|
||||||
#define ia64_get_pmd IA64_INTRINSIC_API(get_pmd)
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************/
|
|
||||||
/* Instructions paravirtualized for performance */
|
|
||||||
/************************************************/
|
|
||||||
#define ia64_ssm IA64_INTRINSIC_MACRO(ssm)
|
|
||||||
#define ia64_rsm IA64_INTRINSIC_MACRO(rsm)
|
|
||||||
#define ia64_getreg IA64_INTRINSIC_MACRO(getreg)
|
|
||||||
#define ia64_setreg IA64_INTRINSIC_API(setreg)
|
|
||||||
#define ia64_set_rr IA64_INTRINSIC_API(set_rr)
|
|
||||||
#define ia64_get_rr IA64_INTRINSIC_API(get_rr)
|
|
||||||
#define ia64_ptcga IA64_INTRINSIC_API(ptcga)
|
|
||||||
#define ia64_get_psr_i IA64_INTRINSIC_API(get_psr_i)
|
|
||||||
#define ia64_intrin_local_irq_restore \
|
|
||||||
IA64_INTRINSIC_API(intrin_local_irq_restore)
|
|
||||||
#define ia64_set_rr0_to_rr4 IA64_INTRINSIC_API(set_rr0_to_rr4)
|
|
||||||
|
|
||||||
#endif /* !__ASSEMBLY__ */
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
||||||
#endif /* _ASM_IA64_INTRINSICS_H */
|
#endif /* _ASM_IA64_INTRINSICS_H */
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#ifndef __IA64_KVM_PARA_H
|
|
||||||
#define __IA64_KVM_PARA_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2007 Xiantao Zhang <xiantao.zhang@intel.com>
|
* Copyright (C) 2007 Xiantao Zhang <xiantao.zhang@intel.com>
|
||||||
*
|
*
|
||||||
@ -18,8 +15,11 @@
|
|||||||
* Place - Suite 330, Boston, MA 02111-1307 USA.
|
* Place - Suite 330, Boston, MA 02111-1307 USA.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#ifndef __IA64_KVM_PARA_H
|
||||||
|
#define __IA64_KVM_PARA_H
|
||||||
|
|
||||||
|
#include <uapi/asm/kvm_para.h>
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
|
|
||||||
static inline unsigned int kvm_arch_para_features(void)
|
static inline unsigned int kvm_arch_para_features(void)
|
||||||
{
|
{
|
||||||
@ -32,5 +32,3 @@ static inline bool kvm_check_and_clear_guest_paused(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -1,23 +1,17 @@
|
|||||||
#ifndef _ASM_IA64_MMAN_H
|
|
||||||
#define _ASM_IA64_MMAN_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Based on <asm-i386/mman.h>.
|
* Based on <asm-i386/mman.h>.
|
||||||
*
|
*
|
||||||
* Modified 1998-2000, 2002
|
* Modified 1998-2000, 2002
|
||||||
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
*/
|
*/
|
||||||
|
#ifndef _ASM_IA64_MMAN_H
|
||||||
|
#define _ASM_IA64_MMAN_H
|
||||||
|
|
||||||
#include <asm-generic/mman.h>
|
#include <uapi/asm/mman.h>
|
||||||
|
|
||||||
#define MAP_GROWSUP 0x0200 /* register stack-like segment */
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
#define arch_mmap_check ia64_mmap_check
|
#define arch_mmap_check ia64_mmap_check
|
||||||
int ia64_mmap_check(unsigned long addr, unsigned long len,
|
int ia64_mmap_check(unsigned long addr, unsigned long len,
|
||||||
unsigned long flags);
|
unsigned long flags);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _ASM_IA64_MMAN_H */
|
#endif /* _ASM_IA64_MMAN_H */
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#ifndef _ASM_IA64_PARAM_H
|
|
||||||
#define _ASM_IA64_PARAM_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fundamental kernel parameters.
|
* Fundamental kernel parameters.
|
||||||
*
|
*
|
||||||
@ -9,25 +6,12 @@
|
|||||||
* Modified 1998, 1999, 2002-2003
|
* Modified 1998, 1999, 2002-2003
|
||||||
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
*/
|
*/
|
||||||
|
#ifndef _ASM_IA64_PARAM_H
|
||||||
|
#define _ASM_IA64_PARAM_H
|
||||||
|
|
||||||
#define EXEC_PAGESIZE 65536
|
#include <uapi/asm/param.h>
|
||||||
|
|
||||||
#ifndef NOGROUP
|
|
||||||
# define NOGROUP (-1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MAXHOSTNAMELEN 64 /* max length of hostname */
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
# define HZ CONFIG_HZ
|
# define HZ CONFIG_HZ
|
||||||
# define USER_HZ HZ
|
# define USER_HZ HZ
|
||||||
# define CLOCKS_PER_SEC HZ /* frequency at which times() counts */
|
# define CLOCKS_PER_SEC HZ /* frequency at which times() counts */
|
||||||
#else
|
|
||||||
/*
|
|
||||||
* Technically, this is wrong, but some old apps still refer to it. The proper way to
|
|
||||||
* get the HZ value is via sysconf(_SC_CLK_TCK).
|
|
||||||
*/
|
|
||||||
# define HZ 1024
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _ASM_IA64_PARAM_H */
|
#endif /* _ASM_IA64_PARAM_H */
|
||||||
|
@ -2,178 +2,11 @@
|
|||||||
* Copyright (C) 2001-2003 Hewlett-Packard Co
|
* Copyright (C) 2001-2003 Hewlett-Packard Co
|
||||||
* Stephane Eranian <eranian@hpl.hp.com>
|
* Stephane Eranian <eranian@hpl.hp.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASM_IA64_PERFMON_H
|
#ifndef _ASM_IA64_PERFMON_H
|
||||||
#define _ASM_IA64_PERFMON_H
|
#define _ASM_IA64_PERFMON_H
|
||||||
|
|
||||||
/*
|
#include <uapi/asm/perfmon.h>
|
||||||
* perfmon commands supported on all CPU models
|
|
||||||
*/
|
|
||||||
#define PFM_WRITE_PMCS 0x01
|
|
||||||
#define PFM_WRITE_PMDS 0x02
|
|
||||||
#define PFM_READ_PMDS 0x03
|
|
||||||
#define PFM_STOP 0x04
|
|
||||||
#define PFM_START 0x05
|
|
||||||
#define PFM_ENABLE 0x06 /* obsolete */
|
|
||||||
#define PFM_DISABLE 0x07 /* obsolete */
|
|
||||||
#define PFM_CREATE_CONTEXT 0x08
|
|
||||||
#define PFM_DESTROY_CONTEXT 0x09 /* obsolete use close() */
|
|
||||||
#define PFM_RESTART 0x0a
|
|
||||||
#define PFM_PROTECT_CONTEXT 0x0b /* obsolete */
|
|
||||||
#define PFM_GET_FEATURES 0x0c
|
|
||||||
#define PFM_DEBUG 0x0d
|
|
||||||
#define PFM_UNPROTECT_CONTEXT 0x0e /* obsolete */
|
|
||||||
#define PFM_GET_PMC_RESET_VAL 0x0f
|
|
||||||
#define PFM_LOAD_CONTEXT 0x10
|
|
||||||
#define PFM_UNLOAD_CONTEXT 0x11
|
|
||||||
|
|
||||||
/*
|
|
||||||
* PMU model specific commands (may not be supported on all PMU models)
|
|
||||||
*/
|
|
||||||
#define PFM_WRITE_IBRS 0x20
|
|
||||||
#define PFM_WRITE_DBRS 0x21
|
|
||||||
|
|
||||||
/*
|
|
||||||
* context flags
|
|
||||||
*/
|
|
||||||
#define PFM_FL_NOTIFY_BLOCK 0x01 /* block task on user level notifications */
|
|
||||||
#define PFM_FL_SYSTEM_WIDE 0x02 /* create a system wide context */
|
|
||||||
#define PFM_FL_OVFL_NO_MSG 0x80 /* do not post overflow/end messages for notification */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* event set flags
|
|
||||||
*/
|
|
||||||
#define PFM_SETFL_EXCL_IDLE 0x01 /* exclude idle task (syswide only) XXX: DO NOT USE YET */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* PMC flags
|
|
||||||
*/
|
|
||||||
#define PFM_REGFL_OVFL_NOTIFY 0x1 /* send notification on overflow */
|
|
||||||
#define PFM_REGFL_RANDOM 0x2 /* randomize sampling interval */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* PMD/PMC/IBR/DBR return flags (ignored on input)
|
|
||||||
*
|
|
||||||
* Those flags are used on output and must be checked in case EAGAIN is returned
|
|
||||||
* by any of the calls using a pfarg_reg_t or pfarg_dbreg_t structure.
|
|
||||||
*/
|
|
||||||
#define PFM_REG_RETFL_NOTAVAIL (1UL<<31) /* set if register is implemented but not available */
|
|
||||||
#define PFM_REG_RETFL_EINVAL (1UL<<30) /* set if register entry is invalid */
|
|
||||||
#define PFM_REG_RETFL_MASK (PFM_REG_RETFL_NOTAVAIL|PFM_REG_RETFL_EINVAL)
|
|
||||||
|
|
||||||
#define PFM_REG_HAS_ERROR(flag) (((flag) & PFM_REG_RETFL_MASK) != 0)
|
|
||||||
|
|
||||||
typedef unsigned char pfm_uuid_t[16]; /* custom sampling buffer identifier type */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Request structure used to define a context
|
|
||||||
*/
|
|
||||||
typedef struct {
|
|
||||||
pfm_uuid_t ctx_smpl_buf_id; /* which buffer format to use (if needed) */
|
|
||||||
unsigned long ctx_flags; /* noblock/block */
|
|
||||||
unsigned short ctx_nextra_sets; /* number of extra event sets (you always get 1) */
|
|
||||||
unsigned short ctx_reserved1; /* for future use */
|
|
||||||
int ctx_fd; /* return arg: unique identification for context */
|
|
||||||
void *ctx_smpl_vaddr; /* return arg: virtual address of sampling buffer, is used */
|
|
||||||
unsigned long ctx_reserved2[11];/* for future use */
|
|
||||||
} pfarg_context_t;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Request structure used to write/read a PMC or PMD
|
|
||||||
*/
|
|
||||||
typedef struct {
|
|
||||||
unsigned int reg_num; /* which register */
|
|
||||||
unsigned short reg_set; /* event set for this register */
|
|
||||||
unsigned short reg_reserved1; /* for future use */
|
|
||||||
|
|
||||||
unsigned long reg_value; /* initial pmc/pmd value */
|
|
||||||
unsigned long reg_flags; /* input: pmc/pmd flags, return: reg error */
|
|
||||||
|
|
||||||
unsigned long reg_long_reset; /* reset after buffer overflow notification */
|
|
||||||
unsigned long reg_short_reset; /* reset after counter overflow */
|
|
||||||
|
|
||||||
unsigned long reg_reset_pmds[4]; /* which other counters to reset on overflow */
|
|
||||||
unsigned long reg_random_seed; /* seed value when randomization is used */
|
|
||||||
unsigned long reg_random_mask; /* bitmask used to limit random value */
|
|
||||||
unsigned long reg_last_reset_val;/* return: PMD last reset value */
|
|
||||||
|
|
||||||
unsigned long reg_smpl_pmds[4]; /* which pmds are accessed when PMC overflows */
|
|
||||||
unsigned long reg_smpl_eventid; /* opaque sampling event identifier */
|
|
||||||
|
|
||||||
unsigned long reg_reserved2[3]; /* for future use */
|
|
||||||
} pfarg_reg_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned int dbreg_num; /* which debug register */
|
|
||||||
unsigned short dbreg_set; /* event set for this register */
|
|
||||||
unsigned short dbreg_reserved1; /* for future use */
|
|
||||||
unsigned long dbreg_value; /* value for debug register */
|
|
||||||
unsigned long dbreg_flags; /* return: dbreg error */
|
|
||||||
unsigned long dbreg_reserved2[1]; /* for future use */
|
|
||||||
} pfarg_dbreg_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned int ft_version; /* perfmon: major [16-31], minor [0-15] */
|
|
||||||
unsigned int ft_reserved; /* reserved for future use */
|
|
||||||
unsigned long reserved[4]; /* for future use */
|
|
||||||
} pfarg_features_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
pid_t load_pid; /* process to load the context into */
|
|
||||||
unsigned short load_set; /* first event set to load */
|
|
||||||
unsigned short load_reserved1; /* for future use */
|
|
||||||
unsigned long load_reserved2[3]; /* for future use */
|
|
||||||
} pfarg_load_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int msg_type; /* generic message header */
|
|
||||||
int msg_ctx_fd; /* generic message header */
|
|
||||||
unsigned long msg_ovfl_pmds[4]; /* which PMDs overflowed */
|
|
||||||
unsigned short msg_active_set; /* active set at the time of overflow */
|
|
||||||
unsigned short msg_reserved1; /* for future use */
|
|
||||||
unsigned int msg_reserved2; /* for future use */
|
|
||||||
unsigned long msg_tstamp; /* for perf tuning/debug */
|
|
||||||
} pfm_ovfl_msg_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int msg_type; /* generic message header */
|
|
||||||
int msg_ctx_fd; /* generic message header */
|
|
||||||
unsigned long msg_tstamp; /* for perf tuning */
|
|
||||||
} pfm_end_msg_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int msg_type; /* type of the message */
|
|
||||||
int msg_ctx_fd; /* unique identifier for the context */
|
|
||||||
unsigned long msg_tstamp; /* for perf tuning */
|
|
||||||
} pfm_gen_msg_t;
|
|
||||||
|
|
||||||
#define PFM_MSG_OVFL 1 /* an overflow happened */
|
|
||||||
#define PFM_MSG_END 2 /* task to which context was attached ended */
|
|
||||||
|
|
||||||
typedef union {
|
|
||||||
pfm_ovfl_msg_t pfm_ovfl_msg;
|
|
||||||
pfm_end_msg_t pfm_end_msg;
|
|
||||||
pfm_gen_msg_t pfm_gen_msg;
|
|
||||||
} pfm_msg_t;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Define the version numbers for both perfmon as a whole and the sampling buffer format.
|
|
||||||
*/
|
|
||||||
#define PFM_VERSION_MAJ 2U
|
|
||||||
#define PFM_VERSION_MIN 0U
|
|
||||||
#define PFM_VERSION (((PFM_VERSION_MAJ&0xffff)<<16)|(PFM_VERSION_MIN & 0xffff))
|
|
||||||
#define PFM_VERSION_MAJOR(x) (((x)>>16) & 0xffff)
|
|
||||||
#define PFM_VERSION_MINOR(x) ((x) & 0xffff)
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* miscellaneous architected definitions
|
|
||||||
*/
|
|
||||||
#define PMU_FIRST_COUNTER 4 /* first counting monitor (PMC/PMD) */
|
|
||||||
#define PMU_MAX_PMCS 256 /* maximum architected number of PMC registers */
|
|
||||||
#define PMU_MAX_PMDS 256 /* maximum architected number of PMD registers */
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
|
|
||||||
extern long perfmonctl(int fd, int cmd, void *arg, int narg);
|
extern long perfmonctl(int fd, int cmd, void *arg, int narg);
|
||||||
|
|
||||||
@ -274,6 +107,4 @@ typedef struct {
|
|||||||
extern pfm_sysctl_t pfm_sysctl;
|
extern pfm_sysctl_t pfm_sysctl;
|
||||||
|
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
|
||||||
|
|
||||||
#endif /* _ASM_IA64_PERFMON_H */
|
#endif /* _ASM_IA64_PERFMON_H */
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#ifndef _ASM_IA64_PTRACE_H
|
|
||||||
#define _ASM_IA64_PTRACE_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1998-2004 Hewlett-Packard Co
|
* Copyright (C) 1998-2004 Hewlett-Packard Co
|
||||||
* David Mosberger-Tang <davidm@hpl.hp.com>
|
* David Mosberger-Tang <davidm@hpl.hp.com>
|
||||||
@ -15,52 +12,13 @@
|
|||||||
* 6/17/99 D. Mosberger added second unat member to "struct switch_stack"
|
* 6/17/99 D. Mosberger added second unat member to "struct switch_stack"
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
/*
|
#ifndef _ASM_IA64_PTRACE_H
|
||||||
* When a user process is blocked, its state looks as follows:
|
#define _ASM_IA64_PTRACE_H
|
||||||
*
|
|
||||||
* +----------------------+ ------- IA64_STK_OFFSET
|
|
||||||
* | | ^
|
|
||||||
* | struct pt_regs | |
|
|
||||||
* | | |
|
|
||||||
* +----------------------+ |
|
|
||||||
* | | |
|
|
||||||
* | memory stack | |
|
|
||||||
* | (growing downwards) | |
|
|
||||||
* //.....................// |
|
|
||||||
* |
|
|
||||||
* //.....................// |
|
|
||||||
* | | |
|
|
||||||
* +----------------------+ |
|
|
||||||
* | struct switch_stack | |
|
|
||||||
* | | |
|
|
||||||
* +----------------------+ |
|
|
||||||
* | | |
|
|
||||||
* //.....................// |
|
|
||||||
* |
|
|
||||||
* //.....................// |
|
|
||||||
* | | |
|
|
||||||
* | register stack | |
|
|
||||||
* | (growing upwards) | |
|
|
||||||
* | | |
|
|
||||||
* +----------------------+ | --- IA64_RBS_OFFSET
|
|
||||||
* | struct thread_info | | ^
|
|
||||||
* +----------------------+ | |
|
|
||||||
* | | | |
|
|
||||||
* | struct task_struct | | |
|
|
||||||
* current -> | | | |
|
|
||||||
* +----------------------+ -------
|
|
||||||
*
|
|
||||||
* Note that ar.ec is not saved explicitly in pt_reg or switch_stack.
|
|
||||||
* This is because ar.ec is saved as part of ar.pfs.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <asm/fpu.h>
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
#ifndef ASM_OFFSETS_C
|
#ifndef ASM_OFFSETS_C
|
||||||
#include <asm/asm-offsets.h>
|
#include <asm/asm-offsets.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <uapi/asm/ptrace.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Base-2 logarithm of number of pages to allocate per task structure
|
* Base-2 logarithm of number of pages to allocate per task structure
|
||||||
@ -81,155 +39,8 @@
|
|||||||
|
|
||||||
#define KERNEL_STACK_SIZE IA64_STK_OFFSET
|
#define KERNEL_STACK_SIZE IA64_STK_OFFSET
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
/*
|
|
||||||
* This struct defines the way the registers are saved on system
|
|
||||||
* calls.
|
|
||||||
*
|
|
||||||
* We don't save all floating point register because the kernel
|
|
||||||
* is compiled to use only a very small subset, so the other are
|
|
||||||
* untouched.
|
|
||||||
*
|
|
||||||
* THIS STRUCTURE MUST BE A MULTIPLE 16-BYTE IN SIZE
|
|
||||||
* (because the memory stack pointer MUST ALWAYS be aligned this way)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
struct pt_regs {
|
|
||||||
/* The following registers are saved by SAVE_MIN: */
|
|
||||||
unsigned long b6; /* scratch */
|
|
||||||
unsigned long b7; /* scratch */
|
|
||||||
|
|
||||||
unsigned long ar_csd; /* used by cmp8xchg16 (scratch) */
|
|
||||||
unsigned long ar_ssd; /* reserved for future use (scratch) */
|
|
||||||
|
|
||||||
unsigned long r8; /* scratch (return value register 0) */
|
|
||||||
unsigned long r9; /* scratch (return value register 1) */
|
|
||||||
unsigned long r10; /* scratch (return value register 2) */
|
|
||||||
unsigned long r11; /* scratch (return value register 3) */
|
|
||||||
|
|
||||||
unsigned long cr_ipsr; /* interrupted task's psr */
|
|
||||||
unsigned long cr_iip; /* interrupted task's instruction pointer */
|
|
||||||
/*
|
|
||||||
* interrupted task's function state; if bit 63 is cleared, it
|
|
||||||
* contains syscall's ar.pfs.pfm:
|
|
||||||
*/
|
|
||||||
unsigned long cr_ifs;
|
|
||||||
|
|
||||||
unsigned long ar_unat; /* interrupted task's NaT register (preserved) */
|
|
||||||
unsigned long ar_pfs; /* prev function state */
|
|
||||||
unsigned long ar_rsc; /* RSE configuration */
|
|
||||||
/* The following two are valid only if cr_ipsr.cpl > 0 || ti->flags & _TIF_MCA_INIT */
|
|
||||||
unsigned long ar_rnat; /* RSE NaT */
|
|
||||||
unsigned long ar_bspstore; /* RSE bspstore */
|
|
||||||
|
|
||||||
unsigned long pr; /* 64 predicate registers (1 bit each) */
|
|
||||||
unsigned long b0; /* return pointer (bp) */
|
|
||||||
unsigned long loadrs; /* size of dirty partition << 16 */
|
|
||||||
|
|
||||||
unsigned long r1; /* the gp pointer */
|
|
||||||
unsigned long r12; /* interrupted task's memory stack pointer */
|
|
||||||
unsigned long r13; /* thread pointer */
|
|
||||||
|
|
||||||
unsigned long ar_fpsr; /* floating point status (preserved) */
|
|
||||||
unsigned long r15; /* scratch */
|
|
||||||
|
|
||||||
/* The remaining registers are NOT saved for system calls. */
|
|
||||||
|
|
||||||
unsigned long r14; /* scratch */
|
|
||||||
unsigned long r2; /* scratch */
|
|
||||||
unsigned long r3; /* scratch */
|
|
||||||
|
|
||||||
/* The following registers are saved by SAVE_REST: */
|
|
||||||
unsigned long r16; /* scratch */
|
|
||||||
unsigned long r17; /* scratch */
|
|
||||||
unsigned long r18; /* scratch */
|
|
||||||
unsigned long r19; /* scratch */
|
|
||||||
unsigned long r20; /* scratch */
|
|
||||||
unsigned long r21; /* scratch */
|
|
||||||
unsigned long r22; /* scratch */
|
|
||||||
unsigned long r23; /* scratch */
|
|
||||||
unsigned long r24; /* scratch */
|
|
||||||
unsigned long r25; /* scratch */
|
|
||||||
unsigned long r26; /* scratch */
|
|
||||||
unsigned long r27; /* scratch */
|
|
||||||
unsigned long r28; /* scratch */
|
|
||||||
unsigned long r29; /* scratch */
|
|
||||||
unsigned long r30; /* scratch */
|
|
||||||
unsigned long r31; /* scratch */
|
|
||||||
|
|
||||||
unsigned long ar_ccv; /* compare/exchange value (scratch) */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Floating point registers that the kernel considers scratch:
|
|
||||||
*/
|
|
||||||
struct ia64_fpreg f6; /* scratch */
|
|
||||||
struct ia64_fpreg f7; /* scratch */
|
|
||||||
struct ia64_fpreg f8; /* scratch */
|
|
||||||
struct ia64_fpreg f9; /* scratch */
|
|
||||||
struct ia64_fpreg f10; /* scratch */
|
|
||||||
struct ia64_fpreg f11; /* scratch */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This structure contains the addition registers that need to
|
|
||||||
* preserved across a context switch. This generally consists of
|
|
||||||
* "preserved" registers.
|
|
||||||
*/
|
|
||||||
struct switch_stack {
|
|
||||||
unsigned long caller_unat; /* user NaT collection register (preserved) */
|
|
||||||
unsigned long ar_fpsr; /* floating-point status register */
|
|
||||||
|
|
||||||
struct ia64_fpreg f2; /* preserved */
|
|
||||||
struct ia64_fpreg f3; /* preserved */
|
|
||||||
struct ia64_fpreg f4; /* preserved */
|
|
||||||
struct ia64_fpreg f5; /* preserved */
|
|
||||||
|
|
||||||
struct ia64_fpreg f12; /* scratch, but untouched by kernel */
|
|
||||||
struct ia64_fpreg f13; /* scratch, but untouched by kernel */
|
|
||||||
struct ia64_fpreg f14; /* scratch, but untouched by kernel */
|
|
||||||
struct ia64_fpreg f15; /* scratch, but untouched by kernel */
|
|
||||||
struct ia64_fpreg f16; /* preserved */
|
|
||||||
struct ia64_fpreg f17; /* preserved */
|
|
||||||
struct ia64_fpreg f18; /* preserved */
|
|
||||||
struct ia64_fpreg f19; /* preserved */
|
|
||||||
struct ia64_fpreg f20; /* preserved */
|
|
||||||
struct ia64_fpreg f21; /* preserved */
|
|
||||||
struct ia64_fpreg f22; /* preserved */
|
|
||||||
struct ia64_fpreg f23; /* preserved */
|
|
||||||
struct ia64_fpreg f24; /* preserved */
|
|
||||||
struct ia64_fpreg f25; /* preserved */
|
|
||||||
struct ia64_fpreg f26; /* preserved */
|
|
||||||
struct ia64_fpreg f27; /* preserved */
|
|
||||||
struct ia64_fpreg f28; /* preserved */
|
|
||||||
struct ia64_fpreg f29; /* preserved */
|
|
||||||
struct ia64_fpreg f30; /* preserved */
|
|
||||||
struct ia64_fpreg f31; /* preserved */
|
|
||||||
|
|
||||||
unsigned long r4; /* preserved */
|
|
||||||
unsigned long r5; /* preserved */
|
|
||||||
unsigned long r6; /* preserved */
|
|
||||||
unsigned long r7; /* preserved */
|
|
||||||
|
|
||||||
unsigned long b0; /* so we can force a direct return in copy_thread */
|
|
||||||
unsigned long b1;
|
|
||||||
unsigned long b2;
|
|
||||||
unsigned long b3;
|
|
||||||
unsigned long b4;
|
|
||||||
unsigned long b5;
|
|
||||||
|
|
||||||
unsigned long ar_pfs; /* previous function state */
|
|
||||||
unsigned long ar_lc; /* loop counter (preserved) */
|
|
||||||
unsigned long ar_unat; /* NaT bits for r4-r7 */
|
|
||||||
unsigned long ar_rnat; /* RSE NaT collection register */
|
|
||||||
unsigned long ar_bspstore; /* RSE dirty base (preserved) */
|
|
||||||
unsigned long pr; /* 64 predicate registers (1 bit each) */
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
|
|
||||||
#include <asm/current.h>
|
#include <asm/current.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
@ -331,46 +142,5 @@ static inline long regs_return_value(struct pt_regs *regs)
|
|||||||
#define arch_has_single_step() (1)
|
#define arch_has_single_step() (1)
|
||||||
#define arch_has_block_step() (1)
|
#define arch_has_block_step() (1)
|
||||||
|
|
||||||
#endif /* !__KERNEL__ */
|
|
||||||
|
|
||||||
/* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */
|
|
||||||
struct pt_all_user_regs {
|
|
||||||
unsigned long nat;
|
|
||||||
unsigned long cr_iip;
|
|
||||||
unsigned long cfm;
|
|
||||||
unsigned long cr_ipsr;
|
|
||||||
unsigned long pr;
|
|
||||||
|
|
||||||
unsigned long gr[32];
|
|
||||||
unsigned long br[8];
|
|
||||||
unsigned long ar[128];
|
|
||||||
struct ia64_fpreg fr[128];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* !__ASSEMBLY__ */
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
||||||
/* indices to application-registers array in pt_all_user_regs */
|
|
||||||
#define PT_AUR_RSC 16
|
|
||||||
#define PT_AUR_BSP 17
|
|
||||||
#define PT_AUR_BSPSTORE 18
|
|
||||||
#define PT_AUR_RNAT 19
|
|
||||||
#define PT_AUR_CCV 32
|
|
||||||
#define PT_AUR_UNAT 36
|
|
||||||
#define PT_AUR_FPSR 40
|
|
||||||
#define PT_AUR_PFS 64
|
|
||||||
#define PT_AUR_LC 65
|
|
||||||
#define PT_AUR_EC 66
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The numbers chosen here are somewhat arbitrary but absolutely MUST
|
|
||||||
* not overlap with any of the number assigned in <linux/ptrace.h>.
|
|
||||||
*/
|
|
||||||
#define PTRACE_SINGLEBLOCK 12 /* resume execution until next branch */
|
|
||||||
#define PTRACE_OLD_GETSIGINFO 13 /* (replaced by PTRACE_GETSIGINFO in <linux/ptrace.h>) */
|
|
||||||
#define PTRACE_OLD_SETSIGINFO 14 /* (replaced by PTRACE_SETSIGINFO in <linux/ptrace.h>) */
|
|
||||||
#define PTRACE_GETREGS 18 /* get all registers (pt_all_user_regs) in one shot */
|
|
||||||
#define PTRACE_SETREGS 19 /* set all registers (pt_all_user_regs) in one shot */
|
|
||||||
|
|
||||||
#define PTRACE_OLDSETOPTIONS 21
|
|
||||||
|
|
||||||
#endif /* _ASM_IA64_PTRACE_H */
|
#endif /* _ASM_IA64_PTRACE_H */
|
||||||
|
@ -1,124 +1,14 @@
|
|||||||
#ifndef _ASM_IA64_SIGINFO_H
|
|
||||||
#define _ASM_IA64_SIGINFO_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Based on <asm-i386/siginfo.h>.
|
* Based on <asm-i386/siginfo.h>.
|
||||||
*
|
*
|
||||||
* Modified 1998-2002
|
* Modified 1998-2002
|
||||||
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
*/
|
*/
|
||||||
|
#ifndef _ASM_IA64_SIGINFO_H
|
||||||
|
#define _ASM_IA64_SIGINFO_H
|
||||||
|
|
||||||
#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
|
|
||||||
|
|
||||||
#define HAVE_ARCH_SIGINFO_T
|
|
||||||
#define HAVE_ARCH_COPY_SIGINFO
|
|
||||||
#define HAVE_ARCH_COPY_SIGINFO_TO_USER
|
|
||||||
|
|
||||||
#include <asm-generic/siginfo.h>
|
|
||||||
|
|
||||||
typedef struct siginfo {
|
|
||||||
int si_signo;
|
|
||||||
int si_errno;
|
|
||||||
int si_code;
|
|
||||||
int __pad0;
|
|
||||||
|
|
||||||
union {
|
|
||||||
int _pad[SI_PAD_SIZE];
|
|
||||||
|
|
||||||
/* kill() */
|
|
||||||
struct {
|
|
||||||
pid_t _pid; /* sender's pid */
|
|
||||||
uid_t _uid; /* sender's uid */
|
|
||||||
} _kill;
|
|
||||||
|
|
||||||
/* POSIX.1b timers */
|
|
||||||
struct {
|
|
||||||
timer_t _tid; /* timer id */
|
|
||||||
int _overrun; /* overrun count */
|
|
||||||
char _pad[sizeof(__ARCH_SI_UID_T) - sizeof(int)];
|
|
||||||
sigval_t _sigval; /* must overlay ._rt._sigval! */
|
|
||||||
int _sys_private; /* not to be passed to user */
|
|
||||||
} _timer;
|
|
||||||
|
|
||||||
/* POSIX.1b signals */
|
|
||||||
struct {
|
|
||||||
pid_t _pid; /* sender's pid */
|
|
||||||
uid_t _uid; /* sender's uid */
|
|
||||||
sigval_t _sigval;
|
|
||||||
} _rt;
|
|
||||||
|
|
||||||
/* SIGCHLD */
|
|
||||||
struct {
|
|
||||||
pid_t _pid; /* which child */
|
|
||||||
uid_t _uid; /* sender's uid */
|
|
||||||
int _status; /* exit code */
|
|
||||||
clock_t _utime;
|
|
||||||
clock_t _stime;
|
|
||||||
} _sigchld;
|
|
||||||
|
|
||||||
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
|
|
||||||
struct {
|
|
||||||
void __user *_addr; /* faulting insn/memory ref. */
|
|
||||||
int _imm; /* immediate value for "break" */
|
|
||||||
unsigned int _flags; /* see below */
|
|
||||||
unsigned long _isr; /* isr */
|
|
||||||
short _addr_lsb; /* lsb of faulting address */
|
|
||||||
} _sigfault;
|
|
||||||
|
|
||||||
/* SIGPOLL */
|
|
||||||
struct {
|
|
||||||
long _band; /* POLL_IN, POLL_OUT, POLL_MSG (XPG requires a "long") */
|
|
||||||
int _fd;
|
|
||||||
} _sigpoll;
|
|
||||||
} _sifields;
|
|
||||||
} siginfo_t;
|
|
||||||
|
|
||||||
#define si_imm _sifields._sigfault._imm /* as per UNIX SysV ABI spec */
|
|
||||||
#define si_flags _sifields._sigfault._flags
|
|
||||||
/*
|
|
||||||
* si_isr is valid for SIGILL, SIGFPE, SIGSEGV, SIGBUS, and SIGTRAP provided that
|
|
||||||
* si_code is non-zero and __ISR_VALID is set in si_flags.
|
|
||||||
*/
|
|
||||||
#define si_isr _sifields._sigfault._isr
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Flag values for si_flags:
|
|
||||||
*/
|
|
||||||
#define __ISR_VALID_BIT 0
|
|
||||||
#define __ISR_VALID (1 << __ISR_VALID_BIT)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* SIGILL si_codes
|
|
||||||
*/
|
|
||||||
#define ILL_BADIADDR (__SI_FAULT|9) /* unimplemented instruction address */
|
|
||||||
#define __ILL_BREAK (__SI_FAULT|10) /* illegal break */
|
|
||||||
#define __ILL_BNDMOD (__SI_FAULT|11) /* bundle-update (modification) in progress */
|
|
||||||
#undef NSIGILL
|
|
||||||
#define NSIGILL 11
|
|
||||||
|
|
||||||
/*
|
|
||||||
* SIGFPE si_codes
|
|
||||||
*/
|
|
||||||
#define __FPE_DECOVF (__SI_FAULT|9) /* decimal overflow */
|
|
||||||
#define __FPE_DECDIV (__SI_FAULT|10) /* decimal division by zero */
|
|
||||||
#define __FPE_DECERR (__SI_FAULT|11) /* packed decimal error */
|
|
||||||
#define __FPE_INVASC (__SI_FAULT|12) /* invalid ASCII digit */
|
|
||||||
#define __FPE_INVDEC (__SI_FAULT|13) /* invalid decimal digit */
|
|
||||||
#undef NSIGFPE
|
|
||||||
#define NSIGFPE 13
|
|
||||||
|
|
||||||
/*
|
|
||||||
* SIGSEGV si_codes
|
|
||||||
*/
|
|
||||||
#define __SEGV_PSTKOVF (__SI_FAULT|3) /* paragraph stack overflow */
|
|
||||||
#undef NSIGSEGV
|
|
||||||
#define NSIGSEGV 3
|
|
||||||
|
|
||||||
#undef NSIGTRAP
|
|
||||||
#define NSIGTRAP 4
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
|
#include <uapi/asm/siginfo.h>
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
copy_siginfo (siginfo_t *to, siginfo_t *from)
|
copy_siginfo (siginfo_t *to, siginfo_t *from)
|
||||||
@ -130,6 +20,4 @@ copy_siginfo (siginfo_t *to, siginfo_t *from)
|
|||||||
memcpy(to, from, 4*sizeof(int) + sizeof(from->_sifields._sigchld));
|
memcpy(to, from, 4*sizeof(int) + sizeof(from->_sifields._sigchld));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
|
||||||
|
|
||||||
#endif /* _ASM_IA64_SIGINFO_H */
|
#endif /* _ASM_IA64_SIGINFO_H */
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#ifndef _ASM_IA64_SIGNAL_H
|
|
||||||
#define _ASM_IA64_SIGNAL_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Modified 1998-2001, 2003
|
* Modified 1998-2001, 2003
|
||||||
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
@ -8,129 +5,18 @@
|
|||||||
* Unfortunately, this file is being included by bits/signal.h in
|
* Unfortunately, this file is being included by bits/signal.h in
|
||||||
* glibc-2.x. Hence the #ifdef __KERNEL__ ugliness.
|
* glibc-2.x. Hence the #ifdef __KERNEL__ ugliness.
|
||||||
*/
|
*/
|
||||||
|
#ifndef _ASM_IA64_SIGNAL_H
|
||||||
|
#define _ASM_IA64_SIGNAL_H
|
||||||
|
|
||||||
#define SIGHUP 1
|
#include <uapi/asm/signal.h>
|
||||||
#define SIGINT 2
|
|
||||||
#define SIGQUIT 3
|
|
||||||
#define SIGILL 4
|
|
||||||
#define SIGTRAP 5
|
|
||||||
#define SIGABRT 6
|
|
||||||
#define SIGIOT 6
|
|
||||||
#define SIGBUS 7
|
|
||||||
#define SIGFPE 8
|
|
||||||
#define SIGKILL 9
|
|
||||||
#define SIGUSR1 10
|
|
||||||
#define SIGSEGV 11
|
|
||||||
#define SIGUSR2 12
|
|
||||||
#define SIGPIPE 13
|
|
||||||
#define SIGALRM 14
|
|
||||||
#define SIGTERM 15
|
|
||||||
#define SIGSTKFLT 16
|
|
||||||
#define SIGCHLD 17
|
|
||||||
#define SIGCONT 18
|
|
||||||
#define SIGSTOP 19
|
|
||||||
#define SIGTSTP 20
|
|
||||||
#define SIGTTIN 21
|
|
||||||
#define SIGTTOU 22
|
|
||||||
#define SIGURG 23
|
|
||||||
#define SIGXCPU 24
|
|
||||||
#define SIGXFSZ 25
|
|
||||||
#define SIGVTALRM 26
|
|
||||||
#define SIGPROF 27
|
|
||||||
#define SIGWINCH 28
|
|
||||||
#define SIGIO 29
|
|
||||||
#define SIGPOLL SIGIO
|
|
||||||
/*
|
|
||||||
#define SIGLOST 29
|
|
||||||
*/
|
|
||||||
#define SIGPWR 30
|
|
||||||
#define SIGSYS 31
|
|
||||||
/* signal 31 is no longer "unused", but the SIGUNUSED macro remains for backwards compatibility */
|
|
||||||
#define SIGUNUSED 31
|
|
||||||
|
|
||||||
/* These should not be considered constants from userland. */
|
|
||||||
#define SIGRTMIN 32
|
|
||||||
#define SIGRTMAX _NSIG
|
|
||||||
|
|
||||||
/*
|
|
||||||
* SA_FLAGS values:
|
|
||||||
*
|
|
||||||
* SA_ONSTACK indicates that a registered stack_t will be used.
|
|
||||||
* SA_RESTART flag to get restarting signals (which were the default long ago)
|
|
||||||
* SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
|
|
||||||
* SA_RESETHAND clears the handler when the signal is delivered.
|
|
||||||
* SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
|
|
||||||
* SA_NODEFER prevents the current signal from being masked in the handler.
|
|
||||||
*
|
|
||||||
* SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
|
|
||||||
* Unix names RESETHAND and NODEFER respectively.
|
|
||||||
*/
|
|
||||||
#define SA_NOCLDSTOP 0x00000001
|
|
||||||
#define SA_NOCLDWAIT 0x00000002
|
|
||||||
#define SA_SIGINFO 0x00000004
|
|
||||||
#define SA_ONSTACK 0x08000000
|
|
||||||
#define SA_RESTART 0x10000000
|
|
||||||
#define SA_NODEFER 0x40000000
|
|
||||||
#define SA_RESETHAND 0x80000000
|
|
||||||
|
|
||||||
#define SA_NOMASK SA_NODEFER
|
|
||||||
#define SA_ONESHOT SA_RESETHAND
|
|
||||||
|
|
||||||
#define SA_RESTORER 0x04000000
|
|
||||||
|
|
||||||
/*
|
|
||||||
* sigaltstack controls
|
|
||||||
*/
|
|
||||||
#define SS_ONSTACK 1
|
|
||||||
#define SS_DISABLE 2
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The minimum stack size needs to be fairly large because we want to
|
|
||||||
* be sure that an app compiled for today's CPUs will continue to run
|
|
||||||
* on all future CPU models. The CPU model matters because the signal
|
|
||||||
* frame needs to have space for the complete machine state, including
|
|
||||||
* all physical stacked registers. The number of physical stacked
|
|
||||||
* registers is CPU model dependent, but given that the width of
|
|
||||||
* ar.rsc.loadrs is 14 bits, we can assume that they'll never take up
|
|
||||||
* more than 16KB of space.
|
|
||||||
*/
|
|
||||||
#if 1
|
|
||||||
/*
|
|
||||||
* This is a stupid typo: the value was _meant_ to be 131072 (0x20000), but I typed it
|
|
||||||
* in wrong. ;-( To preserve backwards compatibility, we leave the kernel at the
|
|
||||||
* incorrect value and fix libc only.
|
|
||||||
*/
|
|
||||||
# define MINSIGSTKSZ 131027 /* min. stack size for sigaltstack() */
|
|
||||||
#else
|
|
||||||
# define MINSIGSTKSZ 131072 /* min. stack size for sigaltstack() */
|
|
||||||
#endif
|
|
||||||
#define SIGSTKSZ 262144 /* default stack size for sigaltstack() */
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
|
|
||||||
#define _NSIG 64
|
#define _NSIG 64
|
||||||
#define _NSIG_BPW 64
|
#define _NSIG_BPW 64
|
||||||
#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
|
#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
|
||||||
|
|
||||||
#include <asm-generic/signal-defs.h>
|
|
||||||
|
|
||||||
# ifndef __ASSEMBLY__
|
# ifndef __ASSEMBLY__
|
||||||
|
|
||||||
# include <linux/types.h>
|
|
||||||
|
|
||||||
/* Avoid too many header ordering problems. */
|
|
||||||
struct siginfo;
|
|
||||||
|
|
||||||
typedef struct sigaltstack {
|
|
||||||
void __user *ss_sp;
|
|
||||||
int ss_flags;
|
|
||||||
size_t ss_size;
|
|
||||||
} stack_t;
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
|
|
||||||
/* Most things should be clean enough to redefine this at will, if care
|
/* Most things should be clean enough to redefine this at will, if care
|
||||||
is taken to make libc match. */
|
is taken to make libc match. */
|
||||||
|
|
||||||
@ -154,7 +40,5 @@ struct k_sigaction {
|
|||||||
|
|
||||||
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
|
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
|
||||||
|
|
||||||
# endif /* !__ASSEMBLY__ */
|
# endif /* !__ASSEMBLY__ */
|
||||||
#endif /* _ASM_IA64_SIGNAL_H */
|
#endif /* _ASM_IA64_SIGNAL_H */
|
||||||
|
@ -1,52 +1,14 @@
|
|||||||
#ifndef _ASM_IA64_TERMIOS_H
|
|
||||||
#define _ASM_IA64_TERMIOS_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Modified 1999
|
* Modified 1999
|
||||||
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
*
|
*
|
||||||
* 99/01/28 Added N_IRDA and N_SMSBLOCK
|
* 99/01/28 Added N_IRDA and N_SMSBLOCK
|
||||||
*/
|
*/
|
||||||
|
#ifndef _ASM_IA64_TERMIOS_H
|
||||||
|
#define _ASM_IA64_TERMIOS_H
|
||||||
|
|
||||||
#include <asm/termbits.h>
|
#include <uapi/asm/termios.h>
|
||||||
#include <asm/ioctls.h>
|
|
||||||
|
|
||||||
struct winsize {
|
|
||||||
unsigned short ws_row;
|
|
||||||
unsigned short ws_col;
|
|
||||||
unsigned short ws_xpixel;
|
|
||||||
unsigned short ws_ypixel;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define NCC 8
|
|
||||||
struct termio {
|
|
||||||
unsigned short c_iflag; /* input mode flags */
|
|
||||||
unsigned short c_oflag; /* output mode flags */
|
|
||||||
unsigned short c_cflag; /* control mode flags */
|
|
||||||
unsigned short c_lflag; /* local mode flags */
|
|
||||||
unsigned char c_line; /* line discipline */
|
|
||||||
unsigned char c_cc[NCC]; /* control characters */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* modem lines */
|
|
||||||
#define TIOCM_LE 0x001
|
|
||||||
#define TIOCM_DTR 0x002
|
|
||||||
#define TIOCM_RTS 0x004
|
|
||||||
#define TIOCM_ST 0x008
|
|
||||||
#define TIOCM_SR 0x010
|
|
||||||
#define TIOCM_CTS 0x020
|
|
||||||
#define TIOCM_CAR 0x040
|
|
||||||
#define TIOCM_RNG 0x080
|
|
||||||
#define TIOCM_DSR 0x100
|
|
||||||
#define TIOCM_CD TIOCM_CAR
|
|
||||||
#define TIOCM_RI TIOCM_RNG
|
|
||||||
#define TIOCM_OUT1 0x2000
|
|
||||||
#define TIOCM_OUT2 0x4000
|
|
||||||
#define TIOCM_LOOP 0x8000
|
|
||||||
|
|
||||||
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
|
|
||||||
|
|
||||||
# ifdef __KERNEL__
|
|
||||||
|
|
||||||
/* intr=^C quit=^\ erase=del kill=^U
|
/* intr=^C quit=^\ erase=del kill=^U
|
||||||
eof=^D vtime=\0 vmin=\1 sxtc=\0
|
eof=^D vtime=\0 vmin=\1 sxtc=\0
|
||||||
@ -92,6 +54,4 @@ struct termio {
|
|||||||
#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios))
|
#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios))
|
||||||
#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios))
|
#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios))
|
||||||
|
|
||||||
# endif /* __KERNEL__ */
|
|
||||||
|
|
||||||
#endif /* _ASM_IA64_TERMIOS_H */
|
#endif /* _ASM_IA64_TERMIOS_H */
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#ifndef _ASM_IA64_TYPES_H
|
|
||||||
#define _ASM_IA64_TYPES_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This file is never included by application software unless explicitly
|
* This file is never included by application software unless explicitly
|
||||||
* requested (e.g., via linux/types.h) in which case the application is
|
* requested (e.g., via linux/types.h) in which case the application is
|
||||||
@ -13,32 +10,22 @@
|
|||||||
* Modified 1998-2000, 2002
|
* Modified 1998-2000, 2002
|
||||||
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
*/
|
*/
|
||||||
|
#ifndef _ASM_IA64_TYPES_H
|
||||||
|
#define _ASM_IA64_TYPES_H
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
#include <asm-generic/int-ll64.h>
|
#include <asm-generic/int-ll64.h>
|
||||||
#else
|
#include <uapi/asm/types.h>
|
||||||
#include <asm-generic/int-l64.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __ASSEMBLY__
|
#ifdef __ASSEMBLY__
|
||||||
# define __IA64_UL(x) (x)
|
|
||||||
# define __IA64_UL_CONST(x) x
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# define __IA64_UL(x) ((unsigned long)(x))
|
|
||||||
# define __IA64_UL_CONST(x) x##UL
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These aren't exported outside the kernel to avoid name space clashes
|
* These aren't exported outside the kernel to avoid name space clashes
|
||||||
*/
|
*/
|
||||||
# ifdef __KERNEL__
|
|
||||||
|
|
||||||
struct fnptr {
|
struct fnptr {
|
||||||
unsigned long ip;
|
unsigned long ip;
|
||||||
unsigned long gp;
|
unsigned long gp;
|
||||||
};
|
};
|
||||||
|
|
||||||
# endif /* __KERNEL__ */
|
|
||||||
#endif /* !__ASSEMBLY__ */
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
||||||
#endif /* _ASM_IA64_TYPES_H */
|
#endif /* _ASM_IA64_TYPES_H */
|
||||||
|
@ -1,331 +1,14 @@
|
|||||||
#ifndef _ASM_IA64_UNISTD_H
|
|
||||||
#define _ASM_IA64_UNISTD_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IA-64 Linux syscall numbers and inline-functions.
|
* IA-64 Linux syscall numbers and inline-functions.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998-2005 Hewlett-Packard Co
|
* Copyright (C) 1998-2005 Hewlett-Packard Co
|
||||||
* David Mosberger-Tang <davidm@hpl.hp.com>
|
* David Mosberger-Tang <davidm@hpl.hp.com>
|
||||||
*/
|
*/
|
||||||
|
#ifndef _ASM_IA64_UNISTD_H
|
||||||
|
#define _ASM_IA64_UNISTD_H
|
||||||
|
|
||||||
#include <asm/break.h>
|
#include <uapi/asm/unistd.h>
|
||||||
|
|
||||||
#define __BREAK_SYSCALL __IA64_BREAK_SYSCALL
|
|
||||||
|
|
||||||
#define __NR_ni_syscall 1024
|
|
||||||
#define __NR_exit 1025
|
|
||||||
#define __NR_read 1026
|
|
||||||
#define __NR_write 1027
|
|
||||||
#define __NR_open 1028
|
|
||||||
#define __NR_close 1029
|
|
||||||
#define __NR_creat 1030
|
|
||||||
#define __NR_link 1031
|
|
||||||
#define __NR_unlink 1032
|
|
||||||
#define __NR_execve 1033
|
|
||||||
#define __NR_chdir 1034
|
|
||||||
#define __NR_fchdir 1035
|
|
||||||
#define __NR_utimes 1036
|
|
||||||
#define __NR_mknod 1037
|
|
||||||
#define __NR_chmod 1038
|
|
||||||
#define __NR_chown 1039
|
|
||||||
#define __NR_lseek 1040
|
|
||||||
#define __NR_getpid 1041
|
|
||||||
#define __NR_getppid 1042
|
|
||||||
#define __NR_mount 1043
|
|
||||||
#define __NR_umount 1044
|
|
||||||
#define __NR_setuid 1045
|
|
||||||
#define __NR_getuid 1046
|
|
||||||
#define __NR_geteuid 1047
|
|
||||||
#define __NR_ptrace 1048
|
|
||||||
#define __NR_access 1049
|
|
||||||
#define __NR_sync 1050
|
|
||||||
#define __NR_fsync 1051
|
|
||||||
#define __NR_fdatasync 1052
|
|
||||||
#define __NR_kill 1053
|
|
||||||
#define __NR_rename 1054
|
|
||||||
#define __NR_mkdir 1055
|
|
||||||
#define __NR_rmdir 1056
|
|
||||||
#define __NR_dup 1057
|
|
||||||
#define __NR_pipe 1058
|
|
||||||
#define __NR_times 1059
|
|
||||||
#define __NR_brk 1060
|
|
||||||
#define __NR_setgid 1061
|
|
||||||
#define __NR_getgid 1062
|
|
||||||
#define __NR_getegid 1063
|
|
||||||
#define __NR_acct 1064
|
|
||||||
#define __NR_ioctl 1065
|
|
||||||
#define __NR_fcntl 1066
|
|
||||||
#define __NR_umask 1067
|
|
||||||
#define __NR_chroot 1068
|
|
||||||
#define __NR_ustat 1069
|
|
||||||
#define __NR_dup2 1070
|
|
||||||
#define __NR_setreuid 1071
|
|
||||||
#define __NR_setregid 1072
|
|
||||||
#define __NR_getresuid 1073
|
|
||||||
#define __NR_setresuid 1074
|
|
||||||
#define __NR_getresgid 1075
|
|
||||||
#define __NR_setresgid 1076
|
|
||||||
#define __NR_getgroups 1077
|
|
||||||
#define __NR_setgroups 1078
|
|
||||||
#define __NR_getpgid 1079
|
|
||||||
#define __NR_setpgid 1080
|
|
||||||
#define __NR_setsid 1081
|
|
||||||
#define __NR_getsid 1082
|
|
||||||
#define __NR_sethostname 1083
|
|
||||||
#define __NR_setrlimit 1084
|
|
||||||
#define __NR_getrlimit 1085
|
|
||||||
#define __NR_getrusage 1086
|
|
||||||
#define __NR_gettimeofday 1087
|
|
||||||
#define __NR_settimeofday 1088
|
|
||||||
#define __NR_select 1089
|
|
||||||
#define __NR_poll 1090
|
|
||||||
#define __NR_symlink 1091
|
|
||||||
#define __NR_readlink 1092
|
|
||||||
#define __NR_uselib 1093
|
|
||||||
#define __NR_swapon 1094
|
|
||||||
#define __NR_swapoff 1095
|
|
||||||
#define __NR_reboot 1096
|
|
||||||
#define __NR_truncate 1097
|
|
||||||
#define __NR_ftruncate 1098
|
|
||||||
#define __NR_fchmod 1099
|
|
||||||
#define __NR_fchown 1100
|
|
||||||
#define __NR_getpriority 1101
|
|
||||||
#define __NR_setpriority 1102
|
|
||||||
#define __NR_statfs 1103
|
|
||||||
#define __NR_fstatfs 1104
|
|
||||||
#define __NR_gettid 1105
|
|
||||||
#define __NR_semget 1106
|
|
||||||
#define __NR_semop 1107
|
|
||||||
#define __NR_semctl 1108
|
|
||||||
#define __NR_msgget 1109
|
|
||||||
#define __NR_msgsnd 1110
|
|
||||||
#define __NR_msgrcv 1111
|
|
||||||
#define __NR_msgctl 1112
|
|
||||||
#define __NR_shmget 1113
|
|
||||||
#define __NR_shmat 1114
|
|
||||||
#define __NR_shmdt 1115
|
|
||||||
#define __NR_shmctl 1116
|
|
||||||
/* also known as klogctl() in GNU libc: */
|
|
||||||
#define __NR_syslog 1117
|
|
||||||
#define __NR_setitimer 1118
|
|
||||||
#define __NR_getitimer 1119
|
|
||||||
/* 1120 was __NR_old_stat */
|
|
||||||
/* 1121 was __NR_old_lstat */
|
|
||||||
/* 1122 was __NR_old_fstat */
|
|
||||||
#define __NR_vhangup 1123
|
|
||||||
#define __NR_lchown 1124
|
|
||||||
#define __NR_remap_file_pages 1125
|
|
||||||
#define __NR_wait4 1126
|
|
||||||
#define __NR_sysinfo 1127
|
|
||||||
#define __NR_clone 1128
|
|
||||||
#define __NR_setdomainname 1129
|
|
||||||
#define __NR_uname 1130
|
|
||||||
#define __NR_adjtimex 1131
|
|
||||||
/* 1132 was __NR_create_module */
|
|
||||||
#define __NR_init_module 1133
|
|
||||||
#define __NR_delete_module 1134
|
|
||||||
/* 1135 was __NR_get_kernel_syms */
|
|
||||||
/* 1136 was __NR_query_module */
|
|
||||||
#define __NR_quotactl 1137
|
|
||||||
#define __NR_bdflush 1138
|
|
||||||
#define __NR_sysfs 1139
|
|
||||||
#define __NR_personality 1140
|
|
||||||
#define __NR_afs_syscall 1141
|
|
||||||
#define __NR_setfsuid 1142
|
|
||||||
#define __NR_setfsgid 1143
|
|
||||||
#define __NR_getdents 1144
|
|
||||||
#define __NR_flock 1145
|
|
||||||
#define __NR_readv 1146
|
|
||||||
#define __NR_writev 1147
|
|
||||||
#define __NR_pread64 1148
|
|
||||||
#define __NR_pwrite64 1149
|
|
||||||
#define __NR__sysctl 1150
|
|
||||||
#define __NR_mmap 1151
|
|
||||||
#define __NR_munmap 1152
|
|
||||||
#define __NR_mlock 1153
|
|
||||||
#define __NR_mlockall 1154
|
|
||||||
#define __NR_mprotect 1155
|
|
||||||
#define __NR_mremap 1156
|
|
||||||
#define __NR_msync 1157
|
|
||||||
#define __NR_munlock 1158
|
|
||||||
#define __NR_munlockall 1159
|
|
||||||
#define __NR_sched_getparam 1160
|
|
||||||
#define __NR_sched_setparam 1161
|
|
||||||
#define __NR_sched_getscheduler 1162
|
|
||||||
#define __NR_sched_setscheduler 1163
|
|
||||||
#define __NR_sched_yield 1164
|
|
||||||
#define __NR_sched_get_priority_max 1165
|
|
||||||
#define __NR_sched_get_priority_min 1166
|
|
||||||
#define __NR_sched_rr_get_interval 1167
|
|
||||||
#define __NR_nanosleep 1168
|
|
||||||
#define __NR_nfsservctl 1169
|
|
||||||
#define __NR_prctl 1170
|
|
||||||
/* 1171 is reserved for backwards compatibility with old __NR_getpagesize */
|
|
||||||
#define __NR_mmap2 1172
|
|
||||||
#define __NR_pciconfig_read 1173
|
|
||||||
#define __NR_pciconfig_write 1174
|
|
||||||
#define __NR_perfmonctl 1175
|
|
||||||
#define __NR_sigaltstack 1176
|
|
||||||
#define __NR_rt_sigaction 1177
|
|
||||||
#define __NR_rt_sigpending 1178
|
|
||||||
#define __NR_rt_sigprocmask 1179
|
|
||||||
#define __NR_rt_sigqueueinfo 1180
|
|
||||||
#define __NR_rt_sigreturn 1181
|
|
||||||
#define __NR_rt_sigsuspend 1182
|
|
||||||
#define __NR_rt_sigtimedwait 1183
|
|
||||||
#define __NR_getcwd 1184
|
|
||||||
#define __NR_capget 1185
|
|
||||||
#define __NR_capset 1186
|
|
||||||
#define __NR_sendfile 1187
|
|
||||||
#define __NR_getpmsg 1188
|
|
||||||
#define __NR_putpmsg 1189
|
|
||||||
#define __NR_socket 1190
|
|
||||||
#define __NR_bind 1191
|
|
||||||
#define __NR_connect 1192
|
|
||||||
#define __NR_listen 1193
|
|
||||||
#define __NR_accept 1194
|
|
||||||
#define __NR_getsockname 1195
|
|
||||||
#define __NR_getpeername 1196
|
|
||||||
#define __NR_socketpair 1197
|
|
||||||
#define __NR_send 1198
|
|
||||||
#define __NR_sendto 1199
|
|
||||||
#define __NR_recv 1200
|
|
||||||
#define __NR_recvfrom 1201
|
|
||||||
#define __NR_shutdown 1202
|
|
||||||
#define __NR_setsockopt 1203
|
|
||||||
#define __NR_getsockopt 1204
|
|
||||||
#define __NR_sendmsg 1205
|
|
||||||
#define __NR_recvmsg 1206
|
|
||||||
#define __NR_pivot_root 1207
|
|
||||||
#define __NR_mincore 1208
|
|
||||||
#define __NR_madvise 1209
|
|
||||||
#define __NR_stat 1210
|
|
||||||
#define __NR_lstat 1211
|
|
||||||
#define __NR_fstat 1212
|
|
||||||
#define __NR_clone2 1213
|
|
||||||
#define __NR_getdents64 1214
|
|
||||||
#define __NR_getunwind 1215
|
|
||||||
#define __NR_readahead 1216
|
|
||||||
#define __NR_setxattr 1217
|
|
||||||
#define __NR_lsetxattr 1218
|
|
||||||
#define __NR_fsetxattr 1219
|
|
||||||
#define __NR_getxattr 1220
|
|
||||||
#define __NR_lgetxattr 1221
|
|
||||||
#define __NR_fgetxattr 1222
|
|
||||||
#define __NR_listxattr 1223
|
|
||||||
#define __NR_llistxattr 1224
|
|
||||||
#define __NR_flistxattr 1225
|
|
||||||
#define __NR_removexattr 1226
|
|
||||||
#define __NR_lremovexattr 1227
|
|
||||||
#define __NR_fremovexattr 1228
|
|
||||||
#define __NR_tkill 1229
|
|
||||||
#define __NR_futex 1230
|
|
||||||
#define __NR_sched_setaffinity 1231
|
|
||||||
#define __NR_sched_getaffinity 1232
|
|
||||||
#define __NR_set_tid_address 1233
|
|
||||||
#define __NR_fadvise64 1234
|
|
||||||
#define __NR_tgkill 1235
|
|
||||||
#define __NR_exit_group 1236
|
|
||||||
#define __NR_lookup_dcookie 1237
|
|
||||||
#define __NR_io_setup 1238
|
|
||||||
#define __NR_io_destroy 1239
|
|
||||||
#define __NR_io_getevents 1240
|
|
||||||
#define __NR_io_submit 1241
|
|
||||||
#define __NR_io_cancel 1242
|
|
||||||
#define __NR_epoll_create 1243
|
|
||||||
#define __NR_epoll_ctl 1244
|
|
||||||
#define __NR_epoll_wait 1245
|
|
||||||
#define __NR_restart_syscall 1246
|
|
||||||
#define __NR_semtimedop 1247
|
|
||||||
#define __NR_timer_create 1248
|
|
||||||
#define __NR_timer_settime 1249
|
|
||||||
#define __NR_timer_gettime 1250
|
|
||||||
#define __NR_timer_getoverrun 1251
|
|
||||||
#define __NR_timer_delete 1252
|
|
||||||
#define __NR_clock_settime 1253
|
|
||||||
#define __NR_clock_gettime 1254
|
|
||||||
#define __NR_clock_getres 1255
|
|
||||||
#define __NR_clock_nanosleep 1256
|
|
||||||
#define __NR_fstatfs64 1257
|
|
||||||
#define __NR_statfs64 1258
|
|
||||||
#define __NR_mbind 1259
|
|
||||||
#define __NR_get_mempolicy 1260
|
|
||||||
#define __NR_set_mempolicy 1261
|
|
||||||
#define __NR_mq_open 1262
|
|
||||||
#define __NR_mq_unlink 1263
|
|
||||||
#define __NR_mq_timedsend 1264
|
|
||||||
#define __NR_mq_timedreceive 1265
|
|
||||||
#define __NR_mq_notify 1266
|
|
||||||
#define __NR_mq_getsetattr 1267
|
|
||||||
#define __NR_kexec_load 1268
|
|
||||||
#define __NR_vserver 1269
|
|
||||||
#define __NR_waitid 1270
|
|
||||||
#define __NR_add_key 1271
|
|
||||||
#define __NR_request_key 1272
|
|
||||||
#define __NR_keyctl 1273
|
|
||||||
#define __NR_ioprio_set 1274
|
|
||||||
#define __NR_ioprio_get 1275
|
|
||||||
#define __NR_move_pages 1276
|
|
||||||
#define __NR_inotify_init 1277
|
|
||||||
#define __NR_inotify_add_watch 1278
|
|
||||||
#define __NR_inotify_rm_watch 1279
|
|
||||||
#define __NR_migrate_pages 1280
|
|
||||||
#define __NR_openat 1281
|
|
||||||
#define __NR_mkdirat 1282
|
|
||||||
#define __NR_mknodat 1283
|
|
||||||
#define __NR_fchownat 1284
|
|
||||||
#define __NR_futimesat 1285
|
|
||||||
#define __NR_newfstatat 1286
|
|
||||||
#define __NR_unlinkat 1287
|
|
||||||
#define __NR_renameat 1288
|
|
||||||
#define __NR_linkat 1289
|
|
||||||
#define __NR_symlinkat 1290
|
|
||||||
#define __NR_readlinkat 1291
|
|
||||||
#define __NR_fchmodat 1292
|
|
||||||
#define __NR_faccessat 1293
|
|
||||||
#define __NR_pselect6 1294
|
|
||||||
#define __NR_ppoll 1295
|
|
||||||
#define __NR_unshare 1296
|
|
||||||
#define __NR_splice 1297
|
|
||||||
#define __NR_set_robust_list 1298
|
|
||||||
#define __NR_get_robust_list 1299
|
|
||||||
#define __NR_sync_file_range 1300
|
|
||||||
#define __NR_tee 1301
|
|
||||||
#define __NR_vmsplice 1302
|
|
||||||
#define __NR_fallocate 1303
|
|
||||||
#define __NR_getcpu 1304
|
|
||||||
#define __NR_epoll_pwait 1305
|
|
||||||
#define __NR_utimensat 1306
|
|
||||||
#define __NR_signalfd 1307
|
|
||||||
#define __NR_timerfd 1308
|
|
||||||
#define __NR_eventfd 1309
|
|
||||||
#define __NR_timerfd_create 1310
|
|
||||||
#define __NR_timerfd_settime 1311
|
|
||||||
#define __NR_timerfd_gettime 1312
|
|
||||||
#define __NR_signalfd4 1313
|
|
||||||
#define __NR_eventfd2 1314
|
|
||||||
#define __NR_epoll_create1 1315
|
|
||||||
#define __NR_dup3 1316
|
|
||||||
#define __NR_pipe2 1317
|
|
||||||
#define __NR_inotify_init1 1318
|
|
||||||
#define __NR_preadv 1319
|
|
||||||
#define __NR_pwritev 1320
|
|
||||||
#define __NR_rt_tgsigqueueinfo 1321
|
|
||||||
#define __NR_recvmmsg 1322
|
|
||||||
#define __NR_fanotify_init 1323
|
|
||||||
#define __NR_fanotify_mark 1324
|
|
||||||
#define __NR_prlimit64 1325
|
|
||||||
#define __NR_name_to_handle_at 1326
|
|
||||||
#define __NR_open_by_handle_at 1327
|
|
||||||
#define __NR_clock_adjtime 1328
|
|
||||||
#define __NR_syncfs 1329
|
|
||||||
#define __NR_setns 1330
|
|
||||||
#define __NR_sendmmsg 1331
|
|
||||||
#define __NR_process_vm_readv 1332
|
|
||||||
#define __NR_process_vm_writev 1333
|
|
||||||
#define __NR_accept4 1334
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
|
|
||||||
|
|
||||||
#define NR_syscalls 311 /* length of syscall table */
|
#define NR_syscalls 311 /* length of syscall table */
|
||||||
@ -382,5 +65,4 @@ asmlinkage long sys_rt_sigaction(int sig,
|
|||||||
#define cond_syscall(x) asmlinkage long x (void) __attribute__((weak,alias("sys_ni_syscall")))
|
#define cond_syscall(x) asmlinkage long x (void) __attribute__((weak,alias("sys_ni_syscall")))
|
||||||
|
|
||||||
#endif /* !__ASSEMBLY__ */
|
#endif /* !__ASSEMBLY__ */
|
||||||
#endif /* __KERNEL__ */
|
|
||||||
#endif /* _ASM_IA64_UNISTD_H */
|
#endif /* _ASM_IA64_UNISTD_H */
|
||||||
|
@ -1,20 +1,11 @@
|
|||||||
#ifndef _ASM_IA64_USTACK_H
|
#ifndef _ASM_IA64_USTACK_H
|
||||||
#define _ASM_IA64_USTACK_H
|
#define _ASM_IA64_USTACK_H
|
||||||
|
|
||||||
/*
|
|
||||||
* Constants for the user stack size
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
#include <uapi/asm/ustack.h>
|
||||||
|
|
||||||
/* The absolute hard limit for stack size is 1/2 of the mappable space in the region */
|
/* The absolute hard limit for stack size is 1/2 of the mappable space in the region */
|
||||||
#define MAX_USER_STACK_SIZE (RGN_MAP_LIMIT/2)
|
#define MAX_USER_STACK_SIZE (RGN_MAP_LIMIT/2)
|
||||||
#define STACK_TOP (0x6000000000000000UL + RGN_MAP_LIMIT)
|
#define STACK_TOP (0x6000000000000000UL + RGN_MAP_LIMIT)
|
||||||
#define STACK_TOP_MAX STACK_TOP
|
#define STACK_TOP_MAX STACK_TOP
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Make a default stack size of 2GiB */
|
|
||||||
#define DEFAULT_USER_STACK_SIZE (1UL << 31)
|
|
||||||
|
|
||||||
#endif /* _ASM_IA64_USTACK_H */
|
#endif /* _ASM_IA64_USTACK_H */
|
||||||
|
@ -1,3 +1,48 @@
|
|||||||
# UAPI Header export list
|
# UAPI Header export list
|
||||||
include include/uapi/asm-generic/Kbuild.asm
|
include include/uapi/asm-generic/Kbuild.asm
|
||||||
|
|
||||||
|
header-y += auxvec.h
|
||||||
|
header-y += bitsperlong.h
|
||||||
|
header-y += break.h
|
||||||
|
header-y += byteorder.h
|
||||||
|
header-y += cmpxchg.h
|
||||||
|
header-y += errno.h
|
||||||
|
header-y += fcntl.h
|
||||||
|
header-y += fpu.h
|
||||||
|
header-y += gcc_intrin.h
|
||||||
|
header-y += ia64regs.h
|
||||||
|
header-y += intel_intrin.h
|
||||||
|
header-y += intrinsics.h
|
||||||
|
header-y += ioctl.h
|
||||||
|
header-y += ioctls.h
|
||||||
|
header-y += ipcbuf.h
|
||||||
|
header-y += kvm.h
|
||||||
|
header-y += kvm_para.h
|
||||||
|
header-y += mman.h
|
||||||
|
header-y += msgbuf.h
|
||||||
|
header-y += param.h
|
||||||
|
header-y += perfmon.h
|
||||||
|
header-y += perfmon_default_smpl.h
|
||||||
|
header-y += poll.h
|
||||||
|
header-y += posix_types.h
|
||||||
|
header-y += ptrace.h
|
||||||
|
header-y += ptrace_offsets.h
|
||||||
|
header-y += resource.h
|
||||||
|
header-y += rse.h
|
||||||
|
header-y += sembuf.h
|
||||||
|
header-y += setup.h
|
||||||
|
header-y += shmbuf.h
|
||||||
|
header-y += sigcontext.h
|
||||||
|
header-y += siginfo.h
|
||||||
|
header-y += signal.h
|
||||||
|
header-y += socket.h
|
||||||
|
header-y += sockios.h
|
||||||
|
header-y += stat.h
|
||||||
|
header-y += statfs.h
|
||||||
|
header-y += swab.h
|
||||||
|
header-y += termbits.h
|
||||||
|
header-y += termios.h
|
||||||
|
header-y += types.h
|
||||||
|
header-y += ucontext.h
|
||||||
|
header-y += unistd.h
|
||||||
|
header-y += ustack.h
|
||||||
|
618
arch/ia64/include/uapi/asm/gcc_intrin.h
Normal file
618
arch/ia64/include/uapi/asm/gcc_intrin.h
Normal file
@ -0,0 +1,618 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002,2003 Jun Nakajima <jun.nakajima@intel.com>
|
||||||
|
* Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com>
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_GCC_INTRIN_H
|
||||||
|
#define _UAPI_ASM_IA64_GCC_INTRIN_H
|
||||||
|
|
||||||
|
#include <linux/types.h>
|
||||||
|
#include <linux/compiler.h>
|
||||||
|
|
||||||
|
/* define this macro to get some asm stmts included in 'c' files */
|
||||||
|
#define ASM_SUPPORTED
|
||||||
|
|
||||||
|
/* Optimization barrier */
|
||||||
|
/* The "volatile" is due to gcc bugs */
|
||||||
|
#define ia64_barrier() asm volatile ("":::"memory")
|
||||||
|
|
||||||
|
#define ia64_stop() asm volatile (";;"::)
|
||||||
|
|
||||||
|
#define ia64_invala_gr(regnum) asm volatile ("invala.e r%0" :: "i"(regnum))
|
||||||
|
|
||||||
|
#define ia64_invala_fr(regnum) asm volatile ("invala.e f%0" :: "i"(regnum))
|
||||||
|
|
||||||
|
#define ia64_flushrs() asm volatile ("flushrs;;":::"memory")
|
||||||
|
|
||||||
|
#define ia64_loadrs() asm volatile ("loadrs;;":::"memory")
|
||||||
|
|
||||||
|
extern void ia64_bad_param_for_setreg (void);
|
||||||
|
extern void ia64_bad_param_for_getreg (void);
|
||||||
|
|
||||||
|
|
||||||
|
#define ia64_native_setreg(regnum, val) \
|
||||||
|
({ \
|
||||||
|
switch (regnum) { \
|
||||||
|
case _IA64_REG_PSR_L: \
|
||||||
|
asm volatile ("mov psr.l=%0" :: "r"(val) : "memory"); \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_AR_KR0 ... _IA64_REG_AR_EC: \
|
||||||
|
asm volatile ("mov ar%0=%1" :: \
|
||||||
|
"i" (regnum - _IA64_REG_AR_KR0), \
|
||||||
|
"r"(val): "memory"); \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_CR_DCR ... _IA64_REG_CR_LRR1: \
|
||||||
|
asm volatile ("mov cr%0=%1" :: \
|
||||||
|
"i" (regnum - _IA64_REG_CR_DCR), \
|
||||||
|
"r"(val): "memory" ); \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_SP: \
|
||||||
|
asm volatile ("mov r12=%0" :: \
|
||||||
|
"r"(val): "memory"); \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_GP: \
|
||||||
|
asm volatile ("mov gp=%0" :: "r"(val) : "memory"); \
|
||||||
|
break; \
|
||||||
|
default: \
|
||||||
|
ia64_bad_param_for_setreg(); \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_native_getreg(regnum) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
\
|
||||||
|
switch (regnum) { \
|
||||||
|
case _IA64_REG_GP: \
|
||||||
|
asm volatile ("mov %0=gp" : "=r"(ia64_intri_res)); \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_IP: \
|
||||||
|
asm volatile ("mov %0=ip" : "=r"(ia64_intri_res)); \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_PSR: \
|
||||||
|
asm volatile ("mov %0=psr" : "=r"(ia64_intri_res)); \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_TP: /* for current() */ \
|
||||||
|
ia64_intri_res = ia64_r13; \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_AR_KR0 ... _IA64_REG_AR_EC: \
|
||||||
|
asm volatile ("mov %0=ar%1" : "=r" (ia64_intri_res) \
|
||||||
|
: "i"(regnum - _IA64_REG_AR_KR0)); \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_CR_DCR ... _IA64_REG_CR_LRR1: \
|
||||||
|
asm volatile ("mov %0=cr%1" : "=r" (ia64_intri_res) \
|
||||||
|
: "i" (regnum - _IA64_REG_CR_DCR)); \
|
||||||
|
break; \
|
||||||
|
case _IA64_REG_SP: \
|
||||||
|
asm volatile ("mov %0=sp" : "=r" (ia64_intri_res)); \
|
||||||
|
break; \
|
||||||
|
default: \
|
||||||
|
ia64_bad_param_for_getreg(); \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_hint_pause 0
|
||||||
|
|
||||||
|
#define ia64_hint(mode) \
|
||||||
|
({ \
|
||||||
|
switch (mode) { \
|
||||||
|
case ia64_hint_pause: \
|
||||||
|
asm volatile ("hint @pause" ::: "memory"); \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
/* Integer values for mux1 instruction */
|
||||||
|
#define ia64_mux1_brcst 0
|
||||||
|
#define ia64_mux1_mix 8
|
||||||
|
#define ia64_mux1_shuf 9
|
||||||
|
#define ia64_mux1_alt 10
|
||||||
|
#define ia64_mux1_rev 11
|
||||||
|
|
||||||
|
#define ia64_mux1(x, mode) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
\
|
||||||
|
switch (mode) { \
|
||||||
|
case ia64_mux1_brcst: \
|
||||||
|
asm ("mux1 %0=%1,@brcst" : "=r" (ia64_intri_res) : "r" (x)); \
|
||||||
|
break; \
|
||||||
|
case ia64_mux1_mix: \
|
||||||
|
asm ("mux1 %0=%1,@mix" : "=r" (ia64_intri_res) : "r" (x)); \
|
||||||
|
break; \
|
||||||
|
case ia64_mux1_shuf: \
|
||||||
|
asm ("mux1 %0=%1,@shuf" : "=r" (ia64_intri_res) : "r" (x)); \
|
||||||
|
break; \
|
||||||
|
case ia64_mux1_alt: \
|
||||||
|
asm ("mux1 %0=%1,@alt" : "=r" (ia64_intri_res) : "r" (x)); \
|
||||||
|
break; \
|
||||||
|
case ia64_mux1_rev: \
|
||||||
|
asm ("mux1 %0=%1,@rev" : "=r" (ia64_intri_res) : "r" (x)); \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
|
||||||
|
# define ia64_popcnt(x) __builtin_popcountl(x)
|
||||||
|
#else
|
||||||
|
# define ia64_popcnt(x) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm ("popcnt %0=%1" : "=r" (ia64_intri_res) : "r" (x)); \
|
||||||
|
\
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ia64_getf_exp(x) \
|
||||||
|
({ \
|
||||||
|
long ia64_intri_res; \
|
||||||
|
\
|
||||||
|
asm ("getf.exp %0=%1" : "=r"(ia64_intri_res) : "f"(x)); \
|
||||||
|
\
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_shrp(a, b, count) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm ("shrp %0=%1,%2,%3" : "=r"(ia64_intri_res) : "r"(a), "r"(b), "i"(count)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_ldfs(regnum, x) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("ldfs %0=[%1]" :"=f"(__f__): "r"(x)); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_ldfd(regnum, x) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("ldfd %0=[%1]" :"=f"(__f__): "r"(x)); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_ldfe(regnum, x) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("ldfe %0=[%1]" :"=f"(__f__): "r"(x)); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_ldf8(regnum, x) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("ldf8 %0=[%1]" :"=f"(__f__): "r"(x)); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_ldf_fill(regnum, x) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("ldf.fill %0=[%1]" :"=f"(__f__): "r"(x)); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_st4_rel_nta(m, val) \
|
||||||
|
({ \
|
||||||
|
asm volatile ("st4.rel.nta [%0] = %1\n\t" :: "r"(m), "r"(val)); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_stfs(x, regnum) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("stfs [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_stfd(x, regnum) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("stfd [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_stfe(x, regnum) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("stfe [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_stf8(x, regnum) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("stf8 [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_stf_spill(x, regnum) \
|
||||||
|
({ \
|
||||||
|
register double __f__ asm ("f"#regnum); \
|
||||||
|
asm volatile ("stf.spill [%0]=%1" :: "r"(x), "f"(__f__) : "memory"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_fetchadd4_acq(p, inc) \
|
||||||
|
({ \
|
||||||
|
\
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("fetchadd4.acq %0=[%1],%2" \
|
||||||
|
: "=r"(ia64_intri_res) : "r"(p), "i" (inc) \
|
||||||
|
: "memory"); \
|
||||||
|
\
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_fetchadd4_rel(p, inc) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("fetchadd4.rel %0=[%1],%2" \
|
||||||
|
: "=r"(ia64_intri_res) : "r"(p), "i" (inc) \
|
||||||
|
: "memory"); \
|
||||||
|
\
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_fetchadd8_acq(p, inc) \
|
||||||
|
({ \
|
||||||
|
\
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("fetchadd8.acq %0=[%1],%2" \
|
||||||
|
: "=r"(ia64_intri_res) : "r"(p), "i" (inc) \
|
||||||
|
: "memory"); \
|
||||||
|
\
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_fetchadd8_rel(p, inc) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("fetchadd8.rel %0=[%1],%2" \
|
||||||
|
: "=r"(ia64_intri_res) : "r"(p), "i" (inc) \
|
||||||
|
: "memory"); \
|
||||||
|
\
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_xchg1(ptr,x) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("xchg1 %0=[%1],%2" \
|
||||||
|
: "=r" (ia64_intri_res) : "r" (ptr), "r" (x) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_xchg2(ptr,x) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("xchg2 %0=[%1],%2" : "=r" (ia64_intri_res) \
|
||||||
|
: "r" (ptr), "r" (x) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_xchg4(ptr,x) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("xchg4 %0=[%1],%2" : "=r" (ia64_intri_res) \
|
||||||
|
: "r" (ptr), "r" (x) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_xchg8(ptr,x) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("xchg8 %0=[%1],%2" : "=r" (ia64_intri_res) \
|
||||||
|
: "r" (ptr), "r" (x) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_cmpxchg1_acq(ptr, new, old) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
||||||
|
asm volatile ("cmpxchg1.acq %0=[%1],%2,ar.ccv": \
|
||||||
|
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_cmpxchg1_rel(ptr, new, old) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
||||||
|
asm volatile ("cmpxchg1.rel %0=[%1],%2,ar.ccv": \
|
||||||
|
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_cmpxchg2_acq(ptr, new, old) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
||||||
|
asm volatile ("cmpxchg2.acq %0=[%1],%2,ar.ccv": \
|
||||||
|
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_cmpxchg2_rel(ptr, new, old) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
||||||
|
\
|
||||||
|
asm volatile ("cmpxchg2.rel %0=[%1],%2,ar.ccv": \
|
||||||
|
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_cmpxchg4_acq(ptr, new, old) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
||||||
|
asm volatile ("cmpxchg4.acq %0=[%1],%2,ar.ccv": \
|
||||||
|
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_cmpxchg4_rel(ptr, new, old) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
||||||
|
asm volatile ("cmpxchg4.rel %0=[%1],%2,ar.ccv": \
|
||||||
|
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_cmpxchg8_acq(ptr, new, old) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
||||||
|
asm volatile ("cmpxchg8.acq %0=[%1],%2,ar.ccv": \
|
||||||
|
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_cmpxchg8_rel(ptr, new, old) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("mov ar.ccv=%0;;" :: "rO"(old)); \
|
||||||
|
\
|
||||||
|
asm volatile ("cmpxchg8.rel %0=[%1],%2,ar.ccv": \
|
||||||
|
"=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory"); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_mf() asm volatile ("mf" ::: "memory")
|
||||||
|
#define ia64_mfa() asm volatile ("mf.a" ::: "memory")
|
||||||
|
|
||||||
|
#define ia64_invala() asm volatile ("invala" ::: "memory")
|
||||||
|
|
||||||
|
#define ia64_native_thash(addr) \
|
||||||
|
({ \
|
||||||
|
unsigned long ia64_intri_res; \
|
||||||
|
asm volatile ("thash %0=%1" : "=r"(ia64_intri_res) : "r" (addr)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_srlz_i() asm volatile (";; srlz.i ;;" ::: "memory")
|
||||||
|
#define ia64_srlz_d() asm volatile (";; srlz.d" ::: "memory");
|
||||||
|
|
||||||
|
#ifdef HAVE_SERIALIZE_DIRECTIVE
|
||||||
|
# define ia64_dv_serialize_data() asm volatile (".serialize.data");
|
||||||
|
# define ia64_dv_serialize_instruction() asm volatile (".serialize.instruction");
|
||||||
|
#else
|
||||||
|
# define ia64_dv_serialize_data()
|
||||||
|
# define ia64_dv_serialize_instruction()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ia64_nop(x) asm volatile ("nop %0"::"i"(x));
|
||||||
|
|
||||||
|
#define ia64_itci(addr) asm volatile ("itc.i %0;;" :: "r"(addr) : "memory")
|
||||||
|
|
||||||
|
#define ia64_itcd(addr) asm volatile ("itc.d %0;;" :: "r"(addr) : "memory")
|
||||||
|
|
||||||
|
|
||||||
|
#define ia64_itri(trnum, addr) asm volatile ("itr.i itr[%0]=%1" \
|
||||||
|
:: "r"(trnum), "r"(addr) : "memory")
|
||||||
|
|
||||||
|
#define ia64_itrd(trnum, addr) asm volatile ("itr.d dtr[%0]=%1" \
|
||||||
|
:: "r"(trnum), "r"(addr) : "memory")
|
||||||
|
|
||||||
|
#define ia64_tpa(addr) \
|
||||||
|
({ \
|
||||||
|
unsigned long ia64_pa; \
|
||||||
|
asm volatile ("tpa %0 = %1" : "=r"(ia64_pa) : "r"(addr) : "memory"); \
|
||||||
|
ia64_pa; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define __ia64_set_dbr(index, val) \
|
||||||
|
asm volatile ("mov dbr[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
||||||
|
|
||||||
|
#define ia64_set_ibr(index, val) \
|
||||||
|
asm volatile ("mov ibr[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
||||||
|
|
||||||
|
#define ia64_set_pkr(index, val) \
|
||||||
|
asm volatile ("mov pkr[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
||||||
|
|
||||||
|
#define ia64_set_pmc(index, val) \
|
||||||
|
asm volatile ("mov pmc[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
||||||
|
|
||||||
|
#define ia64_set_pmd(index, val) \
|
||||||
|
asm volatile ("mov pmd[%0]=%1" :: "r"(index), "r"(val) : "memory")
|
||||||
|
|
||||||
|
#define ia64_native_set_rr(index, val) \
|
||||||
|
asm volatile ("mov rr[%0]=%1" :: "r"(index), "r"(val) : "memory");
|
||||||
|
|
||||||
|
#define ia64_native_get_cpuid(index) \
|
||||||
|
({ \
|
||||||
|
unsigned long ia64_intri_res; \
|
||||||
|
asm volatile ("mov %0=cpuid[%r1]" : "=r"(ia64_intri_res) : "rO"(index)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define __ia64_get_dbr(index) \
|
||||||
|
({ \
|
||||||
|
unsigned long ia64_intri_res; \
|
||||||
|
asm volatile ("mov %0=dbr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_get_ibr(index) \
|
||||||
|
({ \
|
||||||
|
unsigned long ia64_intri_res; \
|
||||||
|
asm volatile ("mov %0=ibr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_get_pkr(index) \
|
||||||
|
({ \
|
||||||
|
unsigned long ia64_intri_res; \
|
||||||
|
asm volatile ("mov %0=pkr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_get_pmc(index) \
|
||||||
|
({ \
|
||||||
|
unsigned long ia64_intri_res; \
|
||||||
|
asm volatile ("mov %0=pmc[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
#define ia64_native_get_pmd(index) \
|
||||||
|
({ \
|
||||||
|
unsigned long ia64_intri_res; \
|
||||||
|
asm volatile ("mov %0=pmd[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_native_get_rr(index) \
|
||||||
|
({ \
|
||||||
|
unsigned long ia64_intri_res; \
|
||||||
|
asm volatile ("mov %0=rr[%1]" : "=r"(ia64_intri_res) : "r" (index)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_native_fc(addr) asm volatile ("fc %0" :: "r"(addr) : "memory")
|
||||||
|
|
||||||
|
|
||||||
|
#define ia64_sync_i() asm volatile (";; sync.i" ::: "memory")
|
||||||
|
|
||||||
|
#define ia64_native_ssm(mask) asm volatile ("ssm %0":: "i"((mask)) : "memory")
|
||||||
|
#define ia64_native_rsm(mask) asm volatile ("rsm %0":: "i"((mask)) : "memory")
|
||||||
|
#define ia64_sum(mask) asm volatile ("sum %0":: "i"((mask)) : "memory")
|
||||||
|
#define ia64_rum(mask) asm volatile ("rum %0":: "i"((mask)) : "memory")
|
||||||
|
|
||||||
|
#define ia64_ptce(addr) asm volatile ("ptc.e %0" :: "r"(addr))
|
||||||
|
|
||||||
|
#define ia64_native_ptcga(addr, size) \
|
||||||
|
do { \
|
||||||
|
asm volatile ("ptc.ga %0,%1" :: "r"(addr), "r"(size) : "memory"); \
|
||||||
|
ia64_dv_serialize_data(); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define ia64_ptcl(addr, size) \
|
||||||
|
do { \
|
||||||
|
asm volatile ("ptc.l %0,%1" :: "r"(addr), "r"(size) : "memory"); \
|
||||||
|
ia64_dv_serialize_data(); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define ia64_ptri(addr, size) \
|
||||||
|
asm volatile ("ptr.i %0,%1" :: "r"(addr), "r"(size) : "memory")
|
||||||
|
|
||||||
|
#define ia64_ptrd(addr, size) \
|
||||||
|
asm volatile ("ptr.d %0,%1" :: "r"(addr), "r"(size) : "memory")
|
||||||
|
|
||||||
|
#define ia64_ttag(addr) \
|
||||||
|
({ \
|
||||||
|
__u64 ia64_intri_res; \
|
||||||
|
asm volatile ("ttag %0=%1" : "=r"(ia64_intri_res) : "r" (addr)); \
|
||||||
|
ia64_intri_res; \
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
/* Values for lfhint in ia64_lfetch and ia64_lfetch_fault */
|
||||||
|
|
||||||
|
#define ia64_lfhint_none 0
|
||||||
|
#define ia64_lfhint_nt1 1
|
||||||
|
#define ia64_lfhint_nt2 2
|
||||||
|
#define ia64_lfhint_nta 3
|
||||||
|
|
||||||
|
#define ia64_lfetch(lfhint, y) \
|
||||||
|
({ \
|
||||||
|
switch (lfhint) { \
|
||||||
|
case ia64_lfhint_none: \
|
||||||
|
asm volatile ("lfetch [%0]" : : "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nt1: \
|
||||||
|
asm volatile ("lfetch.nt1 [%0]" : : "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nt2: \
|
||||||
|
asm volatile ("lfetch.nt2 [%0]" : : "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nta: \
|
||||||
|
asm volatile ("lfetch.nta [%0]" : : "r"(y)); \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_lfetch_excl(lfhint, y) \
|
||||||
|
({ \
|
||||||
|
switch (lfhint) { \
|
||||||
|
case ia64_lfhint_none: \
|
||||||
|
asm volatile ("lfetch.excl [%0]" :: "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nt1: \
|
||||||
|
asm volatile ("lfetch.excl.nt1 [%0]" :: "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nt2: \
|
||||||
|
asm volatile ("lfetch.excl.nt2 [%0]" :: "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nta: \
|
||||||
|
asm volatile ("lfetch.excl.nta [%0]" :: "r"(y)); \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_lfetch_fault(lfhint, y) \
|
||||||
|
({ \
|
||||||
|
switch (lfhint) { \
|
||||||
|
case ia64_lfhint_none: \
|
||||||
|
asm volatile ("lfetch.fault [%0]" : : "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nt1: \
|
||||||
|
asm volatile ("lfetch.fault.nt1 [%0]" : : "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nt2: \
|
||||||
|
asm volatile ("lfetch.fault.nt2 [%0]" : : "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nta: \
|
||||||
|
asm volatile ("lfetch.fault.nta [%0]" : : "r"(y)); \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_lfetch_fault_excl(lfhint, y) \
|
||||||
|
({ \
|
||||||
|
switch (lfhint) { \
|
||||||
|
case ia64_lfhint_none: \
|
||||||
|
asm volatile ("lfetch.fault.excl [%0]" :: "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nt1: \
|
||||||
|
asm volatile ("lfetch.fault.excl.nt1 [%0]" :: "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nt2: \
|
||||||
|
asm volatile ("lfetch.fault.excl.nt2 [%0]" :: "r"(y)); \
|
||||||
|
break; \
|
||||||
|
case ia64_lfhint_nta: \
|
||||||
|
asm volatile ("lfetch.fault.excl.nta [%0]" :: "r"(y)); \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_native_intrin_local_irq_restore(x) \
|
||||||
|
do { \
|
||||||
|
asm volatile (";; cmp.ne p6,p7=%0,r0;;" \
|
||||||
|
"(p6) ssm psr.i;" \
|
||||||
|
"(p7) rsm psr.i;;" \
|
||||||
|
"(p6) srlz.d" \
|
||||||
|
:: "r"((x)) : "p6", "p7", "memory"); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_GCC_INTRIN_H */
|
124
arch/ia64/include/uapi/asm/intrinsics.h
Normal file
124
arch/ia64/include/uapi/asm/intrinsics.h
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
/*
|
||||||
|
* Compiler-dependent intrinsics.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002-2003 Hewlett-Packard Co
|
||||||
|
* David Mosberger-Tang <davidm@hpl.hp.com>
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_INTRINSICS_H
|
||||||
|
#define _UAPI_ASM_IA64_INTRINSICS_H
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
|
#include <linux/types.h>
|
||||||
|
/* include compiler specific intrinsics */
|
||||||
|
#include <asm/ia64regs.h>
|
||||||
|
#ifdef __INTEL_COMPILER
|
||||||
|
# include <asm/intel_intrin.h>
|
||||||
|
#else
|
||||||
|
# include <asm/gcc_intrin.h>
|
||||||
|
#endif
|
||||||
|
#include <asm/cmpxchg.h>
|
||||||
|
|
||||||
|
#define ia64_native_get_psr_i() (ia64_native_getreg(_IA64_REG_PSR) & IA64_PSR_I)
|
||||||
|
|
||||||
|
#define ia64_native_set_rr0_to_rr4(val0, val1, val2, val3, val4) \
|
||||||
|
do { \
|
||||||
|
ia64_native_set_rr(0x0000000000000000UL, (val0)); \
|
||||||
|
ia64_native_set_rr(0x2000000000000000UL, (val1)); \
|
||||||
|
ia64_native_set_rr(0x4000000000000000UL, (val2)); \
|
||||||
|
ia64_native_set_rr(0x6000000000000000UL, (val3)); \
|
||||||
|
ia64_native_set_rr(0x8000000000000000UL, (val4)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force an unresolved reference if someone tries to use
|
||||||
|
* ia64_fetch_and_add() with a bad value.
|
||||||
|
*/
|
||||||
|
extern unsigned long __bad_size_for_ia64_fetch_and_add (void);
|
||||||
|
extern unsigned long __bad_increment_for_ia64_fetch_and_add (void);
|
||||||
|
|
||||||
|
#define IA64_FETCHADD(tmp,v,n,sz,sem) \
|
||||||
|
({ \
|
||||||
|
switch (sz) { \
|
||||||
|
case 4: \
|
||||||
|
tmp = ia64_fetchadd4_##sem((unsigned int *) v, n); \
|
||||||
|
break; \
|
||||||
|
\
|
||||||
|
case 8: \
|
||||||
|
tmp = ia64_fetchadd8_##sem((unsigned long *) v, n); \
|
||||||
|
break; \
|
||||||
|
\
|
||||||
|
default: \
|
||||||
|
__bad_size_for_ia64_fetch_and_add(); \
|
||||||
|
} \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_fetchadd(i,v,sem) \
|
||||||
|
({ \
|
||||||
|
__u64 _tmp; \
|
||||||
|
volatile __typeof__(*(v)) *_v = (v); \
|
||||||
|
/* Can't use a switch () here: gcc isn't always smart enough for that... */ \
|
||||||
|
if ((i) == -16) \
|
||||||
|
IA64_FETCHADD(_tmp, _v, -16, sizeof(*(v)), sem); \
|
||||||
|
else if ((i) == -8) \
|
||||||
|
IA64_FETCHADD(_tmp, _v, -8, sizeof(*(v)), sem); \
|
||||||
|
else if ((i) == -4) \
|
||||||
|
IA64_FETCHADD(_tmp, _v, -4, sizeof(*(v)), sem); \
|
||||||
|
else if ((i) == -1) \
|
||||||
|
IA64_FETCHADD(_tmp, _v, -1, sizeof(*(v)), sem); \
|
||||||
|
else if ((i) == 1) \
|
||||||
|
IA64_FETCHADD(_tmp, _v, 1, sizeof(*(v)), sem); \
|
||||||
|
else if ((i) == 4) \
|
||||||
|
IA64_FETCHADD(_tmp, _v, 4, sizeof(*(v)), sem); \
|
||||||
|
else if ((i) == 8) \
|
||||||
|
IA64_FETCHADD(_tmp, _v, 8, sizeof(*(v)), sem); \
|
||||||
|
else if ((i) == 16) \
|
||||||
|
IA64_FETCHADD(_tmp, _v, 16, sizeof(*(v)), sem); \
|
||||||
|
else \
|
||||||
|
_tmp = __bad_increment_for_ia64_fetch_and_add(); \
|
||||||
|
(__typeof__(*(v))) (_tmp); /* return old value */ \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
|
#define IA64_INTRINSIC_API(name) ia64_native_ ## name
|
||||||
|
#define IA64_INTRINSIC_MACRO(name) ia64_native_ ## name
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************/
|
||||||
|
/* Instructions paravirtualized for correctness */
|
||||||
|
/************************************************/
|
||||||
|
/* fc, thash, get_cpuid, get_pmd, get_eflags, set_eflags */
|
||||||
|
/* Note that "ttag" and "cover" are also privilege-sensitive; "ttag"
|
||||||
|
* is not currently used (though it may be in a long-format VHPT system!)
|
||||||
|
*/
|
||||||
|
#define ia64_fc IA64_INTRINSIC_API(fc)
|
||||||
|
#define ia64_thash IA64_INTRINSIC_API(thash)
|
||||||
|
#define ia64_get_cpuid IA64_INTRINSIC_API(get_cpuid)
|
||||||
|
#define ia64_get_pmd IA64_INTRINSIC_API(get_pmd)
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************/
|
||||||
|
/* Instructions paravirtualized for performance */
|
||||||
|
/************************************************/
|
||||||
|
#define ia64_ssm IA64_INTRINSIC_MACRO(ssm)
|
||||||
|
#define ia64_rsm IA64_INTRINSIC_MACRO(rsm)
|
||||||
|
#define ia64_getreg IA64_INTRINSIC_MACRO(getreg)
|
||||||
|
#define ia64_setreg IA64_INTRINSIC_API(setreg)
|
||||||
|
#define ia64_set_rr IA64_INTRINSIC_API(set_rr)
|
||||||
|
#define ia64_get_rr IA64_INTRINSIC_API(get_rr)
|
||||||
|
#define ia64_ptcga IA64_INTRINSIC_API(ptcga)
|
||||||
|
#define ia64_get_psr_i IA64_INTRINSIC_API(get_psr_i)
|
||||||
|
#define ia64_intrin_local_irq_restore \
|
||||||
|
IA64_INTRINSIC_API(intrin_local_irq_restore)
|
||||||
|
#define ia64_set_rr0_to_rr4 IA64_INTRINSIC_API(set_rr0_to_rr4)
|
||||||
|
|
||||||
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_INTRINSICS_H */
|
0
arch/ia64/include/uapi/asm/kvm_para.h
Normal file
0
arch/ia64/include/uapi/asm/kvm_para.h
Normal file
16
arch/ia64/include/uapi/asm/mman.h
Normal file
16
arch/ia64/include/uapi/asm/mman.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* Based on <asm-i386/mman.h>.
|
||||||
|
*
|
||||||
|
* Modified 1998-2000, 2002
|
||||||
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_MMAN_H
|
||||||
|
#define _UAPI_ASM_IA64_MMAN_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <asm-generic/mman.h>
|
||||||
|
|
||||||
|
#define MAP_GROWSUP 0x0200 /* register stack-like segment */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_MMAN_H */
|
29
arch/ia64/include/uapi/asm/param.h
Normal file
29
arch/ia64/include/uapi/asm/param.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* Fundamental kernel parameters.
|
||||||
|
*
|
||||||
|
* Based on <asm-i386/param.h>.
|
||||||
|
*
|
||||||
|
* Modified 1998, 1999, 2002-2003
|
||||||
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_PARAM_H
|
||||||
|
#define _UAPI_ASM_IA64_PARAM_H
|
||||||
|
|
||||||
|
|
||||||
|
#define EXEC_PAGESIZE 65536
|
||||||
|
|
||||||
|
#ifndef NOGROUP
|
||||||
|
# define NOGROUP (-1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define MAXHOSTNAMELEN 64 /* max length of hostname */
|
||||||
|
|
||||||
|
#ifndef __KERNEL__
|
||||||
|
/*
|
||||||
|
* Technically, this is wrong, but some old apps still refer to it. The proper way to
|
||||||
|
* get the HZ value is via sysconf(_SC_CLK_TCK).
|
||||||
|
*/
|
||||||
|
# define HZ 1024
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_PARAM_H */
|
177
arch/ia64/include/uapi/asm/perfmon.h
Normal file
177
arch/ia64/include/uapi/asm/perfmon.h
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2001-2003 Hewlett-Packard Co
|
||||||
|
* Stephane Eranian <eranian@hpl.hp.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _UAPI_ASM_IA64_PERFMON_H
|
||||||
|
#define _UAPI_ASM_IA64_PERFMON_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* perfmon commands supported on all CPU models
|
||||||
|
*/
|
||||||
|
#define PFM_WRITE_PMCS 0x01
|
||||||
|
#define PFM_WRITE_PMDS 0x02
|
||||||
|
#define PFM_READ_PMDS 0x03
|
||||||
|
#define PFM_STOP 0x04
|
||||||
|
#define PFM_START 0x05
|
||||||
|
#define PFM_ENABLE 0x06 /* obsolete */
|
||||||
|
#define PFM_DISABLE 0x07 /* obsolete */
|
||||||
|
#define PFM_CREATE_CONTEXT 0x08
|
||||||
|
#define PFM_DESTROY_CONTEXT 0x09 /* obsolete use close() */
|
||||||
|
#define PFM_RESTART 0x0a
|
||||||
|
#define PFM_PROTECT_CONTEXT 0x0b /* obsolete */
|
||||||
|
#define PFM_GET_FEATURES 0x0c
|
||||||
|
#define PFM_DEBUG 0x0d
|
||||||
|
#define PFM_UNPROTECT_CONTEXT 0x0e /* obsolete */
|
||||||
|
#define PFM_GET_PMC_RESET_VAL 0x0f
|
||||||
|
#define PFM_LOAD_CONTEXT 0x10
|
||||||
|
#define PFM_UNLOAD_CONTEXT 0x11
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PMU model specific commands (may not be supported on all PMU models)
|
||||||
|
*/
|
||||||
|
#define PFM_WRITE_IBRS 0x20
|
||||||
|
#define PFM_WRITE_DBRS 0x21
|
||||||
|
|
||||||
|
/*
|
||||||
|
* context flags
|
||||||
|
*/
|
||||||
|
#define PFM_FL_NOTIFY_BLOCK 0x01 /* block task on user level notifications */
|
||||||
|
#define PFM_FL_SYSTEM_WIDE 0x02 /* create a system wide context */
|
||||||
|
#define PFM_FL_OVFL_NO_MSG 0x80 /* do not post overflow/end messages for notification */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* event set flags
|
||||||
|
*/
|
||||||
|
#define PFM_SETFL_EXCL_IDLE 0x01 /* exclude idle task (syswide only) XXX: DO NOT USE YET */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PMC flags
|
||||||
|
*/
|
||||||
|
#define PFM_REGFL_OVFL_NOTIFY 0x1 /* send notification on overflow */
|
||||||
|
#define PFM_REGFL_RANDOM 0x2 /* randomize sampling interval */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PMD/PMC/IBR/DBR return flags (ignored on input)
|
||||||
|
*
|
||||||
|
* Those flags are used on output and must be checked in case EAGAIN is returned
|
||||||
|
* by any of the calls using a pfarg_reg_t or pfarg_dbreg_t structure.
|
||||||
|
*/
|
||||||
|
#define PFM_REG_RETFL_NOTAVAIL (1UL<<31) /* set if register is implemented but not available */
|
||||||
|
#define PFM_REG_RETFL_EINVAL (1UL<<30) /* set if register entry is invalid */
|
||||||
|
#define PFM_REG_RETFL_MASK (PFM_REG_RETFL_NOTAVAIL|PFM_REG_RETFL_EINVAL)
|
||||||
|
|
||||||
|
#define PFM_REG_HAS_ERROR(flag) (((flag) & PFM_REG_RETFL_MASK) != 0)
|
||||||
|
|
||||||
|
typedef unsigned char pfm_uuid_t[16]; /* custom sampling buffer identifier type */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Request structure used to define a context
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
pfm_uuid_t ctx_smpl_buf_id; /* which buffer format to use (if needed) */
|
||||||
|
unsigned long ctx_flags; /* noblock/block */
|
||||||
|
unsigned short ctx_nextra_sets; /* number of extra event sets (you always get 1) */
|
||||||
|
unsigned short ctx_reserved1; /* for future use */
|
||||||
|
int ctx_fd; /* return arg: unique identification for context */
|
||||||
|
void *ctx_smpl_vaddr; /* return arg: virtual address of sampling buffer, is used */
|
||||||
|
unsigned long ctx_reserved2[11];/* for future use */
|
||||||
|
} pfarg_context_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Request structure used to write/read a PMC or PMD
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
unsigned int reg_num; /* which register */
|
||||||
|
unsigned short reg_set; /* event set for this register */
|
||||||
|
unsigned short reg_reserved1; /* for future use */
|
||||||
|
|
||||||
|
unsigned long reg_value; /* initial pmc/pmd value */
|
||||||
|
unsigned long reg_flags; /* input: pmc/pmd flags, return: reg error */
|
||||||
|
|
||||||
|
unsigned long reg_long_reset; /* reset after buffer overflow notification */
|
||||||
|
unsigned long reg_short_reset; /* reset after counter overflow */
|
||||||
|
|
||||||
|
unsigned long reg_reset_pmds[4]; /* which other counters to reset on overflow */
|
||||||
|
unsigned long reg_random_seed; /* seed value when randomization is used */
|
||||||
|
unsigned long reg_random_mask; /* bitmask used to limit random value */
|
||||||
|
unsigned long reg_last_reset_val;/* return: PMD last reset value */
|
||||||
|
|
||||||
|
unsigned long reg_smpl_pmds[4]; /* which pmds are accessed when PMC overflows */
|
||||||
|
unsigned long reg_smpl_eventid; /* opaque sampling event identifier */
|
||||||
|
|
||||||
|
unsigned long reg_reserved2[3]; /* for future use */
|
||||||
|
} pfarg_reg_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
unsigned int dbreg_num; /* which debug register */
|
||||||
|
unsigned short dbreg_set; /* event set for this register */
|
||||||
|
unsigned short dbreg_reserved1; /* for future use */
|
||||||
|
unsigned long dbreg_value; /* value for debug register */
|
||||||
|
unsigned long dbreg_flags; /* return: dbreg error */
|
||||||
|
unsigned long dbreg_reserved2[1]; /* for future use */
|
||||||
|
} pfarg_dbreg_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
unsigned int ft_version; /* perfmon: major [16-31], minor [0-15] */
|
||||||
|
unsigned int ft_reserved; /* reserved for future use */
|
||||||
|
unsigned long reserved[4]; /* for future use */
|
||||||
|
} pfarg_features_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
pid_t load_pid; /* process to load the context into */
|
||||||
|
unsigned short load_set; /* first event set to load */
|
||||||
|
unsigned short load_reserved1; /* for future use */
|
||||||
|
unsigned long load_reserved2[3]; /* for future use */
|
||||||
|
} pfarg_load_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int msg_type; /* generic message header */
|
||||||
|
int msg_ctx_fd; /* generic message header */
|
||||||
|
unsigned long msg_ovfl_pmds[4]; /* which PMDs overflowed */
|
||||||
|
unsigned short msg_active_set; /* active set at the time of overflow */
|
||||||
|
unsigned short msg_reserved1; /* for future use */
|
||||||
|
unsigned int msg_reserved2; /* for future use */
|
||||||
|
unsigned long msg_tstamp; /* for perf tuning/debug */
|
||||||
|
} pfm_ovfl_msg_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int msg_type; /* generic message header */
|
||||||
|
int msg_ctx_fd; /* generic message header */
|
||||||
|
unsigned long msg_tstamp; /* for perf tuning */
|
||||||
|
} pfm_end_msg_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int msg_type; /* type of the message */
|
||||||
|
int msg_ctx_fd; /* unique identifier for the context */
|
||||||
|
unsigned long msg_tstamp; /* for perf tuning */
|
||||||
|
} pfm_gen_msg_t;
|
||||||
|
|
||||||
|
#define PFM_MSG_OVFL 1 /* an overflow happened */
|
||||||
|
#define PFM_MSG_END 2 /* task to which context was attached ended */
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
pfm_ovfl_msg_t pfm_ovfl_msg;
|
||||||
|
pfm_end_msg_t pfm_end_msg;
|
||||||
|
pfm_gen_msg_t pfm_gen_msg;
|
||||||
|
} pfm_msg_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define the version numbers for both perfmon as a whole and the sampling buffer format.
|
||||||
|
*/
|
||||||
|
#define PFM_VERSION_MAJ 2U
|
||||||
|
#define PFM_VERSION_MIN 0U
|
||||||
|
#define PFM_VERSION (((PFM_VERSION_MAJ&0xffff)<<16)|(PFM_VERSION_MIN & 0xffff))
|
||||||
|
#define PFM_VERSION_MAJOR(x) (((x)>>16) & 0xffff)
|
||||||
|
#define PFM_VERSION_MINOR(x) ((x) & 0xffff)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* miscellaneous architected definitions
|
||||||
|
*/
|
||||||
|
#define PMU_FIRST_COUNTER 4 /* first counting monitor (PMC/PMD) */
|
||||||
|
#define PMU_MAX_PMCS 256 /* maximum architected number of PMC registers */
|
||||||
|
#define PMU_MAX_PMDS 256 /* maximum architected number of PMD registers */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_PERFMON_H */
|
247
arch/ia64/include/uapi/asm/ptrace.h
Normal file
247
arch/ia64/include/uapi/asm/ptrace.h
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 1998-2004 Hewlett-Packard Co
|
||||||
|
* David Mosberger-Tang <davidm@hpl.hp.com>
|
||||||
|
* Stephane Eranian <eranian@hpl.hp.com>
|
||||||
|
* Copyright (C) 2003 Intel Co
|
||||||
|
* Suresh Siddha <suresh.b.siddha@intel.com>
|
||||||
|
* Fenghua Yu <fenghua.yu@intel.com>
|
||||||
|
* Arun Sharma <arun.sharma@intel.com>
|
||||||
|
*
|
||||||
|
* 12/07/98 S. Eranian added pt_regs & switch_stack
|
||||||
|
* 12/21/98 D. Mosberger updated to match latest code
|
||||||
|
* 6/17/99 D. Mosberger added second unat member to "struct switch_stack"
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_PTRACE_H
|
||||||
|
#define _UAPI_ASM_IA64_PTRACE_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When a user process is blocked, its state looks as follows:
|
||||||
|
*
|
||||||
|
* +----------------------+ ------- IA64_STK_OFFSET
|
||||||
|
* | | ^
|
||||||
|
* | struct pt_regs | |
|
||||||
|
* | | |
|
||||||
|
* +----------------------+ |
|
||||||
|
* | | |
|
||||||
|
* | memory stack | |
|
||||||
|
* | (growing downwards) | |
|
||||||
|
* //.....................// |
|
||||||
|
* |
|
||||||
|
* //.....................// |
|
||||||
|
* | | |
|
||||||
|
* +----------------------+ |
|
||||||
|
* | struct switch_stack | |
|
||||||
|
* | | |
|
||||||
|
* +----------------------+ |
|
||||||
|
* | | |
|
||||||
|
* //.....................// |
|
||||||
|
* |
|
||||||
|
* //.....................// |
|
||||||
|
* | | |
|
||||||
|
* | register stack | |
|
||||||
|
* | (growing upwards) | |
|
||||||
|
* | | |
|
||||||
|
* +----------------------+ | --- IA64_RBS_OFFSET
|
||||||
|
* | struct thread_info | | ^
|
||||||
|
* +----------------------+ | |
|
||||||
|
* | | | |
|
||||||
|
* | struct task_struct | | |
|
||||||
|
* current -> | | | |
|
||||||
|
* +----------------------+ -------
|
||||||
|
*
|
||||||
|
* Note that ar.ec is not saved explicitly in pt_reg or switch_stack.
|
||||||
|
* This is because ar.ec is saved as part of ar.pfs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <asm/fpu.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This struct defines the way the registers are saved on system
|
||||||
|
* calls.
|
||||||
|
*
|
||||||
|
* We don't save all floating point register because the kernel
|
||||||
|
* is compiled to use only a very small subset, so the other are
|
||||||
|
* untouched.
|
||||||
|
*
|
||||||
|
* THIS STRUCTURE MUST BE A MULTIPLE 16-BYTE IN SIZE
|
||||||
|
* (because the memory stack pointer MUST ALWAYS be aligned this way)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct pt_regs {
|
||||||
|
/* The following registers are saved by SAVE_MIN: */
|
||||||
|
unsigned long b6; /* scratch */
|
||||||
|
unsigned long b7; /* scratch */
|
||||||
|
|
||||||
|
unsigned long ar_csd; /* used by cmp8xchg16 (scratch) */
|
||||||
|
unsigned long ar_ssd; /* reserved for future use (scratch) */
|
||||||
|
|
||||||
|
unsigned long r8; /* scratch (return value register 0) */
|
||||||
|
unsigned long r9; /* scratch (return value register 1) */
|
||||||
|
unsigned long r10; /* scratch (return value register 2) */
|
||||||
|
unsigned long r11; /* scratch (return value register 3) */
|
||||||
|
|
||||||
|
unsigned long cr_ipsr; /* interrupted task's psr */
|
||||||
|
unsigned long cr_iip; /* interrupted task's instruction pointer */
|
||||||
|
/*
|
||||||
|
* interrupted task's function state; if bit 63 is cleared, it
|
||||||
|
* contains syscall's ar.pfs.pfm:
|
||||||
|
*/
|
||||||
|
unsigned long cr_ifs;
|
||||||
|
|
||||||
|
unsigned long ar_unat; /* interrupted task's NaT register (preserved) */
|
||||||
|
unsigned long ar_pfs; /* prev function state */
|
||||||
|
unsigned long ar_rsc; /* RSE configuration */
|
||||||
|
/* The following two are valid only if cr_ipsr.cpl > 0 || ti->flags & _TIF_MCA_INIT */
|
||||||
|
unsigned long ar_rnat; /* RSE NaT */
|
||||||
|
unsigned long ar_bspstore; /* RSE bspstore */
|
||||||
|
|
||||||
|
unsigned long pr; /* 64 predicate registers (1 bit each) */
|
||||||
|
unsigned long b0; /* return pointer (bp) */
|
||||||
|
unsigned long loadrs; /* size of dirty partition << 16 */
|
||||||
|
|
||||||
|
unsigned long r1; /* the gp pointer */
|
||||||
|
unsigned long r12; /* interrupted task's memory stack pointer */
|
||||||
|
unsigned long r13; /* thread pointer */
|
||||||
|
|
||||||
|
unsigned long ar_fpsr; /* floating point status (preserved) */
|
||||||
|
unsigned long r15; /* scratch */
|
||||||
|
|
||||||
|
/* The remaining registers are NOT saved for system calls. */
|
||||||
|
|
||||||
|
unsigned long r14; /* scratch */
|
||||||
|
unsigned long r2; /* scratch */
|
||||||
|
unsigned long r3; /* scratch */
|
||||||
|
|
||||||
|
/* The following registers are saved by SAVE_REST: */
|
||||||
|
unsigned long r16; /* scratch */
|
||||||
|
unsigned long r17; /* scratch */
|
||||||
|
unsigned long r18; /* scratch */
|
||||||
|
unsigned long r19; /* scratch */
|
||||||
|
unsigned long r20; /* scratch */
|
||||||
|
unsigned long r21; /* scratch */
|
||||||
|
unsigned long r22; /* scratch */
|
||||||
|
unsigned long r23; /* scratch */
|
||||||
|
unsigned long r24; /* scratch */
|
||||||
|
unsigned long r25; /* scratch */
|
||||||
|
unsigned long r26; /* scratch */
|
||||||
|
unsigned long r27; /* scratch */
|
||||||
|
unsigned long r28; /* scratch */
|
||||||
|
unsigned long r29; /* scratch */
|
||||||
|
unsigned long r30; /* scratch */
|
||||||
|
unsigned long r31; /* scratch */
|
||||||
|
|
||||||
|
unsigned long ar_ccv; /* compare/exchange value (scratch) */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Floating point registers that the kernel considers scratch:
|
||||||
|
*/
|
||||||
|
struct ia64_fpreg f6; /* scratch */
|
||||||
|
struct ia64_fpreg f7; /* scratch */
|
||||||
|
struct ia64_fpreg f8; /* scratch */
|
||||||
|
struct ia64_fpreg f9; /* scratch */
|
||||||
|
struct ia64_fpreg f10; /* scratch */
|
||||||
|
struct ia64_fpreg f11; /* scratch */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This structure contains the addition registers that need to
|
||||||
|
* preserved across a context switch. This generally consists of
|
||||||
|
* "preserved" registers.
|
||||||
|
*/
|
||||||
|
struct switch_stack {
|
||||||
|
unsigned long caller_unat; /* user NaT collection register (preserved) */
|
||||||
|
unsigned long ar_fpsr; /* floating-point status register */
|
||||||
|
|
||||||
|
struct ia64_fpreg f2; /* preserved */
|
||||||
|
struct ia64_fpreg f3; /* preserved */
|
||||||
|
struct ia64_fpreg f4; /* preserved */
|
||||||
|
struct ia64_fpreg f5; /* preserved */
|
||||||
|
|
||||||
|
struct ia64_fpreg f12; /* scratch, but untouched by kernel */
|
||||||
|
struct ia64_fpreg f13; /* scratch, but untouched by kernel */
|
||||||
|
struct ia64_fpreg f14; /* scratch, but untouched by kernel */
|
||||||
|
struct ia64_fpreg f15; /* scratch, but untouched by kernel */
|
||||||
|
struct ia64_fpreg f16; /* preserved */
|
||||||
|
struct ia64_fpreg f17; /* preserved */
|
||||||
|
struct ia64_fpreg f18; /* preserved */
|
||||||
|
struct ia64_fpreg f19; /* preserved */
|
||||||
|
struct ia64_fpreg f20; /* preserved */
|
||||||
|
struct ia64_fpreg f21; /* preserved */
|
||||||
|
struct ia64_fpreg f22; /* preserved */
|
||||||
|
struct ia64_fpreg f23; /* preserved */
|
||||||
|
struct ia64_fpreg f24; /* preserved */
|
||||||
|
struct ia64_fpreg f25; /* preserved */
|
||||||
|
struct ia64_fpreg f26; /* preserved */
|
||||||
|
struct ia64_fpreg f27; /* preserved */
|
||||||
|
struct ia64_fpreg f28; /* preserved */
|
||||||
|
struct ia64_fpreg f29; /* preserved */
|
||||||
|
struct ia64_fpreg f30; /* preserved */
|
||||||
|
struct ia64_fpreg f31; /* preserved */
|
||||||
|
|
||||||
|
unsigned long r4; /* preserved */
|
||||||
|
unsigned long r5; /* preserved */
|
||||||
|
unsigned long r6; /* preserved */
|
||||||
|
unsigned long r7; /* preserved */
|
||||||
|
|
||||||
|
unsigned long b0; /* so we can force a direct return in copy_thread */
|
||||||
|
unsigned long b1;
|
||||||
|
unsigned long b2;
|
||||||
|
unsigned long b3;
|
||||||
|
unsigned long b4;
|
||||||
|
unsigned long b5;
|
||||||
|
|
||||||
|
unsigned long ar_pfs; /* previous function state */
|
||||||
|
unsigned long ar_lc; /* loop counter (preserved) */
|
||||||
|
unsigned long ar_unat; /* NaT bits for r4-r7 */
|
||||||
|
unsigned long ar_rnat; /* RSE NaT collection register */
|
||||||
|
unsigned long ar_bspstore; /* RSE dirty base (preserved) */
|
||||||
|
unsigned long pr; /* 64 predicate registers (1 bit each) */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */
|
||||||
|
struct pt_all_user_regs {
|
||||||
|
unsigned long nat;
|
||||||
|
unsigned long cr_iip;
|
||||||
|
unsigned long cfm;
|
||||||
|
unsigned long cr_ipsr;
|
||||||
|
unsigned long pr;
|
||||||
|
|
||||||
|
unsigned long gr[32];
|
||||||
|
unsigned long br[8];
|
||||||
|
unsigned long ar[128];
|
||||||
|
struct ia64_fpreg fr[128];
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
||||||
|
/* indices to application-registers array in pt_all_user_regs */
|
||||||
|
#define PT_AUR_RSC 16
|
||||||
|
#define PT_AUR_BSP 17
|
||||||
|
#define PT_AUR_BSPSTORE 18
|
||||||
|
#define PT_AUR_RNAT 19
|
||||||
|
#define PT_AUR_CCV 32
|
||||||
|
#define PT_AUR_UNAT 36
|
||||||
|
#define PT_AUR_FPSR 40
|
||||||
|
#define PT_AUR_PFS 64
|
||||||
|
#define PT_AUR_LC 65
|
||||||
|
#define PT_AUR_EC 66
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The numbers chosen here are somewhat arbitrary but absolutely MUST
|
||||||
|
* not overlap with any of the number assigned in <linux/ptrace.h>.
|
||||||
|
*/
|
||||||
|
#define PTRACE_SINGLEBLOCK 12 /* resume execution until next branch */
|
||||||
|
#define PTRACE_OLD_GETSIGINFO 13 /* (replaced by PTRACE_GETSIGINFO in <linux/ptrace.h>) */
|
||||||
|
#define PTRACE_OLD_SETSIGINFO 14 /* (replaced by PTRACE_SETSIGINFO in <linux/ptrace.h>) */
|
||||||
|
#define PTRACE_GETREGS 18 /* get all registers (pt_all_user_regs) in one shot */
|
||||||
|
#define PTRACE_SETREGS 19 /* set all registers (pt_all_user_regs) in one shot */
|
||||||
|
|
||||||
|
#define PTRACE_OLDSETOPTIONS 21
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_PTRACE_H */
|
121
arch/ia64/include/uapi/asm/siginfo.h
Normal file
121
arch/ia64/include/uapi/asm/siginfo.h
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
/*
|
||||||
|
* Based on <asm-i386/siginfo.h>.
|
||||||
|
*
|
||||||
|
* Modified 1998-2002
|
||||||
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_SIGINFO_H
|
||||||
|
#define _UAPI_ASM_IA64_SIGINFO_H
|
||||||
|
|
||||||
|
|
||||||
|
#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
|
||||||
|
|
||||||
|
#define HAVE_ARCH_SIGINFO_T
|
||||||
|
#define HAVE_ARCH_COPY_SIGINFO
|
||||||
|
#define HAVE_ARCH_COPY_SIGINFO_TO_USER
|
||||||
|
|
||||||
|
#include <asm-generic/siginfo.h>
|
||||||
|
|
||||||
|
typedef struct siginfo {
|
||||||
|
int si_signo;
|
||||||
|
int si_errno;
|
||||||
|
int si_code;
|
||||||
|
int __pad0;
|
||||||
|
|
||||||
|
union {
|
||||||
|
int _pad[SI_PAD_SIZE];
|
||||||
|
|
||||||
|
/* kill() */
|
||||||
|
struct {
|
||||||
|
pid_t _pid; /* sender's pid */
|
||||||
|
uid_t _uid; /* sender's uid */
|
||||||
|
} _kill;
|
||||||
|
|
||||||
|
/* POSIX.1b timers */
|
||||||
|
struct {
|
||||||
|
timer_t _tid; /* timer id */
|
||||||
|
int _overrun; /* overrun count */
|
||||||
|
char _pad[sizeof(__ARCH_SI_UID_T) - sizeof(int)];
|
||||||
|
sigval_t _sigval; /* must overlay ._rt._sigval! */
|
||||||
|
int _sys_private; /* not to be passed to user */
|
||||||
|
} _timer;
|
||||||
|
|
||||||
|
/* POSIX.1b signals */
|
||||||
|
struct {
|
||||||
|
pid_t _pid; /* sender's pid */
|
||||||
|
uid_t _uid; /* sender's uid */
|
||||||
|
sigval_t _sigval;
|
||||||
|
} _rt;
|
||||||
|
|
||||||
|
/* SIGCHLD */
|
||||||
|
struct {
|
||||||
|
pid_t _pid; /* which child */
|
||||||
|
uid_t _uid; /* sender's uid */
|
||||||
|
int _status; /* exit code */
|
||||||
|
clock_t _utime;
|
||||||
|
clock_t _stime;
|
||||||
|
} _sigchld;
|
||||||
|
|
||||||
|
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
|
||||||
|
struct {
|
||||||
|
void __user *_addr; /* faulting insn/memory ref. */
|
||||||
|
int _imm; /* immediate value for "break" */
|
||||||
|
unsigned int _flags; /* see below */
|
||||||
|
unsigned long _isr; /* isr */
|
||||||
|
short _addr_lsb; /* lsb of faulting address */
|
||||||
|
} _sigfault;
|
||||||
|
|
||||||
|
/* SIGPOLL */
|
||||||
|
struct {
|
||||||
|
long _band; /* POLL_IN, POLL_OUT, POLL_MSG (XPG requires a "long") */
|
||||||
|
int _fd;
|
||||||
|
} _sigpoll;
|
||||||
|
} _sifields;
|
||||||
|
} siginfo_t;
|
||||||
|
|
||||||
|
#define si_imm _sifields._sigfault._imm /* as per UNIX SysV ABI spec */
|
||||||
|
#define si_flags _sifields._sigfault._flags
|
||||||
|
/*
|
||||||
|
* si_isr is valid for SIGILL, SIGFPE, SIGSEGV, SIGBUS, and SIGTRAP provided that
|
||||||
|
* si_code is non-zero and __ISR_VALID is set in si_flags.
|
||||||
|
*/
|
||||||
|
#define si_isr _sifields._sigfault._isr
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Flag values for si_flags:
|
||||||
|
*/
|
||||||
|
#define __ISR_VALID_BIT 0
|
||||||
|
#define __ISR_VALID (1 << __ISR_VALID_BIT)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SIGILL si_codes
|
||||||
|
*/
|
||||||
|
#define ILL_BADIADDR (__SI_FAULT|9) /* unimplemented instruction address */
|
||||||
|
#define __ILL_BREAK (__SI_FAULT|10) /* illegal break */
|
||||||
|
#define __ILL_BNDMOD (__SI_FAULT|11) /* bundle-update (modification) in progress */
|
||||||
|
#undef NSIGILL
|
||||||
|
#define NSIGILL 11
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SIGFPE si_codes
|
||||||
|
*/
|
||||||
|
#define __FPE_DECOVF (__SI_FAULT|9) /* decimal overflow */
|
||||||
|
#define __FPE_DECDIV (__SI_FAULT|10) /* decimal division by zero */
|
||||||
|
#define __FPE_DECERR (__SI_FAULT|11) /* packed decimal error */
|
||||||
|
#define __FPE_INVASC (__SI_FAULT|12) /* invalid ASCII digit */
|
||||||
|
#define __FPE_INVDEC (__SI_FAULT|13) /* invalid decimal digit */
|
||||||
|
#undef NSIGFPE
|
||||||
|
#define NSIGFPE 13
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SIGSEGV si_codes
|
||||||
|
*/
|
||||||
|
#define __SEGV_PSTKOVF (__SI_FAULT|3) /* paragraph stack overflow */
|
||||||
|
#undef NSIGSEGV
|
||||||
|
#define NSIGSEGV 3
|
||||||
|
|
||||||
|
#undef NSIGTRAP
|
||||||
|
#define NSIGTRAP 4
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_SIGINFO_H */
|
127
arch/ia64/include/uapi/asm/signal.h
Normal file
127
arch/ia64/include/uapi/asm/signal.h
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
/*
|
||||||
|
* Modified 1998-2001, 2003
|
||||||
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
|
*
|
||||||
|
* Unfortunately, this file is being included by bits/signal.h in
|
||||||
|
* glibc-2.x. Hence the #ifdef __KERNEL__ ugliness.
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_SIGNAL_H
|
||||||
|
#define _UAPI_ASM_IA64_SIGNAL_H
|
||||||
|
|
||||||
|
|
||||||
|
#define SIGHUP 1
|
||||||
|
#define SIGINT 2
|
||||||
|
#define SIGQUIT 3
|
||||||
|
#define SIGILL 4
|
||||||
|
#define SIGTRAP 5
|
||||||
|
#define SIGABRT 6
|
||||||
|
#define SIGIOT 6
|
||||||
|
#define SIGBUS 7
|
||||||
|
#define SIGFPE 8
|
||||||
|
#define SIGKILL 9
|
||||||
|
#define SIGUSR1 10
|
||||||
|
#define SIGSEGV 11
|
||||||
|
#define SIGUSR2 12
|
||||||
|
#define SIGPIPE 13
|
||||||
|
#define SIGALRM 14
|
||||||
|
#define SIGTERM 15
|
||||||
|
#define SIGSTKFLT 16
|
||||||
|
#define SIGCHLD 17
|
||||||
|
#define SIGCONT 18
|
||||||
|
#define SIGSTOP 19
|
||||||
|
#define SIGTSTP 20
|
||||||
|
#define SIGTTIN 21
|
||||||
|
#define SIGTTOU 22
|
||||||
|
#define SIGURG 23
|
||||||
|
#define SIGXCPU 24
|
||||||
|
#define SIGXFSZ 25
|
||||||
|
#define SIGVTALRM 26
|
||||||
|
#define SIGPROF 27
|
||||||
|
#define SIGWINCH 28
|
||||||
|
#define SIGIO 29
|
||||||
|
#define SIGPOLL SIGIO
|
||||||
|
/*
|
||||||
|
#define SIGLOST 29
|
||||||
|
*/
|
||||||
|
#define SIGPWR 30
|
||||||
|
#define SIGSYS 31
|
||||||
|
/* signal 31 is no longer "unused", but the SIGUNUSED macro remains for backwards compatibility */
|
||||||
|
#define SIGUNUSED 31
|
||||||
|
|
||||||
|
/* These should not be considered constants from userland. */
|
||||||
|
#define SIGRTMIN 32
|
||||||
|
#define SIGRTMAX _NSIG
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SA_FLAGS values:
|
||||||
|
*
|
||||||
|
* SA_ONSTACK indicates that a registered stack_t will be used.
|
||||||
|
* SA_RESTART flag to get restarting signals (which were the default long ago)
|
||||||
|
* SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
|
||||||
|
* SA_RESETHAND clears the handler when the signal is delivered.
|
||||||
|
* SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
|
||||||
|
* SA_NODEFER prevents the current signal from being masked in the handler.
|
||||||
|
*
|
||||||
|
* SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
|
||||||
|
* Unix names RESETHAND and NODEFER respectively.
|
||||||
|
*/
|
||||||
|
#define SA_NOCLDSTOP 0x00000001
|
||||||
|
#define SA_NOCLDWAIT 0x00000002
|
||||||
|
#define SA_SIGINFO 0x00000004
|
||||||
|
#define SA_ONSTACK 0x08000000
|
||||||
|
#define SA_RESTART 0x10000000
|
||||||
|
#define SA_NODEFER 0x40000000
|
||||||
|
#define SA_RESETHAND 0x80000000
|
||||||
|
|
||||||
|
#define SA_NOMASK SA_NODEFER
|
||||||
|
#define SA_ONESHOT SA_RESETHAND
|
||||||
|
|
||||||
|
#define SA_RESTORER 0x04000000
|
||||||
|
|
||||||
|
/*
|
||||||
|
* sigaltstack controls
|
||||||
|
*/
|
||||||
|
#define SS_ONSTACK 1
|
||||||
|
#define SS_DISABLE 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The minimum stack size needs to be fairly large because we want to
|
||||||
|
* be sure that an app compiled for today's CPUs will continue to run
|
||||||
|
* on all future CPU models. The CPU model matters because the signal
|
||||||
|
* frame needs to have space for the complete machine state, including
|
||||||
|
* all physical stacked registers. The number of physical stacked
|
||||||
|
* registers is CPU model dependent, but given that the width of
|
||||||
|
* ar.rsc.loadrs is 14 bits, we can assume that they'll never take up
|
||||||
|
* more than 16KB of space.
|
||||||
|
*/
|
||||||
|
#if 1
|
||||||
|
/*
|
||||||
|
* This is a stupid typo: the value was _meant_ to be 131072 (0x20000), but I typed it
|
||||||
|
* in wrong. ;-( To preserve backwards compatibility, we leave the kernel at the
|
||||||
|
* incorrect value and fix libc only.
|
||||||
|
*/
|
||||||
|
# define MINSIGSTKSZ 131027 /* min. stack size for sigaltstack() */
|
||||||
|
#else
|
||||||
|
# define MINSIGSTKSZ 131072 /* min. stack size for sigaltstack() */
|
||||||
|
#endif
|
||||||
|
#define SIGSTKSZ 262144 /* default stack size for sigaltstack() */
|
||||||
|
|
||||||
|
|
||||||
|
#include <asm-generic/signal-defs.h>
|
||||||
|
|
||||||
|
# ifndef __ASSEMBLY__
|
||||||
|
|
||||||
|
# include <linux/types.h>
|
||||||
|
|
||||||
|
/* Avoid too many header ordering problems. */
|
||||||
|
struct siginfo;
|
||||||
|
|
||||||
|
typedef struct sigaltstack {
|
||||||
|
void __user *ss_sp;
|
||||||
|
int ss_flags;
|
||||||
|
size_t ss_size;
|
||||||
|
} stack_t;
|
||||||
|
|
||||||
|
|
||||||
|
# endif /* !__ASSEMBLY__ */
|
||||||
|
#endif /* _UAPI_ASM_IA64_SIGNAL_H */
|
50
arch/ia64/include/uapi/asm/termios.h
Normal file
50
arch/ia64/include/uapi/asm/termios.h
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Modified 1999
|
||||||
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
|
*
|
||||||
|
* 99/01/28 Added N_IRDA and N_SMSBLOCK
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_TERMIOS_H
|
||||||
|
#define _UAPI_ASM_IA64_TERMIOS_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <asm/termbits.h>
|
||||||
|
#include <asm/ioctls.h>
|
||||||
|
|
||||||
|
struct winsize {
|
||||||
|
unsigned short ws_row;
|
||||||
|
unsigned short ws_col;
|
||||||
|
unsigned short ws_xpixel;
|
||||||
|
unsigned short ws_ypixel;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define NCC 8
|
||||||
|
struct termio {
|
||||||
|
unsigned short c_iflag; /* input mode flags */
|
||||||
|
unsigned short c_oflag; /* output mode flags */
|
||||||
|
unsigned short c_cflag; /* control mode flags */
|
||||||
|
unsigned short c_lflag; /* local mode flags */
|
||||||
|
unsigned char c_line; /* line discipline */
|
||||||
|
unsigned char c_cc[NCC]; /* control characters */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* modem lines */
|
||||||
|
#define TIOCM_LE 0x001
|
||||||
|
#define TIOCM_DTR 0x002
|
||||||
|
#define TIOCM_RTS 0x004
|
||||||
|
#define TIOCM_ST 0x008
|
||||||
|
#define TIOCM_SR 0x010
|
||||||
|
#define TIOCM_CTS 0x020
|
||||||
|
#define TIOCM_CAR 0x040
|
||||||
|
#define TIOCM_RNG 0x080
|
||||||
|
#define TIOCM_DSR 0x100
|
||||||
|
#define TIOCM_CD TIOCM_CAR
|
||||||
|
#define TIOCM_RI TIOCM_RNG
|
||||||
|
#define TIOCM_OUT1 0x2000
|
||||||
|
#define TIOCM_OUT2 0x4000
|
||||||
|
#define TIOCM_LOOP 0x8000
|
||||||
|
|
||||||
|
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_TERMIOS_H */
|
31
arch/ia64/include/uapi/asm/types.h
Normal file
31
arch/ia64/include/uapi/asm/types.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is never included by application software unless explicitly
|
||||||
|
* requested (e.g., via linux/types.h) in which case the application is
|
||||||
|
* Linux specific so (user-) name space pollution is not a major issue.
|
||||||
|
* However, for interoperability, libraries still need to be careful to
|
||||||
|
* avoid naming clashes.
|
||||||
|
*
|
||||||
|
* Based on <asm-alpha/types.h>.
|
||||||
|
*
|
||||||
|
* Modified 1998-2000, 2002
|
||||||
|
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_TYPES_H
|
||||||
|
#define _UAPI_ASM_IA64_TYPES_H
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __KERNEL__
|
||||||
|
#include <asm-generic/int-l64.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __ASSEMBLY__
|
||||||
|
# define __IA64_UL(x) (x)
|
||||||
|
# define __IA64_UL_CONST(x) x
|
||||||
|
|
||||||
|
#else
|
||||||
|
# define __IA64_UL(x) ((unsigned long)(x))
|
||||||
|
# define __IA64_UL_CONST(x) x##UL
|
||||||
|
|
||||||
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_TYPES_H */
|
328
arch/ia64/include/uapi/asm/unistd.h
Normal file
328
arch/ia64/include/uapi/asm/unistd.h
Normal file
@ -0,0 +1,328 @@
|
|||||||
|
/*
|
||||||
|
* IA-64 Linux syscall numbers and inline-functions.
|
||||||
|
*
|
||||||
|
* Copyright (C) 1998-2005 Hewlett-Packard Co
|
||||||
|
* David Mosberger-Tang <davidm@hpl.hp.com>
|
||||||
|
*/
|
||||||
|
#ifndef _UAPI_ASM_IA64_UNISTD_H
|
||||||
|
#define _UAPI_ASM_IA64_UNISTD_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <asm/break.h>
|
||||||
|
|
||||||
|
#define __BREAK_SYSCALL __IA64_BREAK_SYSCALL
|
||||||
|
|
||||||
|
#define __NR_ni_syscall 1024
|
||||||
|
#define __NR_exit 1025
|
||||||
|
#define __NR_read 1026
|
||||||
|
#define __NR_write 1027
|
||||||
|
#define __NR_open 1028
|
||||||
|
#define __NR_close 1029
|
||||||
|
#define __NR_creat 1030
|
||||||
|
#define __NR_link 1031
|
||||||
|
#define __NR_unlink 1032
|
||||||
|
#define __NR_execve 1033
|
||||||
|
#define __NR_chdir 1034
|
||||||
|
#define __NR_fchdir 1035
|
||||||
|
#define __NR_utimes 1036
|
||||||
|
#define __NR_mknod 1037
|
||||||
|
#define __NR_chmod 1038
|
||||||
|
#define __NR_chown 1039
|
||||||
|
#define __NR_lseek 1040
|
||||||
|
#define __NR_getpid 1041
|
||||||
|
#define __NR_getppid 1042
|
||||||
|
#define __NR_mount 1043
|
||||||
|
#define __NR_umount 1044
|
||||||
|
#define __NR_setuid 1045
|
||||||
|
#define __NR_getuid 1046
|
||||||
|
#define __NR_geteuid 1047
|
||||||
|
#define __NR_ptrace 1048
|
||||||
|
#define __NR_access 1049
|
||||||
|
#define __NR_sync 1050
|
||||||
|
#define __NR_fsync 1051
|
||||||
|
#define __NR_fdatasync 1052
|
||||||
|
#define __NR_kill 1053
|
||||||
|
#define __NR_rename 1054
|
||||||
|
#define __NR_mkdir 1055
|
||||||
|
#define __NR_rmdir 1056
|
||||||
|
#define __NR_dup 1057
|
||||||
|
#define __NR_pipe 1058
|
||||||
|
#define __NR_times 1059
|
||||||
|
#define __NR_brk 1060
|
||||||
|
#define __NR_setgid 1061
|
||||||
|
#define __NR_getgid 1062
|
||||||
|
#define __NR_getegid 1063
|
||||||
|
#define __NR_acct 1064
|
||||||
|
#define __NR_ioctl 1065
|
||||||
|
#define __NR_fcntl 1066
|
||||||
|
#define __NR_umask 1067
|
||||||
|
#define __NR_chroot 1068
|
||||||
|
#define __NR_ustat 1069
|
||||||
|
#define __NR_dup2 1070
|
||||||
|
#define __NR_setreuid 1071
|
||||||
|
#define __NR_setregid 1072
|
||||||
|
#define __NR_getresuid 1073
|
||||||
|
#define __NR_setresuid 1074
|
||||||
|
#define __NR_getresgid 1075
|
||||||
|
#define __NR_setresgid 1076
|
||||||
|
#define __NR_getgroups 1077
|
||||||
|
#define __NR_setgroups 1078
|
||||||
|
#define __NR_getpgid 1079
|
||||||
|
#define __NR_setpgid 1080
|
||||||
|
#define __NR_setsid 1081
|
||||||
|
#define __NR_getsid 1082
|
||||||
|
#define __NR_sethostname 1083
|
||||||
|
#define __NR_setrlimit 1084
|
||||||
|
#define __NR_getrlimit 1085
|
||||||
|
#define __NR_getrusage 1086
|
||||||
|
#define __NR_gettimeofday 1087
|
||||||
|
#define __NR_settimeofday 1088
|
||||||
|
#define __NR_select 1089
|
||||||
|
#define __NR_poll 1090
|
||||||
|
#define __NR_symlink 1091
|
||||||
|
#define __NR_readlink 1092
|
||||||
|
#define __NR_uselib 1093
|
||||||
|
#define __NR_swapon 1094
|
||||||
|
#define __NR_swapoff 1095
|
||||||
|
#define __NR_reboot 1096
|
||||||
|
#define __NR_truncate 1097
|
||||||
|
#define __NR_ftruncate 1098
|
||||||
|
#define __NR_fchmod 1099
|
||||||
|
#define __NR_fchown 1100
|
||||||
|
#define __NR_getpriority 1101
|
||||||
|
#define __NR_setpriority 1102
|
||||||
|
#define __NR_statfs 1103
|
||||||
|
#define __NR_fstatfs 1104
|
||||||
|
#define __NR_gettid 1105
|
||||||
|
#define __NR_semget 1106
|
||||||
|
#define __NR_semop 1107
|
||||||
|
#define __NR_semctl 1108
|
||||||
|
#define __NR_msgget 1109
|
||||||
|
#define __NR_msgsnd 1110
|
||||||
|
#define __NR_msgrcv 1111
|
||||||
|
#define __NR_msgctl 1112
|
||||||
|
#define __NR_shmget 1113
|
||||||
|
#define __NR_shmat 1114
|
||||||
|
#define __NR_shmdt 1115
|
||||||
|
#define __NR_shmctl 1116
|
||||||
|
/* also known as klogctl() in GNU libc: */
|
||||||
|
#define __NR_syslog 1117
|
||||||
|
#define __NR_setitimer 1118
|
||||||
|
#define __NR_getitimer 1119
|
||||||
|
/* 1120 was __NR_old_stat */
|
||||||
|
/* 1121 was __NR_old_lstat */
|
||||||
|
/* 1122 was __NR_old_fstat */
|
||||||
|
#define __NR_vhangup 1123
|
||||||
|
#define __NR_lchown 1124
|
||||||
|
#define __NR_remap_file_pages 1125
|
||||||
|
#define __NR_wait4 1126
|
||||||
|
#define __NR_sysinfo 1127
|
||||||
|
#define __NR_clone 1128
|
||||||
|
#define __NR_setdomainname 1129
|
||||||
|
#define __NR_uname 1130
|
||||||
|
#define __NR_adjtimex 1131
|
||||||
|
/* 1132 was __NR_create_module */
|
||||||
|
#define __NR_init_module 1133
|
||||||
|
#define __NR_delete_module 1134
|
||||||
|
/* 1135 was __NR_get_kernel_syms */
|
||||||
|
/* 1136 was __NR_query_module */
|
||||||
|
#define __NR_quotactl 1137
|
||||||
|
#define __NR_bdflush 1138
|
||||||
|
#define __NR_sysfs 1139
|
||||||
|
#define __NR_personality 1140
|
||||||
|
#define __NR_afs_syscall 1141
|
||||||
|
#define __NR_setfsuid 1142
|
||||||
|
#define __NR_setfsgid 1143
|
||||||
|
#define __NR_getdents 1144
|
||||||
|
#define __NR_flock 1145
|
||||||
|
#define __NR_readv 1146
|
||||||
|
#define __NR_writev 1147
|
||||||
|
#define __NR_pread64 1148
|
||||||
|
#define __NR_pwrite64 1149
|
||||||
|
#define __NR__sysctl 1150
|
||||||
|
#define __NR_mmap 1151
|
||||||
|
#define __NR_munmap 1152
|
||||||
|
#define __NR_mlock 1153
|
||||||
|
#define __NR_mlockall 1154
|
||||||
|
#define __NR_mprotect 1155
|
||||||
|
#define __NR_mremap 1156
|
||||||
|
#define __NR_msync 1157
|
||||||
|
#define __NR_munlock 1158
|
||||||
|
#define __NR_munlockall 1159
|
||||||
|
#define __NR_sched_getparam 1160
|
||||||
|
#define __NR_sched_setparam 1161
|
||||||
|
#define __NR_sched_getscheduler 1162
|
||||||
|
#define __NR_sched_setscheduler 1163
|
||||||
|
#define __NR_sched_yield 1164
|
||||||
|
#define __NR_sched_get_priority_max 1165
|
||||||
|
#define __NR_sched_get_priority_min 1166
|
||||||
|
#define __NR_sched_rr_get_interval 1167
|
||||||
|
#define __NR_nanosleep 1168
|
||||||
|
#define __NR_nfsservctl 1169
|
||||||
|
#define __NR_prctl 1170
|
||||||
|
/* 1171 is reserved for backwards compatibility with old __NR_getpagesize */
|
||||||
|
#define __NR_mmap2 1172
|
||||||
|
#define __NR_pciconfig_read 1173
|
||||||
|
#define __NR_pciconfig_write 1174
|
||||||
|
#define __NR_perfmonctl 1175
|
||||||
|
#define __NR_sigaltstack 1176
|
||||||
|
#define __NR_rt_sigaction 1177
|
||||||
|
#define __NR_rt_sigpending 1178
|
||||||
|
#define __NR_rt_sigprocmask 1179
|
||||||
|
#define __NR_rt_sigqueueinfo 1180
|
||||||
|
#define __NR_rt_sigreturn 1181
|
||||||
|
#define __NR_rt_sigsuspend 1182
|
||||||
|
#define __NR_rt_sigtimedwait 1183
|
||||||
|
#define __NR_getcwd 1184
|
||||||
|
#define __NR_capget 1185
|
||||||
|
#define __NR_capset 1186
|
||||||
|
#define __NR_sendfile 1187
|
||||||
|
#define __NR_getpmsg 1188
|
||||||
|
#define __NR_putpmsg 1189
|
||||||
|
#define __NR_socket 1190
|
||||||
|
#define __NR_bind 1191
|
||||||
|
#define __NR_connect 1192
|
||||||
|
#define __NR_listen 1193
|
||||||
|
#define __NR_accept 1194
|
||||||
|
#define __NR_getsockname 1195
|
||||||
|
#define __NR_getpeername 1196
|
||||||
|
#define __NR_socketpair 1197
|
||||||
|
#define __NR_send 1198
|
||||||
|
#define __NR_sendto 1199
|
||||||
|
#define __NR_recv 1200
|
||||||
|
#define __NR_recvfrom 1201
|
||||||
|
#define __NR_shutdown 1202
|
||||||
|
#define __NR_setsockopt 1203
|
||||||
|
#define __NR_getsockopt 1204
|
||||||
|
#define __NR_sendmsg 1205
|
||||||
|
#define __NR_recvmsg 1206
|
||||||
|
#define __NR_pivot_root 1207
|
||||||
|
#define __NR_mincore 1208
|
||||||
|
#define __NR_madvise 1209
|
||||||
|
#define __NR_stat 1210
|
||||||
|
#define __NR_lstat 1211
|
||||||
|
#define __NR_fstat 1212
|
||||||
|
#define __NR_clone2 1213
|
||||||
|
#define __NR_getdents64 1214
|
||||||
|
#define __NR_getunwind 1215
|
||||||
|
#define __NR_readahead 1216
|
||||||
|
#define __NR_setxattr 1217
|
||||||
|
#define __NR_lsetxattr 1218
|
||||||
|
#define __NR_fsetxattr 1219
|
||||||
|
#define __NR_getxattr 1220
|
||||||
|
#define __NR_lgetxattr 1221
|
||||||
|
#define __NR_fgetxattr 1222
|
||||||
|
#define __NR_listxattr 1223
|
||||||
|
#define __NR_llistxattr 1224
|
||||||
|
#define __NR_flistxattr 1225
|
||||||
|
#define __NR_removexattr 1226
|
||||||
|
#define __NR_lremovexattr 1227
|
||||||
|
#define __NR_fremovexattr 1228
|
||||||
|
#define __NR_tkill 1229
|
||||||
|
#define __NR_futex 1230
|
||||||
|
#define __NR_sched_setaffinity 1231
|
||||||
|
#define __NR_sched_getaffinity 1232
|
||||||
|
#define __NR_set_tid_address 1233
|
||||||
|
#define __NR_fadvise64 1234
|
||||||
|
#define __NR_tgkill 1235
|
||||||
|
#define __NR_exit_group 1236
|
||||||
|
#define __NR_lookup_dcookie 1237
|
||||||
|
#define __NR_io_setup 1238
|
||||||
|
#define __NR_io_destroy 1239
|
||||||
|
#define __NR_io_getevents 1240
|
||||||
|
#define __NR_io_submit 1241
|
||||||
|
#define __NR_io_cancel 1242
|
||||||
|
#define __NR_epoll_create 1243
|
||||||
|
#define __NR_epoll_ctl 1244
|
||||||
|
#define __NR_epoll_wait 1245
|
||||||
|
#define __NR_restart_syscall 1246
|
||||||
|
#define __NR_semtimedop 1247
|
||||||
|
#define __NR_timer_create 1248
|
||||||
|
#define __NR_timer_settime 1249
|
||||||
|
#define __NR_timer_gettime 1250
|
||||||
|
#define __NR_timer_getoverrun 1251
|
||||||
|
#define __NR_timer_delete 1252
|
||||||
|
#define __NR_clock_settime 1253
|
||||||
|
#define __NR_clock_gettime 1254
|
||||||
|
#define __NR_clock_getres 1255
|
||||||
|
#define __NR_clock_nanosleep 1256
|
||||||
|
#define __NR_fstatfs64 1257
|
||||||
|
#define __NR_statfs64 1258
|
||||||
|
#define __NR_mbind 1259
|
||||||
|
#define __NR_get_mempolicy 1260
|
||||||
|
#define __NR_set_mempolicy 1261
|
||||||
|
#define __NR_mq_open 1262
|
||||||
|
#define __NR_mq_unlink 1263
|
||||||
|
#define __NR_mq_timedsend 1264
|
||||||
|
#define __NR_mq_timedreceive 1265
|
||||||
|
#define __NR_mq_notify 1266
|
||||||
|
#define __NR_mq_getsetattr 1267
|
||||||
|
#define __NR_kexec_load 1268
|
||||||
|
#define __NR_vserver 1269
|
||||||
|
#define __NR_waitid 1270
|
||||||
|
#define __NR_add_key 1271
|
||||||
|
#define __NR_request_key 1272
|
||||||
|
#define __NR_keyctl 1273
|
||||||
|
#define __NR_ioprio_set 1274
|
||||||
|
#define __NR_ioprio_get 1275
|
||||||
|
#define __NR_move_pages 1276
|
||||||
|
#define __NR_inotify_init 1277
|
||||||
|
#define __NR_inotify_add_watch 1278
|
||||||
|
#define __NR_inotify_rm_watch 1279
|
||||||
|
#define __NR_migrate_pages 1280
|
||||||
|
#define __NR_openat 1281
|
||||||
|
#define __NR_mkdirat 1282
|
||||||
|
#define __NR_mknodat 1283
|
||||||
|
#define __NR_fchownat 1284
|
||||||
|
#define __NR_futimesat 1285
|
||||||
|
#define __NR_newfstatat 1286
|
||||||
|
#define __NR_unlinkat 1287
|
||||||
|
#define __NR_renameat 1288
|
||||||
|
#define __NR_linkat 1289
|
||||||
|
#define __NR_symlinkat 1290
|
||||||
|
#define __NR_readlinkat 1291
|
||||||
|
#define __NR_fchmodat 1292
|
||||||
|
#define __NR_faccessat 1293
|
||||||
|
#define __NR_pselect6 1294
|
||||||
|
#define __NR_ppoll 1295
|
||||||
|
#define __NR_unshare 1296
|
||||||
|
#define __NR_splice 1297
|
||||||
|
#define __NR_set_robust_list 1298
|
||||||
|
#define __NR_get_robust_list 1299
|
||||||
|
#define __NR_sync_file_range 1300
|
||||||
|
#define __NR_tee 1301
|
||||||
|
#define __NR_vmsplice 1302
|
||||||
|
#define __NR_fallocate 1303
|
||||||
|
#define __NR_getcpu 1304
|
||||||
|
#define __NR_epoll_pwait 1305
|
||||||
|
#define __NR_utimensat 1306
|
||||||
|
#define __NR_signalfd 1307
|
||||||
|
#define __NR_timerfd 1308
|
||||||
|
#define __NR_eventfd 1309
|
||||||
|
#define __NR_timerfd_create 1310
|
||||||
|
#define __NR_timerfd_settime 1311
|
||||||
|
#define __NR_timerfd_gettime 1312
|
||||||
|
#define __NR_signalfd4 1313
|
||||||
|
#define __NR_eventfd2 1314
|
||||||
|
#define __NR_epoll_create1 1315
|
||||||
|
#define __NR_dup3 1316
|
||||||
|
#define __NR_pipe2 1317
|
||||||
|
#define __NR_inotify_init1 1318
|
||||||
|
#define __NR_preadv 1319
|
||||||
|
#define __NR_pwritev 1320
|
||||||
|
#define __NR_rt_tgsigqueueinfo 1321
|
||||||
|
#define __NR_recvmmsg 1322
|
||||||
|
#define __NR_fanotify_init 1323
|
||||||
|
#define __NR_fanotify_mark 1324
|
||||||
|
#define __NR_prlimit64 1325
|
||||||
|
#define __NR_name_to_handle_at 1326
|
||||||
|
#define __NR_open_by_handle_at 1327
|
||||||
|
#define __NR_clock_adjtime 1328
|
||||||
|
#define __NR_syncfs 1329
|
||||||
|
#define __NR_setns 1330
|
||||||
|
#define __NR_sendmmsg 1331
|
||||||
|
#define __NR_process_vm_readv 1332
|
||||||
|
#define __NR_process_vm_writev 1333
|
||||||
|
#define __NR_accept4 1334
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_UNISTD_H */
|
12
arch/ia64/include/uapi/asm/ustack.h
Normal file
12
arch/ia64/include/uapi/asm/ustack.h
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#ifndef _UAPI_ASM_IA64_USTACK_H
|
||||||
|
#define _UAPI_ASM_IA64_USTACK_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constants for the user stack size
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Make a default stack size of 2GiB */
|
||||||
|
#define DEFAULT_USER_STACK_SIZE (1UL << 31)
|
||||||
|
|
||||||
|
#endif /* _UAPI_ASM_IA64_USTACK_H */
|
Loading…
Reference in New Issue
Block a user