Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Copyright (C) 2015 Imagination Technologies
0004  * Author: Alex Smith <alex.smith@imgtec.com>
0005  */
0006 
0007 #ifndef __ASM_VDSO_H
0008 #define __ASM_VDSO_H
0009 
0010 #include <linux/mm_types.h>
0011 #include <vdso/datapage.h>
0012 
0013 #include <asm/barrier.h>
0014 
0015 /**
0016  * struct mips_vdso_image - Details of a VDSO image.
0017  * @data: Pointer to VDSO image data (page-aligned).
0018  * @size: Size of the VDSO image data (page-aligned).
0019  * @off_sigreturn: Offset of the sigreturn() trampoline.
0020  * @off_rt_sigreturn: Offset of the rt_sigreturn() trampoline.
0021  * @mapping: Special mapping structure.
0022  *
0023  * This structure contains details of a VDSO image, including the image data
0024  * and offsets of certain symbols required by the kernel. It is generated as
0025  * part of the VDSO build process, aside from the mapping page array, which is
0026  * populated at runtime.
0027  */
0028 struct mips_vdso_image {
0029     void *data;
0030     unsigned long size;
0031 
0032     unsigned long off_sigreturn;
0033     unsigned long off_rt_sigreturn;
0034 
0035     struct vm_special_mapping mapping;
0036 };
0037 
0038 /*
0039  * The following structures are auto-generated as part of the build for each
0040  * ABI by genvdso, see arch/mips/vdso/Makefile.
0041  */
0042 
0043 extern struct mips_vdso_image vdso_image;
0044 
0045 #ifdef CONFIG_MIPS32_O32
0046 extern struct mips_vdso_image vdso_image_o32;
0047 #endif
0048 
0049 #ifdef CONFIG_MIPS32_N32
0050 extern struct mips_vdso_image vdso_image_n32;
0051 #endif
0052 
0053 union mips_vdso_data {
0054     struct vdso_data data[CS_BASES];
0055     u8 page[PAGE_SIZE];
0056 };
0057 
0058 #endif /* __ASM_VDSO_H */