vdso.h (1469B)
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* 3 * Copyright (C) 2015 Imagination Technologies 4 * Author: Alex Smith <alex.smith@imgtec.com> 5 */ 6 7#ifndef __ASM_VDSO_H 8#define __ASM_VDSO_H 9 10#include <linux/mm_types.h> 11#include <vdso/datapage.h> 12 13#include <asm/barrier.h> 14 15/** 16 * struct mips_vdso_image - Details of a VDSO image. 17 * @data: Pointer to VDSO image data (page-aligned). 18 * @size: Size of the VDSO image data (page-aligned). 19 * @off_sigreturn: Offset of the sigreturn() trampoline. 20 * @off_rt_sigreturn: Offset of the rt_sigreturn() trampoline. 21 * @mapping: Special mapping structure. 22 * 23 * This structure contains details of a VDSO image, including the image data 24 * and offsets of certain symbols required by the kernel. It is generated as 25 * part of the VDSO build process, aside from the mapping page array, which is 26 * populated at runtime. 27 */ 28struct mips_vdso_image { 29 void *data; 30 unsigned long size; 31 32 unsigned long off_sigreturn; 33 unsigned long off_rt_sigreturn; 34 35 struct vm_special_mapping mapping; 36}; 37 38/* 39 * The following structures are auto-generated as part of the build for each 40 * ABI by genvdso, see arch/mips/vdso/Makefile. 41 */ 42 43extern struct mips_vdso_image vdso_image; 44 45#ifdef CONFIG_MIPS32_O32 46extern struct mips_vdso_image vdso_image_o32; 47#endif 48 49#ifdef CONFIG_MIPS32_N32 50extern struct mips_vdso_image vdso_image_n32; 51#endif 52 53union mips_vdso_data { 54 struct vdso_data data[CS_BASES]; 55 u8 page[PAGE_SIZE]; 56}; 57 58#endif /* __ASM_VDSO_H */