xref: /aosp_15_r20/external/strace/tests-m32/swap.c (revision cf84ac9a129d8ea9952db616b4e9b904c4bdde56)
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