intel: aubinator: pack supported generations into an array

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Lionel Landwerlin
2016-10-04 16:17:56 +01:00
parent 2dc06e2324
commit f8b861a867

View File

@@ -36,6 +36,8 @@
#include <sys/wait.h>
#include <sys/mman.h>
#include "util/macros.h"
#include "decoder.h"
#include "intel_aub.h"
#include "gen_disasm.h"
@@ -1059,11 +1061,25 @@ int main(int argc, char *argv[])
{
struct gen_spec *spec;
struct aub_file *file;
int i, pci_id = 0;
int i;
bool found_arg_gen = false, pager = true;
int gen_major, gen_minor;
const char *value;
const char *value, *input_file;
char gen_file[256], gen_val[24];
const struct {
const char *name;
int pci_id;
int major;
int minor;
} gens[] = {
{ "ivb", 0x0166, 7, 0 }, /* Intel(R) Ivybridge Mobile GT2 */
{ "hsw", 0x0416, 7, 5 }, /* Intel(R) Haswell Mobile GT2 */
{ "byt", 0x0155, 7, 5 }, /* Intel(R) Bay Trail */
{ "bdw", 0x1616, 8, 0 }, /* Intel(R) HD Graphics 5500 (Broadwell GT2) */
{ "chv", 0x22B3, 8, 0 }, /* Intel(R) HD Graphics (Cherryview) */
{ "skl", 0x1912, 9, 0 }, /* Intel(R) HD Graphics 530 (Skylake GT2) */
{ "kbl", 0x591D, 9, 0 }, /* Intel(R) Kabylake GT2 */
{ "bxt", 0x0A84, 9, 0 } /* Intel(R) HD Graphics (Broxton) */
}, *gen = NULL;
if (argc == 1) {
print_help(argv[0], stderr);
@@ -1081,8 +1097,6 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
found_arg_gen = true;
gen_major = 0;
gen_minor = 0;
snprintf(gen_val, sizeof(gen_val), "%s", value);
} else if (strcmp(argv[i], "--headers") == 0) {
option_full_decode = false;
@@ -1105,6 +1119,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "unknown option %s\n", argv[i]);
exit(EXIT_FAILURE);
}
input_file = argv[i];
break;
}
}
@@ -1114,47 +1129,14 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
if (strstr(gen_val, "ivb") != NULL) {
/* Intel(R) Ivybridge Mobile GT2 */
pci_id = 0x0166;
gen_major = 7;
gen_minor = 0;
} else if (strstr(gen_val, "hsw") != NULL) {
/* Intel(R) Haswell Mobile GT2 */
pci_id = 0x0416;
gen_major = 7;
gen_minor = 5;
} else if (strstr(gen_val, "byt") != NULL) {
/* Intel(R) Bay Trail */
pci_id = 0x0155;
gen_major = 7;
gen_minor = 5;
} else if (strstr(gen_val, "bdw") != NULL) {
/* Intel(R) HD Graphics 5500 (Broadwell GT2) */
pci_id = 0x1616;
gen_major = 8;
gen_minor = 0;
} else if (strstr(gen_val, "chv") != NULL) {
/* Intel(R) HD Graphics (Cherryview) */
pci_id = 0x22B3;
gen_major = 8;
gen_minor = 0;
} else if (strstr(gen_val, "skl") != NULL) {
/* Intel(R) HD Graphics 530 (Skylake GT2) */
pci_id = 0x1912;
gen_major = 9;
gen_minor = 0;
} else if (strstr(gen_val, "kbl") != NULL) {
/* Intel(R) Kabylake GT2 */
pci_id = 0x591D;
gen_major = 9;
gen_minor = 0;
} else if (strstr(gen_val, "bxt") != NULL) {
/* Intel(R) HD Graphics (Broxton) */
pci_id = 0x0A84;
gen_major = 9;
gen_minor = 0;
} else {
for (i = 0; i < ARRAY_SIZE(gens); i++) {
if (!strcmp(gen_val, gens[i].name)) {
gen = &gens[i];
break;
}
}
if (gen == NULL) {
fprintf(stderr, "can't parse gen: %s, expected ivb, byt, hsw, "
"bdw, chv, skl, kbl or bxt\n", gen_val);
exit(EXIT_FAILURE);
@@ -1167,21 +1149,21 @@ int main(int argc, char *argv[])
if (isatty(1) && pager)
setup_pager();
if (gen_minor > 0) {
if (gen->minor > 0) {
snprintf(gen_file, sizeof(gen_file), "../genxml/gen%d%d.xml",
gen_major, gen_minor);
gen->major, gen->minor);
} else {
snprintf(gen_file, sizeof(gen_file), "../genxml/gen%d.xml", gen_major);
snprintf(gen_file, sizeof(gen_file), "../genxml/gen%d.xml", gen->major);
}
spec = gen_spec_load(gen_file);
disasm = gen_disasm_create(pci_id);
disasm = gen_disasm_create(gen->pci_id);
if (argv[i] == NULL) {
print_help(argv[0], stderr);
if (input_file == NULL) {
print_help(input_file, stderr);
exit(EXIT_FAILURE);
} else {
file = aub_file_open(argv[i]);
file = aub_file_open(input_file);
}
while (aub_file_more_stuff(file))