Lines Matching defs:spec
63 struct intel_spec *spec;
79 intel_spec_find_struct(struct intel_spec *spec, const char *name)
81 struct hash_entry *entry = _mesa_hash_table_search(spec->structs,
87 intel_spec_find_register(struct intel_spec *spec, uint32_t offset)
90 _mesa_hash_table_search(spec->registers_by_offset,
96 intel_spec_find_register_by_name(struct intel_spec *spec, const char *name)
99 _mesa_hash_table_search(spec->registers_by_name, name);
104 intel_spec_find_enum(struct intel_spec *spec, const char *name)
106 struct hash_entry *entry = _mesa_hash_table_search(spec->enums,
112 intel_spec_get_gen(struct intel_spec *spec)
114 return spec->gen;
160 group = rzalloc(ctx->spec, struct intel_group);
164 group->spec = ctx->spec;
222 e = rzalloc(ctx->spec, struct intel_enum);
301 else if (g = intel_spec_find_struct(ctx->spec, s), g != NULL)
303 else if (e = intel_spec_find_enum(ctx->spec, s), e != NULL)
426 ctx->spec->gen = intel_make_gen(major, minor);
445 ctx->values = reralloc_array_size(ctx->spec, ctx->values,
459 struct intel_spec *spec = ctx->spec;
479 _mesa_hash_table_insert(spec->commands, group->name, group);
481 _mesa_hash_table_insert(spec->structs, group->name, group);
483 _mesa_hash_table_insert(spec->registers_by_name, group->name, group);
484 _mesa_hash_table_insert(spec->registers_by_offset,
495 ctx->values = ralloc_array(ctx->spec, struct intel_value*, ctx->n_allocated_values = 2);
501 ctx->values = ralloc_array(ctx->spec, struct intel_value*, ctx->n_allocated_values = 2);
504 _mesa_hash_table_insert(spec->enums, e->name, e);
569 struct intel_spec *spec;
570 spec = rzalloc(NULL, struct intel_spec);
571 if (spec == NULL)
574 spec->commands =
575 _mesa_hash_table_create(spec, _mesa_hash_string, _mesa_key_string_equal);
576 spec->structs =
577 _mesa_hash_table_create(spec, _mesa_hash_string, _mesa_key_string_equal);
578 spec->registers_by_name =
579 _mesa_hash_table_create(spec, _mesa_hash_string, _mesa_key_string_equal);
580 spec->registers_by_offset =
581 _mesa_hash_table_create(spec, _hash_uint32, _mesa_key_pointer_equal);
582 spec->enums =
583 _mesa_hash_table_create(spec, _mesa_hash_string, _mesa_key_string_equal);
584 spec->access_cache =
585 _mesa_hash_table_create(spec, _mesa_hash_string, _mesa_key_string_equal);
587 return spec;
624 ctx.spec = intel_spec_init();
625 if (ctx.spec == NULL) {
653 return ctx.spec;
683 ctx.spec = intel_spec_init();
684 if (ctx.spec == NULL) {
694 intel_spec_destroy(ctx.spec);
695 ctx.spec = NULL;
706 intel_spec_destroy(ctx.spec);
707 ctx.spec = NULL;
717 /* free ctx.spec if genxml is empty */
718 if (ctx.spec &&
719 _mesa_hash_table_num_entries(ctx.spec->commands) == 0 &&
720 _mesa_hash_table_num_entries(ctx.spec->structs) == 0) {
722 "Error parsing XML: empty spec.\n");
723 intel_spec_destroy(ctx.spec);
727 return ctx.spec;
741 struct intel_spec *spec = intel_spec_load_filename(filename);
744 return spec;
747 void intel_spec_destroy(struct intel_spec *spec)
749 ralloc_free(spec);
753 intel_spec_find_instruction(struct intel_spec *spec,
757 hash_table_foreach(spec->commands, entry) {
774 struct intel_spec *spec = group->spec;
775 struct hash_entry *entry = _mesa_hash_table_search(spec->access_cache,
783 _mesa_hash_table_insert(spec->access_cache,
784 ralloc_strdup(spec, path),
1088 intel_spec_find_struct(iter->group->spec,