Lines Matching refs:field
245 * the length of the field to the start position to get the
313 struct intel_field *field;
315 field = rzalloc(ctx->group, struct intel_field);
316 field->parent = ctx->group;
322 field->name = ralloc_strdup(field, atts[i + 1]);
323 if (strcmp(field->name, "DWord Length") == 0) {
324 field->parent->dword_length_field = field;
327 field->start = strtoul(atts[i + 1], &p, 0);
329 field->end = strtoul(atts[i + 1], &p, 0);
331 field->type = string_to_type(ctx, atts[i + 1]);
333 field->start >= 16 && field->end <= 31) {
334 field->has_default = true;
335 field->default_value = strtoul(atts[i + 1], &p, 0);
339 return field;
345 struct intel_field *field;
347 field = rzalloc(ctx->group, struct intel_field);
348 field->parent = ctx->group;
350 field->array = array;
351 field->start = field->array->array_offset;
353 return field;
376 struct intel_field *field = array ?
380 while (list && field->start > list->start) {
385 field->next = list;
387 ctx->group->fields = field;
389 prev->next = field;
391 return field;
435 } else if (strcmp(element_name, "field") == 0) {
487 } else if (strcmp(name, "field") == 0) {
488 struct intel_field *field = ctx->last_field;
490 field->inline_enum.values = ctx->values;
491 field->inline_enum.nvalues = ctx->n_values;
777 struct intel_field *field = group->fields;
778 while (field) {
779 if (strcmp(field->name, name) == 0) {
782 field);
783 return field;
785 field = field->next;
798 struct intel_field *field = group->dword_length_field;
799 if (field) {
800 return field_value(p[0], field->start, field->end) + group->bias;
875 return iter->field != NULL && iter->field->next != NULL;
897 /* descend into a non-array field */
903 iter->group = iter->field->array;
910 iter->field = iter->group->fields;
911 iter->fields[iter->level] = iter->field;
920 iter->field = iter->fields[iter->level];
925 iter_start_field(struct intel_field_iterator *iter, struct intel_field *field)
927 iter->field = field;
928 iter->fields[iter->level] = field;
930 while (iter->field->array)
935 iter->start_bit = array_member_offset + iter->field->start;
936 iter->end_bit = array_member_offset + iter->field->end;
981 iter_start_field(iter, iter->field->next);
994 * field.
1026 if (iter->field->type.kind == INTEL_TYPE_ADDRESS ||
1027 iter->field->type.kind == INTEL_TYPE_OFFSET)
1041 if (iter->field->name)
1042 snprintf(iter->name, sizeof(iter->name), "%s", iter->field->name);
1054 switch (iter->field->type.kind) {
1058 enum_name = intel_get_enum_name(&iter->field->inline_enum, v.qw);
1063 enum_name = intel_get_enum_name(&iter->field->inline_enum, v.qw);
1082 iter->field->type.intel_struct->name);
1085 iter->field->type.intel_struct->name);
1089 (float) v.qw / (1 << iter->field->type.f));
1093 int bits = iter->field->type.i + iter->field->type.f + 1;
1096 (float) v_sign_extend / (1 << iter->field->type.f));
1103 enum_name = intel_get_enum_name(iter->field->type.intel_enum, v.qw);
1163 if (!iter->field) {
1197 intel_field_is_header(struct intel_field *field)
1202 if (field->start >= 32 ||
1203 field->end >= 32)
1206 bits = (1ULL << (field->end - field->start + 1)) - 1;
1207 bits <<= field->start;
1209 return (field->parent->opcode_mask & bits) != 0;
1227 if (!intel_field_is_header(iter.field)) {