forked from mirrors/linux
		
	 ad3d6c7263
			
		
	
	
		ad3d6c7263
		
	
	
	
	
		
			
			The xa_load function brings with it a lot of infrastructure; xa_empty(), xa_is_err(), and large chunks of the XArray advanced API that are used to implement xa_load. As the test-suite demonstrates, it is possible to use the XArray functions on a radix tree. The radix tree functions depend on the GFP flags being stored in the root of the tree, so it's not possible to use the radix tree functions on an XArray. Signed-off-by: Matthew Wilcox <willy@infradead.org>
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			651 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			651 B
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0+
 | |
| /*
 | |
|  * xarray.c: Userspace shim for XArray test-suite
 | |
|  * Copyright (c) 2018 Matthew Wilcox <willy@infradead.org>
 | |
|  */
 | |
| 
 | |
| #define XA_DEBUG
 | |
| #include "test.h"
 | |
| 
 | |
| #define module_init(x)
 | |
| #define module_exit(x)
 | |
| #define MODULE_AUTHOR(x)
 | |
| #define MODULE_LICENSE(x)
 | |
| #define dump_stack()	assert(0)
 | |
| 
 | |
| #include "../../../lib/xarray.c"
 | |
| #undef XA_DEBUG
 | |
| #include "../../../lib/test_xarray.c"
 | |
| 
 | |
| void xarray_tests(void)
 | |
| {
 | |
| 	xarray_checks();
 | |
| 	xarray_exit();
 | |
| }
 | |
| 
 | |
| int __weak main(void)
 | |
| {
 | |
| 	radix_tree_init();
 | |
| 	xarray_tests();
 | |
| 	radix_tree_cpu_dead(1);
 | |
| 	rcu_barrier();
 | |
| 	if (nr_allocated)
 | |
| 		printf("nr_allocated = %d\n", nr_allocated);
 | |
| 	return 0;
 | |
| }
 |