#include "kexec.h" #include #include #include long physical_arch(void) { struct utsname utsname; int i, result = uname(&utsname); if (result < 0) { fprintf(stderr, "uname failed: %s\n", strerror(errno)); return -1; } for (i = 0; arches[i].machine; ++i) { if (strcmp(utsname.machine, arches[i].machine) == 0) return arches[i].arch; if ((strcmp(arches[i].machine, "arm") == 0) && (strncmp(utsname.machine, arches[i].machine, strlen(arches[i].machine)) == 0)) return arches[i].arch; } fprintf(stderr, "Unsupported machine type: %s\n", utsname.machine); return -1; }