xref: /aosp_15_r20/external/capstone/suite/capstone_get_setup.c (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi /*
2*9a0e4156SSadaf Ebrahimi  Retrieve architectures compiled in Capstone.
3*9a0e4156SSadaf Ebrahimi  By Nguyen Anh Quynh, 2019.
4*9a0e4156SSadaf Ebrahimi 
5*9a0e4156SSadaf Ebrahimi  Compile this code with:
6*9a0e4156SSadaf Ebrahimi  $ cc -o capstone_get_setup capstone_get_setup.c -lcapstone
7*9a0e4156SSadaf Ebrahimi 
8*9a0e4156SSadaf Ebrahimi  On default Capstone build, this code prints out the below output:
9*9a0e4156SSadaf Ebrahimi 
10*9a0e4156SSadaf Ebrahimi  $ capstone_get_setup
11*9a0e4156SSadaf Ebrahimi  x86=1 arm=1 arm64=1 mips=1 ppc=1 sparc=1 sysz=1 xcore=1 m68k=1 tms320c64x=1 m680x=1 evm=1
12*9a0e4156SSadaf Ebrahimi */
13*9a0e4156SSadaf Ebrahimi 
14*9a0e4156SSadaf Ebrahimi #include <stdio.h>
15*9a0e4156SSadaf Ebrahimi #include <capstone/capstone.h>
16*9a0e4156SSadaf Ebrahimi 
main()17*9a0e4156SSadaf Ebrahimi int main()
18*9a0e4156SSadaf Ebrahimi {
19*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_X86)) {
20*9a0e4156SSadaf Ebrahimi 		printf("x86=1 ");
21*9a0e4156SSadaf Ebrahimi 	}
22*9a0e4156SSadaf Ebrahimi 
23*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_ARM)) {
24*9a0e4156SSadaf Ebrahimi 		printf("arm=1 ");
25*9a0e4156SSadaf Ebrahimi 	}
26*9a0e4156SSadaf Ebrahimi 
27*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_ARM64)) {
28*9a0e4156SSadaf Ebrahimi 		printf("arm64=1 ");
29*9a0e4156SSadaf Ebrahimi 	}
30*9a0e4156SSadaf Ebrahimi 
31*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_MIPS)) {
32*9a0e4156SSadaf Ebrahimi 		printf("mips=1 ");
33*9a0e4156SSadaf Ebrahimi 	}
34*9a0e4156SSadaf Ebrahimi 
35*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_PPC)) {
36*9a0e4156SSadaf Ebrahimi 		printf("ppc=1 ");
37*9a0e4156SSadaf Ebrahimi 	}
38*9a0e4156SSadaf Ebrahimi 
39*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_SPARC)) {
40*9a0e4156SSadaf Ebrahimi 		printf("sparc=1 ");
41*9a0e4156SSadaf Ebrahimi 	}
42*9a0e4156SSadaf Ebrahimi 
43*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_SYSZ)) {
44*9a0e4156SSadaf Ebrahimi 		printf("sysz=1 ");
45*9a0e4156SSadaf Ebrahimi 	}
46*9a0e4156SSadaf Ebrahimi 
47*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_XCORE)) {
48*9a0e4156SSadaf Ebrahimi 		printf("xcore=1 ");
49*9a0e4156SSadaf Ebrahimi 	}
50*9a0e4156SSadaf Ebrahimi 
51*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_M68K)) {
52*9a0e4156SSadaf Ebrahimi 		printf("m68k=1 ");
53*9a0e4156SSadaf Ebrahimi 	}
54*9a0e4156SSadaf Ebrahimi 
55*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_TMS320C64X)) {
56*9a0e4156SSadaf Ebrahimi 		printf("tms320c64x=1 ");
57*9a0e4156SSadaf Ebrahimi 	}
58*9a0e4156SSadaf Ebrahimi 
59*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_M680X)) {
60*9a0e4156SSadaf Ebrahimi 		printf("m680x=1 ");
61*9a0e4156SSadaf Ebrahimi 	}
62*9a0e4156SSadaf Ebrahimi 
63*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_EVM)) {
64*9a0e4156SSadaf Ebrahimi 		printf("evm=1 ");
65*9a0e4156SSadaf Ebrahimi 	}
66*9a0e4156SSadaf Ebrahimi 
67*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_ARCH_MOS65XX)) {
68*9a0e4156SSadaf Ebrahimi 		printf("mos65xx=1 ");
69*9a0e4156SSadaf Ebrahimi 	}
70*9a0e4156SSadaf Ebrahimi 
71*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_SUPPORT_DIET)) {
72*9a0e4156SSadaf Ebrahimi 		printf("diet=1 ");
73*9a0e4156SSadaf Ebrahimi 	}
74*9a0e4156SSadaf Ebrahimi 
75*9a0e4156SSadaf Ebrahimi 	if (cs_support(CS_SUPPORT_X86_REDUCE)) {
76*9a0e4156SSadaf Ebrahimi 		printf("x86_reduce=1 ");
77*9a0e4156SSadaf Ebrahimi 	}
78*9a0e4156SSadaf Ebrahimi 
79*9a0e4156SSadaf Ebrahimi 	printf("\n");
80*9a0e4156SSadaf Ebrahimi 
81*9a0e4156SSadaf Ebrahimi 	return 0;
82*9a0e4156SSadaf Ebrahimi }
83