mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-01 00:58:39 +02:00 
			
		
		
		
	 2130a790ca
			
		
	
	
		2130a790ca
		
	
	
	
	
		
			
			Add a simple infrastructure for setting, resetting and querying platform feature flags. Flags can be either global or architecture specific. Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com> Tested-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com> # Arm64 only Reviewed-by: Christoph Hellwig <hch@lst.de> Acked-by: Borislav Petkov <bp@suse.de> Signed-off-by: Juergen Gross <jgross@suse.com>
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			654 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			654 B
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0
 | |
| 
 | |
| #include <linux/bitops.h>
 | |
| #include <linux/cache.h>
 | |
| #include <linux/export.h>
 | |
| #include <linux/platform-feature.h>
 | |
| 
 | |
| #define PLATFORM_FEAT_ARRAY_SZ  BITS_TO_LONGS(PLATFORM_FEAT_N)
 | |
| static unsigned long __read_mostly platform_features[PLATFORM_FEAT_ARRAY_SZ];
 | |
| 
 | |
| void platform_set(unsigned int feature)
 | |
| {
 | |
| 	set_bit(feature, platform_features);
 | |
| }
 | |
| EXPORT_SYMBOL_GPL(platform_set);
 | |
| 
 | |
| void platform_clear(unsigned int feature)
 | |
| {
 | |
| 	clear_bit(feature, platform_features);
 | |
| }
 | |
| EXPORT_SYMBOL_GPL(platform_clear);
 | |
| 
 | |
| bool platform_has(unsigned int feature)
 | |
| {
 | |
| 	return test_bit(feature, platform_features);
 | |
| }
 | |
| EXPORT_SYMBOL_GPL(platform_has);
 |