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
  19        long sym_vvar_start;  /* Negative offset to the vvar area */
  20
  21        long sym_vvar_page;
  22        long sym_hpet_page;
  23        long sym_pvclock_page;
  24        long sym_hvclock_page;
  25        long sym_VDSO32_NOTE_MASK;
  26        long sym___kernel_sigreturn;
  27        long sym___kernel_rt_sigreturn;
  28        long sym___kernel_vsyscall;
  29        long sym_int80_landing_pad;
  30};
  31
  32#ifdef CONFIG_X86_64
  33extern const struct vdso_image vdso_image_64;
  34#endif
  35
  36#ifdef CONFIG_X86_X32
  37extern const struct vdso_image vdso_image_x32;
  38#endif
  39
  40#if defined CONFIG_X86_32 || defined CONFIG_COMPAT
  41extern const struct vdso_image vdso_image_32;
  42#endif
  43
  44extern void __init init_vdso_image(const struct vdso_image *image);
  45
  46extern int map_vdso_once(const struct vdso_image *image, unsigned long addr);
  47
  48#endif /* __ASSEMBLER__ */
  49
  50#endif /* _ASM_X86_VDSO_H */
  51