forked from mirrors/linux
		
	to verify the source of the module (ChromeOS) and/or use standard IMA on it or other security hooks. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJQ0VKlAAoJENkgDmzRrbjxjuEQALVHpD1cSmryOzVwkNn7rVGP PV3KVbUs+qzUCm2c3AafIIlSBm2LOUl+cR3uNC7di8aHarRF3VHkK2OQ4Fx97ECd KKBqAyY3R0q1mAKujb/MWwiK0YgosEDIOzGGn2yQhNFsxKqnMB02P4j82IO7+g+w Cc3XuDyWHoH2I+ySgz0Q8NHAqufD/DMZUKud7jw2Lsv6PuICJ1Oqgl/Gd/muxort 4a5tV3tjhRGywHS/8b2fbDUXkybC5NKK0FN+gyoaROmJ/THeHEQDGXZT9bc2vmVx HvRy/5k8dzQ6LAJ2mLnPvy0pmv0u7NYMvjxTxxUlUkFMkYuVticikQfwSYDbDPt4 mbsLxchpgi8z4x8HltEERffCX5tldo/5hz1uemqhqIsMRIrRFnlHkSIgkGjVHf2u LXQBLT8uTm6C0VyNQPrI/hUZzIax7WtKbPSoK9lmExNbKqloEFh/mVXvfQxei2kp wnUZcnmPIqSvw7b4CWu7HibMYu2VvGBgm3YIfJRi4AQme1mzFYLpZoxF5Pj+Ykbt T//Hb1EsNQTTFCg7MZhnJSAw/EVUvNDUoullORClyqw6+xxjVKqWpPJgYDRfWOlJ Xa+s7DNrL+Oo1WWR8l5ruoQszbR8szIyeyPKKxRUcQj2zsqghoWuzKAx2saSEw3W pNkoJU+dGC7kG/yVAS8N =uoJj -----END PGP SIGNATURE----- Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux Pull module update from Rusty Russell: "Nothing all that exciting; a new module-from-fd syscall for those who want to verify the source of the module (ChromeOS) and/or use standard IMA on it or other security hooks." * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: MODSIGN: Fix kbuild output when using default extra_certificates MODSIGN: Avoid using .incbin in C source modules: don't hand 0 to vmalloc. module: Remove a extra null character at the top of module->strtab. ASN.1: Use the ASN1_LONG_TAG and ASN1_INDEFINITE_LENGTH constants ASN.1: Define indefinite length marker constant moduleparam: use __UNIQUE_ID() __UNIQUE_ID() MODSIGN: Add modules_sign make target powerpc: add finit_module syscall. ima: support new kernel module syscall add finit_module syscall to asm-generic ARM: add finit_module syscall to ARM security: introduce kernel_module_from_file hook module: add flags arg to sys_finit_module() module: add syscall to load module from fd
		
			
				
	
	
		
			77 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef __LINUX_COMPILER_H
 | 
						|
#error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead."
 | 
						|
#endif
 | 
						|
 | 
						|
/* GCC 4.1.[01] miscompiles __weak */
 | 
						|
#ifdef __KERNEL__
 | 
						|
# if __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ <= 1
 | 
						|
#  error Your version of gcc miscompiles the __weak directive
 | 
						|
# endif
 | 
						|
#endif
 | 
						|
 | 
						|
#define __used			__attribute__((__used__))
 | 
						|
#define __must_check 		__attribute__((warn_unused_result))
 | 
						|
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
 | 
						|
 | 
						|
#if __GNUC_MINOR__ >= 3
 | 
						|
/* Mark functions as cold. gcc will assume any path leading to a call
 | 
						|
   to them will be unlikely.  This means a lot of manual unlikely()s
 | 
						|
   are unnecessary now for any paths leading to the usual suspects
 | 
						|
   like BUG(), printk(), panic() etc. [but let's keep them for now for
 | 
						|
   older compilers]
 | 
						|
 | 
						|
   Early snapshots of gcc 4.3 don't support this and we can't detect this
 | 
						|
   in the preprocessor, but we can live with this because they're unreleased.
 | 
						|
   Maketime probing would be overkill here.
 | 
						|
 | 
						|
   gcc also has a __attribute__((__hot__)) to move hot functions into
 | 
						|
   a special section, but I don't see any sense in this right now in
 | 
						|
   the kernel context */
 | 
						|
#define __cold			__attribute__((__cold__))
 | 
						|
 | 
						|
#define __linktime_error(message) __attribute__((__error__(message)))
 | 
						|
 | 
						|
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
 | 
						|
 | 
						|
#if __GNUC_MINOR__ >= 5
 | 
						|
/*
 | 
						|
 * Mark a position in code as unreachable.  This can be used to
 | 
						|
 * suppress control flow warnings after asm blocks that transfer
 | 
						|
 * control elsewhere.
 | 
						|
 *
 | 
						|
 * Early snapshots of gcc 4.5 don't support this and we can't detect
 | 
						|
 * this in the preprocessor, but we can live with this because they're
 | 
						|
 * unreleased.  Really, we need to have autoconf for the kernel.
 | 
						|
 */
 | 
						|
#define unreachable() __builtin_unreachable()
 | 
						|
 | 
						|
/* Mark a function definition as prohibited from being cloned. */
 | 
						|
#define __noclone	__attribute__((__noclone__))
 | 
						|
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
 | 
						|
#if __GNUC_MINOR__ >= 6
 | 
						|
/*
 | 
						|
 * Tell the optimizer that something else uses this function or variable.
 | 
						|
 */
 | 
						|
#define __visible __attribute__((externally_visible))
 | 
						|
#endif
 | 
						|
 | 
						|
#if __GNUC_MINOR__ > 0
 | 
						|
#define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
 | 
						|
#endif
 | 
						|
#if __GNUC_MINOR__ >= 3 && !defined(__CHECKER__)
 | 
						|
#define __compiletime_warning(message) __attribute__((warning(message)))
 | 
						|
#define __compiletime_error(message) __attribute__((error(message)))
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
 | 
						|
#if __GNUC_MINOR__ >= 4
 | 
						|
#define __HAVE_BUILTIN_BSWAP32__
 | 
						|
#define __HAVE_BUILTIN_BSWAP64__
 | 
						|
#endif
 | 
						|
#if __GNUC_MINOR__ >= 8 || (defined(__powerpc__) && __GNUC_MINOR__ >= 6)
 | 
						|
#define __HAVE_BUILTIN_BSWAP16__
 | 
						|
#endif
 | 
						|
#endif
 |