46 lines
		
	
	
		
			916 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			916 B
		
	
	
	
		
			C
		
	
	
	
| #include "tests.h"
 | |
| 
 | |
| #ifdef HAVE_LINUX_FIEMAP_H
 | |
| 
 | |
| # include <stdio.h>
 | |
| # include <sys/ioctl.h>
 | |
| # include <linux/fiemap.h>
 | |
| # include <linux/fs.h>
 | |
| # include "xlat.h"
 | |
| # include "xlat/fiemap_flags.h"
 | |
| 
 | |
| static void
 | |
| test_fiemap(void)
 | |
| {
 | |
| 	(void) tail_alloc(1);
 | |
| 	TAIL_ALLOC_OBJECT_CONST_PTR(struct fiemap, args);
 | |
| 
 | |
| 	printf("ioctl(-1, FS_IOC_FIEMAP, {fm_start=%" PRI__u64
 | |
| 	       ", fm_length=%" PRI__u64", fm_flags=",
 | |
| 	       args->fm_start, args->fm_length);
 | |
| 	printflags(fiemap_flags, args->fm_flags, "FIEMAP_FLAG_???");
 | |
| 	printf(", fm_extent_count=%u})", args->fm_extent_count);
 | |
| 	ioctl(-1, FS_IOC_FIEMAP, args);
 | |
| 	printf(" = -1 EBADF (%m)\n");
 | |
| 
 | |
| 	/* The live version of this test is in btrfs.c */
 | |
| }
 | |
| 
 | |
| /* clone and dedupe ioctls are in btrfs.c since they originated there */
 | |
| 
 | |
| int
 | |
| main(int argc, char *argv[])
 | |
| {
 | |
| 	test_fiemap();
 | |
| 
 | |
| 	puts("+++ exited with 0 +++");
 | |
| 
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| #else
 | |
| 
 | |
| SKIP_MAIN_UNDEFINED("HAVE_LINUX_FIEMAP_H")
 | |
| 
 | |
| #endif
 |