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
 |