diff options
Diffstat (limited to 'common.h')
-rw-r--r-- | common.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/common.h b/common.h new file mode 100644 index 0000000..b936a62 --- /dev/null +++ b/common.h @@ -0,0 +1,55 @@ +#ifndef WHATAMI_COMMON_H +#define WHATAMI_COMMON_H + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/utsname.h> +#include <cpuid.h> +#include <ctype.h> +#include <dirent.h> +#include <limits.h> + +#if defined(__x86_64__) || defined(__i386__) +#include "x86.h" +#endif + +#if defined(__linux__) +#elif defined(__APPLE__) +#include <sys/types.h> +#include <sys/sysctl.h> +#endif + +union regs_t { + struct { + unsigned int eax; + unsigned int ebx; + unsigned int ecx; + unsigned int edx; + } gpr; + unsigned int bytes[15]; +}; + +struct Block_Device { + char path[PATH_MAX]; + char model[254]; + size_t size; +}; + +unsigned int CPUID(unsigned int leaf, union regs_t *reg); +int is_cpu_hyperthreaded(); +int is_cpu_virtual(); +char *get_sys_product(); +unsigned int get_cpu_count(); +char *get_cpu_manufacturer(); +char *get_cpu_vendor(); + + +size_t rstrip(char *s); +int get_sys_os_dist(char **name, char **version); +ssize_t get_sys_memory(); +char *get_sys_dmi_product(); +struct Block_Device **get_block_devices(size_t *total); + +#endif //WHATAMI_COMMON_H |