1*cf84ac9aSAndroid Build Coastguard Worker #include "tests.h"
2*cf84ac9aSAndroid Build Coastguard Worker
3*cf84ac9aSAndroid Build Coastguard Worker #ifdef HAVE_LINUX_FIEMAP_H
4*cf84ac9aSAndroid Build Coastguard Worker
5*cf84ac9aSAndroid Build Coastguard Worker # include <stdio.h>
6*cf84ac9aSAndroid Build Coastguard Worker # include <sys/ioctl.h>
7*cf84ac9aSAndroid Build Coastguard Worker # include <linux/fiemap.h>
8*cf84ac9aSAndroid Build Coastguard Worker # include <linux/fs.h>
9*cf84ac9aSAndroid Build Coastguard Worker # include "xlat.h"
10*cf84ac9aSAndroid Build Coastguard Worker # include "xlat/fiemap_flags.h"
11*cf84ac9aSAndroid Build Coastguard Worker
12*cf84ac9aSAndroid Build Coastguard Worker static void
test_fiemap(void)13*cf84ac9aSAndroid Build Coastguard Worker test_fiemap(void)
14*cf84ac9aSAndroid Build Coastguard Worker {
15*cf84ac9aSAndroid Build Coastguard Worker (void) tail_alloc(1);
16*cf84ac9aSAndroid Build Coastguard Worker TAIL_ALLOC_OBJECT_CONST_PTR(struct fiemap, args);
17*cf84ac9aSAndroid Build Coastguard Worker
18*cf84ac9aSAndroid Build Coastguard Worker printf("ioctl(-1, FS_IOC_FIEMAP, {fm_start=%" PRI__u64
19*cf84ac9aSAndroid Build Coastguard Worker ", fm_length=%" PRI__u64", fm_flags=",
20*cf84ac9aSAndroid Build Coastguard Worker args->fm_start, args->fm_length);
21*cf84ac9aSAndroid Build Coastguard Worker printflags(fiemap_flags, args->fm_flags, "FIEMAP_FLAG_???");
22*cf84ac9aSAndroid Build Coastguard Worker printf(", fm_extent_count=%u})", args->fm_extent_count);
23*cf84ac9aSAndroid Build Coastguard Worker ioctl(-1, FS_IOC_FIEMAP, args);
24*cf84ac9aSAndroid Build Coastguard Worker printf(" = -1 EBADF (%m)\n");
25*cf84ac9aSAndroid Build Coastguard Worker
26*cf84ac9aSAndroid Build Coastguard Worker /* The live version of this test is in btrfs.c */
27*cf84ac9aSAndroid Build Coastguard Worker }
28*cf84ac9aSAndroid Build Coastguard Worker
29*cf84ac9aSAndroid Build Coastguard Worker /* clone and dedupe ioctls are in btrfs.c since they originated there */
30*cf84ac9aSAndroid Build Coastguard Worker
31*cf84ac9aSAndroid Build Coastguard Worker int
main(int argc,char * argv[])32*cf84ac9aSAndroid Build Coastguard Worker main(int argc, char *argv[])
33*cf84ac9aSAndroid Build Coastguard Worker {
34*cf84ac9aSAndroid Build Coastguard Worker test_fiemap();
35*cf84ac9aSAndroid Build Coastguard Worker
36*cf84ac9aSAndroid Build Coastguard Worker puts("+++ exited with 0 +++");
37*cf84ac9aSAndroid Build Coastguard Worker
38*cf84ac9aSAndroid Build Coastguard Worker return 0;
39*cf84ac9aSAndroid Build Coastguard Worker }
40*cf84ac9aSAndroid Build Coastguard Worker
41*cf84ac9aSAndroid Build Coastguard Worker #else
42*cf84ac9aSAndroid Build Coastguard Worker
43*cf84ac9aSAndroid Build Coastguard Worker SKIP_MAIN_UNDEFINED("HAVE_LINUX_FIEMAP_H")
44*cf84ac9aSAndroid Build Coastguard Worker
45*cf84ac9aSAndroid Build Coastguard Worker #endif
46