| /* | 
 |  * Copyright (C) 2015 Imagination Technologies | 
 |  * Author: Alex Smith <alex.smith@imgtec.com> | 
 |  * | 
 |  * This program is free software; you can redistribute it and/or modify it | 
 |  * under the terms of the GNU General Public License as published by the | 
 |  * Free Software Foundation;  either version 2 of the  License, or (at your | 
 |  * option) any later version. | 
 |  */ | 
 |  | 
 | #include "vdso.h" | 
 |  | 
 | #include <linux/elfnote.h> | 
 | #include <linux/version.h> | 
 |  | 
 | ELFNOTE_START(Linux, 0, "a") | 
 | 	.long LINUX_VERSION_CODE | 
 | ELFNOTE_END | 
 |  | 
 | /* | 
 |  * The .MIPS.abiflags section must be defined with the FP ABI flags set | 
 |  * to 'any' to be able to link with both old and new libraries. | 
 |  * Newer toolchains are capable of automatically generating this, but we want | 
 |  * to work with older toolchains as well. Therefore, we define the contents of | 
 |  * this section here (under different names), and then genvdso will patch | 
 |  * it to have the correct name and type. | 
 |  * | 
 |  * We base the .MIPS.abiflags section on preprocessor definitions rather than | 
 |  * CONFIG_* because we need to match the particular ABI we are building the | 
 |  * VDSO for. | 
 |  * | 
 |  * See https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking | 
 |  * for the .MIPS.abiflags section description. | 
 |  */ | 
 |  | 
 | 	.section .mips_abiflags, "a" | 
 | 	.align 3 | 
 | __mips_abiflags: | 
 | 	.hword	0		/* version */ | 
 | 	.byte	__mips		/* isa_level */ | 
 |  | 
 | 	/* isa_rev */ | 
 | #ifdef __mips_isa_rev | 
 | 	.byte	__mips_isa_rev | 
 | #else | 
 | 	.byte	0 | 
 | #endif | 
 |  | 
 | 	/* gpr_size */ | 
 | #ifdef __mips64 | 
 | 	.byte	2		/* AFL_REG_64 */ | 
 | #else | 
 | 	.byte	1		/* AFL_REG_32 */ | 
 | #endif | 
 |  | 
 | 	/* cpr1_size */ | 
 | #if (defined(__mips_isa_rev) && __mips_isa_rev >= 6) || defined(__mips64) | 
 | 	.byte	2		/* AFL_REG_64 */ | 
 | #else | 
 | 	.byte	1		/* AFL_REG_32 */ | 
 | #endif | 
 |  | 
 | 	.byte	0		/* cpr2_size (AFL_REG_NONE) */ | 
 | 	.byte	0		/* fp_abi (Val_GNU_MIPS_ABI_FP_ANY) */ | 
 | 	.word	0		/* isa_ext */ | 
 | 	.word	0		/* ases */ | 
 | 	.word	0		/* flags1 */ | 
 | 	.word	0		/* flags2 */ |