1*cf84ac9aSAndroid Build Coastguard Worker #include "tests.h"
2*cf84ac9aSAndroid Build Coastguard Worker #include <asm/unistd.h>
3*cf84ac9aSAndroid Build Coastguard Worker
4*cf84ac9aSAndroid Build Coastguard Worker #if defined __NR_swapon && defined __NR_swapoff
5*cf84ac9aSAndroid Build Coastguard Worker
6*cf84ac9aSAndroid Build Coastguard Worker # include <stdio.h>
7*cf84ac9aSAndroid Build Coastguard Worker # include <sys/swap.h>
8*cf84ac9aSAndroid Build Coastguard Worker # include <unistd.h>
9*cf84ac9aSAndroid Build Coastguard Worker
10*cf84ac9aSAndroid Build Coastguard Worker int
main(void)11*cf84ac9aSAndroid Build Coastguard Worker main(void)
12*cf84ac9aSAndroid Build Coastguard Worker {
13*cf84ac9aSAndroid Build Coastguard Worker static const char sample[] = "swap.sample";
14*cf84ac9aSAndroid Build Coastguard Worker long rc;
15*cf84ac9aSAndroid Build Coastguard Worker
16*cf84ac9aSAndroid Build Coastguard Worker rc = syscall(__NR_swapon, sample, 0);
17*cf84ac9aSAndroid Build Coastguard Worker printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
18*cf84ac9aSAndroid Build Coastguard Worker sample, "0", rc, errno2name());
19*cf84ac9aSAndroid Build Coastguard Worker
20*cf84ac9aSAndroid Build Coastguard Worker rc = syscall(__NR_swapon, sample, 42);
21*cf84ac9aSAndroid Build Coastguard Worker printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
22*cf84ac9aSAndroid Build Coastguard Worker sample, "42", rc, errno2name());
23*cf84ac9aSAndroid Build Coastguard Worker
24*cf84ac9aSAndroid Build Coastguard Worker rc = syscall(__NR_swapon, sample, SWAP_FLAG_PREFER);
25*cf84ac9aSAndroid Build Coastguard Worker printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
26*cf84ac9aSAndroid Build Coastguard Worker sample, "SWAP_FLAG_PREFER|0", rc, errno2name());
27*cf84ac9aSAndroid Build Coastguard Worker
28*cf84ac9aSAndroid Build Coastguard Worker rc = syscall(__NR_swapon, sample, SWAP_FLAG_PREFER | 42);
29*cf84ac9aSAndroid Build Coastguard Worker printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
30*cf84ac9aSAndroid Build Coastguard Worker sample, "SWAP_FLAG_PREFER|42", rc, errno2name());
31*cf84ac9aSAndroid Build Coastguard Worker
32*cf84ac9aSAndroid Build Coastguard Worker rc = syscall(__NR_swapon, sample, -1L);
33*cf84ac9aSAndroid Build Coastguard Worker printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
34*cf84ac9aSAndroid Build Coastguard Worker sample,
35*cf84ac9aSAndroid Build Coastguard Worker "SWAP_FLAG_PREFER|SWAP_FLAG_DISCARD|SWAP_FLAG_DISCARD_ONCE"
36*cf84ac9aSAndroid Build Coastguard Worker "|SWAP_FLAG_DISCARD_PAGES|0xfff80000|32767",
37*cf84ac9aSAndroid Build Coastguard Worker rc, errno2name());
38*cf84ac9aSAndroid Build Coastguard Worker
39*cf84ac9aSAndroid Build Coastguard Worker rc = syscall(__NR_swapoff, sample);
40*cf84ac9aSAndroid Build Coastguard Worker printf("swapoff(\"%s\") = %ld %s (%m)\n",
41*cf84ac9aSAndroid Build Coastguard Worker sample, rc, errno2name());
42*cf84ac9aSAndroid Build Coastguard Worker
43*cf84ac9aSAndroid Build Coastguard Worker puts("+++ exited with 0 +++");
44*cf84ac9aSAndroid Build Coastguard Worker return 0;
45*cf84ac9aSAndroid Build Coastguard Worker }
46*cf84ac9aSAndroid Build Coastguard Worker
47*cf84ac9aSAndroid Build Coastguard Worker #else
48*cf84ac9aSAndroid Build Coastguard Worker
49*cf84ac9aSAndroid Build Coastguard Worker SKIP_MAIN_UNDEFINED("__NR_swapon && __NR_swapoff")
50*cf84ac9aSAndroid Build Coastguard Worker
51*cf84ac9aSAndroid Build Coastguard Worker #endif
52