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 Ebrahimiint 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