UAPI Disintegration 2012-10-09
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUHPmXBOxKuMESys7AQKOsA/8DZVRGSXopzSSFoKwgf8QHgeyULYGD0zm e9qpm1mGv8G/y/KgoyOTOezZG4FOE/O35r8iOUT2UJodom1mbEZjcqBdfBkkUAOX 5/d+r0OwSfW+zH5q5exAs3+XoIR5IqS/BFaAxImVNtOG0RWizGgef2RJ//Bj8FpO EcPL8FI8ODA9vgkcTNnZd/S0ZS7zy0Okidseq4II2m4d9h4nPY69KNQqNfmw0U7s c721fC9vFb4BQrDw5Io5GNsRb8mB7s1L/1tfuCQigG13cmPSdCU6lzEfVqPQ8LNw 2OscHZCZmjct4ysceL7o6v+gy+PHADi420n6hPoV/WyyivJ9wAOwLUFC8hC+YIKm zynxSUgNPeW6pes4wvlw9yW5uK9n6M/zLxqpHSPT0VULbKF7eAPl81i85R30+g6x ZJtDYzLSN5wrmx+qdLORqasca5htLOKNKA3czJa2D9JUnwp1zx8zgHE7Jd1WRSVu heq5k60z3GTJSdl15VyMQJXOVE4KebV3/XrIdZdfiMdpgaVTUvg/yKhOTKG1VQZM XHoac8gYbRyPnVIN+UA8RMsy32esbMJmNI3beWu3dy7nKYLc0BpLc2kFazQtjN4F QPUF14veHkgIe01qNzJeEz7YpL6u1hta86K0A7uTk8uDjFNuuxDh21cFchqBt4Sy 3uKvzSL5kVI= =xVoc -----END PGP SIGNATURE----- Merge tag 'tags/disintegrate-tile-20121009' into for-linus UAPI Disintegration 2012-10-09
This commit is contained in:
Коммит
d20f2f83b2
|
@ -1,17 +0,0 @@
|
|||
header-y += abi.h
|
||||
header-y += chip.h
|
||||
header-y += chip_tile64.h
|
||||
header-y += chip_tilegx.h
|
||||
header-y += chip_tilepro.h
|
||||
header-y += icache.h
|
||||
header-y += interrupts.h
|
||||
header-y += interrupts_32.h
|
||||
header-y += interrupts_64.h
|
||||
header-y += opcode.h
|
||||
header-y += opcode_tilegx.h
|
||||
header-y += opcode_tilepro.h
|
||||
header-y += sim.h
|
||||
header-y += sim_def.h
|
||||
header-y += spr_def.h
|
||||
header-y += spr_def_32.h
|
||||
header-y += spr_def_64.h
|
|
@ -11,15 +11,11 @@
|
|||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
#ifndef __ARCH_SPR_DEF_H__
|
||||
#define __ARCH_SPR_DEF_H__
|
||||
|
||||
/* Include the proper base SPR definition file. */
|
||||
#ifdef __tilegx__
|
||||
#include <arch/spr_def_64.h>
|
||||
#else
|
||||
#include <arch/spr_def_32.h>
|
||||
#endif
|
||||
#include <uapi/arch/spr_def.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/*
|
||||
* In addition to including the proper base SPR definition file, depending
|
||||
|
@ -110,4 +106,4 @@
|
|||
#define INT_INTCTRL_K \
|
||||
_concat4(INT_INTCTRL_, CONFIG_KERNEL_PL,,)
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __ARCH_SPR_DEF_H__ */
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
include include/asm-generic/Kbuild.asm
|
||||
|
||||
header-y += ../arch/
|
||||
|
||||
header-y += cachectl.h
|
||||
header-y += ucontext.h
|
||||
header-y += hardwall.h
|
||||
|
||||
generic-y += bug.h
|
||||
generic-y += bugs.h
|
||||
|
|
|
@ -14,40 +14,11 @@
|
|||
* Provide methods for access control of per-cpu resources like
|
||||
* UDN, IDN, or IPI.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_TILE_HARDWALL_H
|
||||
#define _ASM_TILE_HARDWALL_H
|
||||
|
||||
#include <arch/chip.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <uapi/asm/hardwall.h>
|
||||
|
||||
#define HARDWALL_IOCTL_BASE 0xa2
|
||||
|
||||
/*
|
||||
* The HARDWALL_CREATE() ioctl is a macro with a "size" argument.
|
||||
* The resulting ioctl value is passed to the kernel in conjunction
|
||||
* with a pointer to a standard kernel bitmask of cpus.
|
||||
* For network resources (UDN or IDN) the bitmask must physically
|
||||
* represent a rectangular configuration on the chip.
|
||||
* The "size" is the number of bytes of cpu mask data.
|
||||
*/
|
||||
#define _HARDWALL_CREATE 1
|
||||
#define HARDWALL_CREATE(size) \
|
||||
_IOC(_IOC_READ, HARDWALL_IOCTL_BASE, _HARDWALL_CREATE, (size))
|
||||
|
||||
#define _HARDWALL_ACTIVATE 2
|
||||
#define HARDWALL_ACTIVATE \
|
||||
_IO(HARDWALL_IOCTL_BASE, _HARDWALL_ACTIVATE)
|
||||
|
||||
#define _HARDWALL_DEACTIVATE 3
|
||||
#define HARDWALL_DEACTIVATE \
|
||||
_IO(HARDWALL_IOCTL_BASE, _HARDWALL_DEACTIVATE)
|
||||
|
||||
#define _HARDWALL_GET_ID 4
|
||||
#define HARDWALL_GET_ID \
|
||||
_IO(HARDWALL_IOCTL_BASE, _HARDWALL_GET_ID)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/* /proc hooks for hardwall. */
|
||||
struct proc_dir_entry;
|
||||
#ifdef CONFIG_HARDWALL
|
||||
|
@ -56,6 +27,4 @@ int proc_pid_hardwall(struct task_struct *task, char *buffer);
|
|||
#else
|
||||
static inline void proc_tile_hardwall_init(struct proc_dir_entry *root) {}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_TILE_HARDWALL_H */
|
||||
|
|
|
@ -11,87 +11,21 @@
|
|||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_TILE_PTRACE_H
|
||||
#define _ASM_TILE_PTRACE_H
|
||||
|
||||
#include <arch/chip.h>
|
||||
#include <arch/abi.h>
|
||||
|
||||
/* These must match struct pt_regs, below. */
|
||||
#if CHIP_WORD_SIZE() == 32
|
||||
#define PTREGS_OFFSET_REG(n) ((n)*4)
|
||||
#else
|
||||
#define PTREGS_OFFSET_REG(n) ((n)*8)
|
||||
#endif
|
||||
#define PTREGS_OFFSET_BASE 0
|
||||
#define PTREGS_OFFSET_TP PTREGS_OFFSET_REG(53)
|
||||
#define PTREGS_OFFSET_SP PTREGS_OFFSET_REG(54)
|
||||
#define PTREGS_OFFSET_LR PTREGS_OFFSET_REG(55)
|
||||
#define PTREGS_NR_GPRS 56
|
||||
#define PTREGS_OFFSET_PC PTREGS_OFFSET_REG(56)
|
||||
#define PTREGS_OFFSET_EX1 PTREGS_OFFSET_REG(57)
|
||||
#define PTREGS_OFFSET_FAULTNUM PTREGS_OFFSET_REG(58)
|
||||
#define PTREGS_OFFSET_ORIG_R0 PTREGS_OFFSET_REG(59)
|
||||
#define PTREGS_OFFSET_FLAGS PTREGS_OFFSET_REG(60)
|
||||
#if CHIP_HAS_CMPEXCH()
|
||||
#define PTREGS_OFFSET_CMPEXCH PTREGS_OFFSET_REG(61)
|
||||
#endif
|
||||
#define PTREGS_SIZE PTREGS_OFFSET_REG(64)
|
||||
#include <linux/compiler.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/* Benefit from consistent use of "long" on all chips. */
|
||||
typedef unsigned long pt_reg_t;
|
||||
#else
|
||||
/* Provide appropriate length type to userspace regardless of -m32/-m64. */
|
||||
typedef uint_reg_t pt_reg_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This struct defines the way the registers are stored on the stack during a
|
||||
* system call or exception. "struct sigcontext" has the same shape.
|
||||
*/
|
||||
struct pt_regs {
|
||||
/* Saved main processor registers; 56..63 are special. */
|
||||
/* tp, sp, and lr must immediately follow regs[] for aliasing. */
|
||||
pt_reg_t regs[53];
|
||||
pt_reg_t tp; /* aliases regs[TREG_TP] */
|
||||
pt_reg_t sp; /* aliases regs[TREG_SP] */
|
||||
pt_reg_t lr; /* aliases regs[TREG_LR] */
|
||||
#include <uapi/asm/ptrace.h>
|
||||
|
||||
/* Saved special registers. */
|
||||
pt_reg_t pc; /* stored in EX_CONTEXT_K_0 */
|
||||
pt_reg_t ex1; /* stored in EX_CONTEXT_K_1 (PL and ICS bit) */
|
||||
pt_reg_t faultnum; /* fault number (INT_SWINT_1 for syscall) */
|
||||
pt_reg_t orig_r0; /* r0 at syscall entry, else zero */
|
||||
pt_reg_t flags; /* flags (see below) */
|
||||
#if !CHIP_HAS_CMPEXCH()
|
||||
pt_reg_t pad[3];
|
||||
#else
|
||||
pt_reg_t cmpexch; /* value of CMPEXCH_VALUE SPR at interrupt */
|
||||
pt_reg_t pad[2];
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#define PTRACE_GETREGS 12
|
||||
#define PTRACE_SETREGS 13
|
||||
#define PTRACE_GETFPREGS 14
|
||||
#define PTRACE_SETFPREGS 15
|
||||
|
||||
/* Support TILE-specific ptrace options, with events starting at 16. */
|
||||
#define PTRACE_O_TRACEMIGRATE 0x00010000
|
||||
#define PTRACE_EVENT_MIGRATE 16
|
||||
#ifdef __KERNEL__
|
||||
#define PTRACE_O_MASK_TILE (PTRACE_O_TRACEMIGRATE)
|
||||
#define PT_TRACE_MIGRATE 0x00080000
|
||||
#define PT_TRACE_MASK_TILE (PT_TRACE_MIGRATE)
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/* Flag bits in pt_regs.flags */
|
||||
#define PT_FLAGS_DISABLE_IRQ 1 /* on return to kernel, disable irqs */
|
||||
|
@ -159,6 +93,4 @@ extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs,
|
|||
#define SINGLESTEP_STATE_TARGET_LB 2
|
||||
#define SINGLESTEP_STATE_TARGET_UB 7
|
||||
|
||||
#endif /* !__KERNEL__ */
|
||||
|
||||
#endif /* _ASM_TILE_PTRACE_H */
|
||||
|
|
|
@ -11,16 +11,13 @@
|
|||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_TILE_SETUP_H
|
||||
#define _ASM_TILE_SETUP_H
|
||||
|
||||
#define COMMAND_LINE_SIZE 2048
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/pfn.h>
|
||||
#include <linux/init.h>
|
||||
#include <uapi/asm/setup.h>
|
||||
|
||||
/*
|
||||
* Reserved space for vmalloc and iomap - defined in asm/page.h
|
||||
|
@ -53,6 +50,4 @@ int hardwall_ipi_valid(int cpu);
|
|||
} while (0)
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _ASM_TILE_SETUP_H */
|
||||
|
|
|
@ -11,19 +11,11 @@
|
|||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_TILE_SIGNAL_H
|
||||
#define _ASM_TILE_SIGNAL_H
|
||||
|
||||
/* Do not notify a ptracer when this signal is handled. */
|
||||
#define SA_NOPTRACE 0x02000000u
|
||||
#include <uapi/asm/signal.h>
|
||||
|
||||
/* Used in earlier Tilera releases, so keeping for binary compatibility. */
|
||||
#define SA_RESTORER 0x04000000u
|
||||
|
||||
#include <asm-generic/signal.h>
|
||||
|
||||
#if defined(__KERNEL__)
|
||||
#if !defined(__ASSEMBLY__)
|
||||
struct pt_regs;
|
||||
int restore_sigcontext(struct pt_regs *, struct sigcontext __user *);
|
||||
|
@ -34,6 +26,4 @@ void signal_fault(const char *type, struct pt_regs *,
|
|||
void trace_unhandled_signal(const char *type, struct pt_regs *regs,
|
||||
unsigned long address, int signo);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_TILE_SIGNAL_H */
|
||||
|
|
|
@ -11,32 +11,9 @@
|
|||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#if !defined(__LP64__) || defined(__SYSCALL_COMPAT)
|
||||
/* Use the flavor of this syscall that matches the 32-bit API better. */
|
||||
#define __ARCH_WANT_SYNC_FILE_RANGE2
|
||||
#endif
|
||||
|
||||
/* Use the standard ABI for syscalls. */
|
||||
#include <asm-generic/unistd.h>
|
||||
|
||||
/* Additional Tilera-specific syscalls. */
|
||||
#define __NR_cacheflush (__NR_arch_specific_syscall + 1)
|
||||
__SYSCALL(__NR_cacheflush, sys_cacheflush)
|
||||
|
||||
#ifndef __tilegx__
|
||||
/* "Fast" syscalls provide atomic support for 32-bit chips. */
|
||||
#define __NR_FAST_cmpxchg -1
|
||||
#define __NR_FAST_atomic_update -2
|
||||
#define __NR_FAST_cmpxchg64 -3
|
||||
#define __NR_cmpxchg_badaddr (__NR_arch_specific_syscall + 0)
|
||||
__SYSCALL(__NR_cmpxchg_badaddr, sys_cmpxchg_badaddr)
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/* In compat mode, we use sys_llseek() for compat_sys_llseek(). */
|
||||
#ifdef CONFIG_COMPAT
|
||||
#define __ARCH_WANT_SYS_LLSEEK
|
||||
#endif
|
||||
#define __ARCH_WANT_SYS_NEWFSTATAT
|
||||
#endif
|
||||
#include <uapi/asm/unistd.h>
|
||||
|
|
|
@ -1 +1,18 @@
|
|||
# UAPI Header export list
|
||||
header-y += abi.h
|
||||
header-y += chip.h
|
||||
header-y += chip_tile64.h
|
||||
header-y += chip_tilegx.h
|
||||
header-y += chip_tilepro.h
|
||||
header-y += icache.h
|
||||
header-y += interrupts.h
|
||||
header-y += interrupts_32.h
|
||||
header-y += interrupts_64.h
|
||||
header-y += opcode.h
|
||||
header-y += opcode_tilegx.h
|
||||
header-y += opcode_tilepro.h
|
||||
header-y += sim.h
|
||||
header-y += sim_def.h
|
||||
header-y += spr_def.h
|
||||
header-y += spr_def_32.h
|
||||
header-y += spr_def_64.h
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Copyright 2010 Tilera Corporation. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, version 2.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI__ARCH_SPR_DEF_H__
|
||||
#define _UAPI__ARCH_SPR_DEF_H__
|
||||
|
||||
/* Include the proper base SPR definition file. */
|
||||
#ifdef __tilegx__
|
||||
#include <arch/spr_def_64.h>
|
||||
#else
|
||||
#include <arch/spr_def_32.h>
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _UAPI__ARCH_SPR_DEF_H__ */
|
|
@ -14,8 +14,8 @@
|
|||
|
||||
#ifndef __DOXYGEN__
|
||||
|
||||
#ifndef __ARCH_SPR_DEF_H__
|
||||
#define __ARCH_SPR_DEF_H__
|
||||
#ifndef __ARCH_SPR_DEF_32_H__
|
||||
#define __ARCH_SPR_DEF_32_H__
|
||||
|
||||
#define SPR_AUX_PERF_COUNT_0 0x6005
|
||||
#define SPR_AUX_PERF_COUNT_1 0x6006
|
||||
|
@ -252,6 +252,6 @@
|
|||
#define SPR_WATCH_MASK 0x420a
|
||||
#define SPR_WATCH_VAL 0x420b
|
||||
|
||||
#endif /* !defined(__ARCH_SPR_DEF_H__) */
|
||||
#endif /* !defined(__ARCH_SPR_DEF_32_H__) */
|
||||
|
||||
#endif /* !defined(__DOXYGEN__) */
|
|
@ -14,8 +14,8 @@
|
|||
|
||||
#ifndef __DOXYGEN__
|
||||
|
||||
#ifndef __ARCH_SPR_DEF_H__
|
||||
#define __ARCH_SPR_DEF_H__
|
||||
#ifndef __ARCH_SPR_DEF_64_H__
|
||||
#define __ARCH_SPR_DEF_64_H__
|
||||
|
||||
#define SPR_AUX_PERF_COUNT_0 0x2105
|
||||
#define SPR_AUX_PERF_COUNT_1 0x2106
|
||||
|
@ -211,6 +211,6 @@
|
|||
#define SPR_WATCH_MASK 0x200a
|
||||
#define SPR_WATCH_VAL 0x200b
|
||||
|
||||
#endif /* !defined(__ARCH_SPR_DEF_H__) */
|
||||
#endif /* !defined(__ARCH_SPR_DEF_64_H__) */
|
||||
|
||||
#endif /* !defined(__DOXYGEN__) */
|
|
@ -1,3 +1,18 @@
|
|||
# UAPI Header export list
|
||||
include include/uapi/asm-generic/Kbuild.asm
|
||||
|
||||
header-y += auxvec.h
|
||||
header-y += bitsperlong.h
|
||||
header-y += byteorder.h
|
||||
header-y += cachectl.h
|
||||
header-y += hardwall.h
|
||||
header-y += kvm_para.h
|
||||
header-y += mman.h
|
||||
header-y += ptrace.h
|
||||
header-y += setup.h
|
||||
header-y += sigcontext.h
|
||||
header-y += siginfo.h
|
||||
header-y += signal.h
|
||||
header-y += stat.h
|
||||
header-y += swab.h
|
||||
header-y += unistd.h
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* Copyright 2010 Tilera Corporation. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, version 2.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* Provide methods for access control of per-cpu resources like
|
||||
* UDN, IDN, or IPI.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_ASM_TILE_HARDWALL_H
|
||||
#define _UAPI_ASM_TILE_HARDWALL_H
|
||||
|
||||
#include <arch/chip.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define HARDWALL_IOCTL_BASE 0xa2
|
||||
|
||||
/*
|
||||
* The HARDWALL_CREATE() ioctl is a macro with a "size" argument.
|
||||
* The resulting ioctl value is passed to the kernel in conjunction
|
||||
* with a pointer to a standard kernel bitmask of cpus.
|
||||
* For network resources (UDN or IDN) the bitmask must physically
|
||||
* represent a rectangular configuration on the chip.
|
||||
* The "size" is the number of bytes of cpu mask data.
|
||||
*/
|
||||
#define _HARDWALL_CREATE 1
|
||||
#define HARDWALL_CREATE(size) \
|
||||
_IOC(_IOC_READ, HARDWALL_IOCTL_BASE, _HARDWALL_CREATE, (size))
|
||||
|
||||
#define _HARDWALL_ACTIVATE 2
|
||||
#define HARDWALL_ACTIVATE \
|
||||
_IO(HARDWALL_IOCTL_BASE, _HARDWALL_ACTIVATE)
|
||||
|
||||
#define _HARDWALL_DEACTIVATE 3
|
||||
#define HARDWALL_DEACTIVATE \
|
||||
_IO(HARDWALL_IOCTL_BASE, _HARDWALL_DEACTIVATE)
|
||||
|
||||
#define _HARDWALL_GET_ID 4
|
||||
#define HARDWALL_GET_ID \
|
||||
_IO(HARDWALL_IOCTL_BASE, _HARDWALL_GET_ID)
|
||||
|
||||
|
||||
#endif /* _UAPI_ASM_TILE_HARDWALL_H */
|
|
@ -0,0 +1,88 @@
|
|||
/*
|
||||
* Copyright 2010 Tilera Corporation. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, version 2.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_ASM_TILE_PTRACE_H
|
||||
#define _UAPI_ASM_TILE_PTRACE_H
|
||||
|
||||
#include <arch/chip.h>
|
||||
#include <arch/abi.h>
|
||||
|
||||
/* These must match struct pt_regs, below. */
|
||||
#if CHIP_WORD_SIZE() == 32
|
||||
#define PTREGS_OFFSET_REG(n) ((n)*4)
|
||||
#else
|
||||
#define PTREGS_OFFSET_REG(n) ((n)*8)
|
||||
#endif
|
||||
#define PTREGS_OFFSET_BASE 0
|
||||
#define PTREGS_OFFSET_TP PTREGS_OFFSET_REG(53)
|
||||
#define PTREGS_OFFSET_SP PTREGS_OFFSET_REG(54)
|
||||
#define PTREGS_OFFSET_LR PTREGS_OFFSET_REG(55)
|
||||
#define PTREGS_NR_GPRS 56
|
||||
#define PTREGS_OFFSET_PC PTREGS_OFFSET_REG(56)
|
||||
#define PTREGS_OFFSET_EX1 PTREGS_OFFSET_REG(57)
|
||||
#define PTREGS_OFFSET_FAULTNUM PTREGS_OFFSET_REG(58)
|
||||
#define PTREGS_OFFSET_ORIG_R0 PTREGS_OFFSET_REG(59)
|
||||
#define PTREGS_OFFSET_FLAGS PTREGS_OFFSET_REG(60)
|
||||
#if CHIP_HAS_CMPEXCH()
|
||||
#define PTREGS_OFFSET_CMPEXCH PTREGS_OFFSET_REG(61)
|
||||
#endif
|
||||
#define PTREGS_SIZE PTREGS_OFFSET_REG(64)
|
||||
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#ifndef __KERNEL__
|
||||
/* Provide appropriate length type to userspace regardless of -m32/-m64. */
|
||||
typedef uint_reg_t pt_reg_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This struct defines the way the registers are stored on the stack during a
|
||||
* system call or exception. "struct sigcontext" has the same shape.
|
||||
*/
|
||||
struct pt_regs {
|
||||
/* Saved main processor registers; 56..63 are special. */
|
||||
/* tp, sp, and lr must immediately follow regs[] for aliasing. */
|
||||
pt_reg_t regs[53];
|
||||
pt_reg_t tp; /* aliases regs[TREG_TP] */
|
||||
pt_reg_t sp; /* aliases regs[TREG_SP] */
|
||||
pt_reg_t lr; /* aliases regs[TREG_LR] */
|
||||
|
||||
/* Saved special registers. */
|
||||
pt_reg_t pc; /* stored in EX_CONTEXT_K_0 */
|
||||
pt_reg_t ex1; /* stored in EX_CONTEXT_K_1 (PL and ICS bit) */
|
||||
pt_reg_t faultnum; /* fault number (INT_SWINT_1 for syscall) */
|
||||
pt_reg_t orig_r0; /* r0 at syscall entry, else zero */
|
||||
pt_reg_t flags; /* flags (see below) */
|
||||
#if !CHIP_HAS_CMPEXCH()
|
||||
pt_reg_t pad[3];
|
||||
#else
|
||||
pt_reg_t cmpexch; /* value of CMPEXCH_VALUE SPR at interrupt */
|
||||
pt_reg_t pad[2];
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#define PTRACE_GETREGS 12
|
||||
#define PTRACE_SETREGS 13
|
||||
#define PTRACE_GETFPREGS 14
|
||||
#define PTRACE_SETFPREGS 15
|
||||
|
||||
/* Support TILE-specific ptrace options, with events starting at 16. */
|
||||
#define PTRACE_O_TRACEMIGRATE 0x00010000
|
||||
#define PTRACE_EVENT_MIGRATE 16
|
||||
|
||||
|
||||
#endif /* _UAPI_ASM_TILE_PTRACE_H */
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* Copyright 2010 Tilera Corporation. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, version 2.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_ASM_TILE_SETUP_H
|
||||
#define _UAPI_ASM_TILE_SETUP_H
|
||||
|
||||
#define COMMAND_LINE_SIZE 2048
|
||||
|
||||
|
||||
#endif /* _UAPI_ASM_TILE_SETUP_H */
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Copyright 2010 Tilera Corporation. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, version 2.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_ASM_TILE_SIGNAL_H
|
||||
#define _UAPI_ASM_TILE_SIGNAL_H
|
||||
|
||||
/* Do not notify a ptracer when this signal is handled. */
|
||||
#define SA_NOPTRACE 0x02000000u
|
||||
|
||||
/* Used in earlier Tilera releases, so keeping for binary compatibility. */
|
||||
#define SA_RESTORER 0x04000000u
|
||||
|
||||
#include <asm-generic/signal.h>
|
||||
|
||||
|
||||
#endif /* _UAPI_ASM_TILE_SIGNAL_H */
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright 2010 Tilera Corporation. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, version 2.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#if !defined(__LP64__) || defined(__SYSCALL_COMPAT)
|
||||
/* Use the flavor of this syscall that matches the 32-bit API better. */
|
||||
#define __ARCH_WANT_SYNC_FILE_RANGE2
|
||||
#endif
|
||||
|
||||
/* Use the standard ABI for syscalls. */
|
||||
#include <asm-generic/unistd.h>
|
||||
|
||||
/* Additional Tilera-specific syscalls. */
|
||||
#define __NR_cacheflush (__NR_arch_specific_syscall + 1)
|
||||
__SYSCALL(__NR_cacheflush, sys_cacheflush)
|
||||
|
||||
#ifndef __tilegx__
|
||||
/* "Fast" syscalls provide atomic support for 32-bit chips. */
|
||||
#define __NR_FAST_cmpxchg -1
|
||||
#define __NR_FAST_atomic_update -2
|
||||
#define __NR_FAST_cmpxchg64 -3
|
||||
#define __NR_cmpxchg_badaddr (__NR_arch_specific_syscall + 0)
|
||||
__SYSCALL(__NR_cmpxchg_badaddr, sys_cmpxchg_badaddr)
|
||||
#endif
|
Загрузка…
Ссылка в новой задаче