linux/arch/x86/include/asm/vdso.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _ASM_X86_VDSO_H
   3#define _ASM_X86_VDSO_H
   4
   5#include <asm/page_types.h>
   6#include <linux/linkage.h>
   7#include <linux/init.h>
   8
   9#ifndef __ASSEMBLER__
  10
  11#include <linux/mm_types.h>
  12
  13struct vdso_image {
  14        void *data;
  15        unsigned long size;   /* Always a multiple of PAGE_SIZE */
  16
  17        unsigned long alt, alt_len;
  18        unsigned long extable_base, extable_len;
  19        const void *extable;
  20
  21        long sym_vvar_start;  /* Negative offset to the vvar area */
  22
  23        long sym_vvar_page;
  24        long sym_pvclock_page;
  25        long sym_hvclock_page;
  26        long sym_timens_page;
  27        long sym_VDSO32_NOTE_MASK;
  28        long sym___kernel_sigreturn;
  29        long sym___kernel_rt_sigreturn;
  30        long sym___kernel_vsyscall;
  31        long sym_int80_landing_pad;
  32        long sym_vdso32_sigreturn_landing_pad;
  33        long sym_vdso32_rt_sigreturn_landing_pad;
  34};
  35
  36#ifdef CONFIG_X86_64
  37extern const struct vdso_image vdso_image_64;
  38#endif
  39
  40#ifdef CONFIG_X86_X32_ABI
  41extern const struct vdso_image vdso_image_x32;
  42#endif
  43
  44#if defined CONFIG_X86_32 || defined CONFIG_COMPAT
  45extern const struct vdso_image vdso_image_32;
  46#endif
  47
  48extern void __init init_vdso_image(const struct vdso_image *image);
  49
  50extern int map_vdso_once(const struct vdso_image *image, unsigned long addr);
  51
  52extern bool fixup_vdso_exception(struct pt_regs *regs, int trapnr,
  53                                 unsigned long error_code,
  54                                 unsigned long fault_addr);
  55#endif /* __ASSEMBLER__ */
  56
  57#endif /* _ASM_X86_VDSO_H */
  58