linux_old1/arch/mips/include/uapi/asm
Alex Smith ebb5e78cc6 MIPS: Initial implementation of a VDSO
Add an initial implementation of a proper (i.e. an ELF shared library)
VDSO. With this commit it does not export any symbols, it only replaces
the current signal return trampoline page. A later commit will add user
implementations of gettimeofday()/clock_gettime().

To support both new toolchains and old ones which don't generate ABI
flags section, we define its content manually and then use a tool
(genvdso) to patch up the section to have the correct name and type.
genvdso also extracts symbol offsets ({,rt_}sigreturn) needed by the
kernel, and generates a C file containing a "struct mips_vdso_image"
containing both the VDSO data and these offsets. This C file is
compiled into the kernel.

On 64-bit kernels we require a different VDSO for each supported ABI,
so we may build up to 3 different VDSOs. The VDSO to use is selected by
the mips_abi structure.

A kernel/user shared data page is created and mapped below the VDSO
image. This is currently empty, but will be used by the user time
function implementations which are added later.

[markos.chandras@imgtec.com:
- Add more comments
- Move abi detection in genvdso.h since it's the get_symbol function
that needs it.
- Add an R6 specific way to calculate the base address of VDSO in order
to avoid the branch instruction which affects performance.
- Do not patch .gnu.attributes since it's not needed for dynamic linking.
- Simplify Makefile a little bit.
- checkpatch fixes
- Restrict VDSO support for binutils < 2.25 for pre-R6
- Include atomic64.h for O32 variant on MIPS64]

Signed-off-by: Alex Smith <alex.smith@imgtec.com>
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: Matthew Fortune <matthew.fortune@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/11337/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2015-11-11 08:36:36 +01:00
..
Kbuild MIPS: Initial implementation of a VDSO 2015-11-11 08:36:36 +01:00
auxvec.h MIPS: Initial implementation of a VDSO 2015-11-11 08:36:36 +01:00
bitfield.h MIPS: Move definition of __BITFIELD_FIELD to sharable header. 2014-05-21 11:12:45 +02:00
bitsperlong.h
break.h MIPS: Add uprobes support. 2015-09-03 12:08:05 +02:00
byteorder.h
cachectl.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
errno.h errno.h: remove "NFS" from descriptions in comments 2013-11-13 12:09:12 +09:00
fcntl.h Merge branch '3.10-fixes' into mips-for-linux-next 2013-07-12 18:11:43 +02:00
hwcap.h MIPS: AT_HWCAP aux vector infrastructure 2015-09-03 12:07:59 +02:00
inst.h MIPS: inst.h: Add new MIPS R6 FPU opcodes 2015-09-03 12:08:12 +02:00
ioctl.h
ioctls.h mips/uapi: Add definition of TIOC[SG]RS485 2014-09-10 09:28:13 -07:00
kvm.h MIPS: KVM: Expose MSA registers 2015-03-27 21:25:21 +00:00
kvm_para.h MIPS: Add functions for hypervisor call 2014-05-30 21:01:11 +02:00
mman.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
msgbuf.h MIPS: <uapi/asm/msgbuf.h>: Don't reference CONFIG_* symbols. 2013-06-18 16:28:16 +02:00
param.h
poll.h
posix_types.h
ptrace.h MIPS: ptrace.h: Add a missing include 2014-10-23 13:23:08 +02:00
reg.h MIPS: asm/reg.h: Move to uapi 2014-08-02 00:06:38 +02:00
resource.h MIPS: <uapi/asm/resource.h: Don't reference CONFIG_* symbols. 2013-06-18 16:28:15 +02:00
sembuf.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
setup.h
sgidefs.h
shmbuf.h
sigcontext.h MIPS: Add definitions for extended context 2015-09-03 12:07:58 +02:00
siginfo.h MIPS: Provide correct siginfo_t.si_stime 2015-02-19 13:47:46 +01:00
signal.h MIPS: Delete definition of SA_RESTORER. 2013-04-05 15:10:51 +02:00
socket.h net: sock: allow eBPF programs to be attached to sockets 2014-12-05 21:47:32 -08:00
sockios.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
stat.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
statfs.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
swab.h MIPS: UAPI: Ignore __arch_swab{16,32,64} when using MIPS16 2015-10-05 11:30:23 +02:00
sysmips.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
termbits.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
termios.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
types.h MIPS: Add __SANE_USERSPACE_TYPES__ to asm/types.h for LL64 2014-05-28 10:51:13 +02:00
ucontext.h MIPS: Add definitions for extended context 2015-09-03 12:07:58 +02:00
unistd.h MIPS: Wire up userfaultfd and membarrier syscalls. 2015-09-30 14:24:31 +02:00