1 | #include <stdio.h> |
2 | #include <sys/auxv.h> |
3 | |
4 | int main(int argc, char** argv, char** envp) { |
5 | char* aux_names[] = { |
6 | "AT_NULL" , "AT_IGNORE" , |
7 | "AT_EXECFD" , "AT_PHDR" , |
8 | "AT_PHENT" , "AT_PHNUM" , |
9 | "AT_PAGESZ" , "AT_BASE" , |
10 | "AT_FLAGS" , "AT_ENTRY" , |
11 | "AT_NOTELF" , "AT_UID" , |
12 | "AT_EUID" , "AT_GID" , |
13 | "AT_EGID" , "AT_CLKTCK" , |
14 | "AT_PLATFORM" , "AT_HWCAP" , |
15 | "AT_FPUCW" , "AT_DCACHEBSIZE" , |
16 | "AT_ICACHEBSIZE" , "AT_UCACHEBSIZE" , |
17 | "AT_IGNOREPPC" , "AT_SECURE" , |
18 | "AT_BASE_PLATFORM" , "AT_RANDOM" , |
19 | "AT_HWCAP2" , "AT_EXECFN" , |
20 | "AT_SYSINFO" , "AT_SYSINFO_EHDR" , |
21 | "AT_L1I_CACHESHAPE" , "AT_L1D_CACHESHAPE" , |
22 | "AT_L2_CACHESHAPE" , "AT_L3_CACHESHAPE" , |
23 | "AT_L1I_CACHESIZE" , "AT_L1I_CACHEGEOMETRY" , |
24 | "AT_L1D_CACHESIZE" , "AT_L1D_CACHEGEOMETRY" , |
25 | "AT_L2_CACHESIZE" , "AT_L2_CACHEGEOMETRY" , |
26 | "AT_L3_CACHESIZE" , "AT_L3_CACHEGEOMETRY" , |
27 | "AT_MINSIGSTKSZ" , |
28 | }; |
29 | unsigned long aux_types[] = {AT_NULL, AT_IGNORE, |
30 | AT_EXECFD, AT_PHDR, |
31 | AT_PHENT, AT_PHNUM, |
32 | AT_PAGESZ, AT_BASE, |
33 | AT_FLAGS, AT_ENTRY, |
34 | AT_NOTELF, AT_UID, |
35 | AT_EUID, AT_GID, |
36 | AT_EGID, AT_CLKTCK, |
37 | AT_PLATFORM, AT_HWCAP, |
38 | AT_FPUCW, AT_DCACHEBSIZE, |
39 | AT_ICACHEBSIZE, AT_UCACHEBSIZE, |
40 | AT_IGNOREPPC, AT_SECURE, |
41 | AT_BASE_PLATFORM, AT_RANDOM, |
42 | AT_HWCAP2, AT_EXECFN, |
43 | AT_SYSINFO, AT_SYSINFO_EHDR, |
44 | AT_L1I_CACHESHAPE, AT_L1D_CACHESHAPE, |
45 | AT_L2_CACHESHAPE, AT_L3_CACHESHAPE, |
46 | AT_L1I_CACHESIZE, AT_L1I_CACHEGEOMETRY, |
47 | AT_L1D_CACHESIZE, AT_L1D_CACHEGEOMETRY, |
48 | AT_L2_CACHESIZE, AT_L2_CACHEGEOMETRY, |
49 | AT_L3_CACHESIZE, AT_L3_CACHEGEOMETRY, |
50 | AT_MINSIGSTKSZ}; |
51 | int n_aux_types = 43; |
52 | for (int i = 0; i < n_aux_types; i++) { |
53 | printf("%s = %lu\n" , aux_names[i], getauxval(aux_types[i])); |
54 | } |
55 | |
56 | for (char** env = envp; *env != 0; env++) { |
57 | char* thisEnv = *env; |
58 | printf("%s\n" , thisEnv); |
59 | } |
60 | // TODO: Need this? |
61 | fflush(stdout); |
62 | return 0; |
63 | } |
64 | |