guint32 => "le32_to_cpu(*(uint32_t *) get_next(4))",
gint64 => "le64_to_cpu(*(uint64_t *) get_next(8))",
guint64 => "le64_to_cpu(*(uint64_t *) get_next(8))",
+ gfloat => "({ uint32_t data = le32_to_cpu(*(uint32_t *) get_next(4)); float _val; memcpy(&_val, &data, sizeof(_val)); _val; })"
);
my %tlv_get_be = (
$size = $tlv_get{$prefix};
die "Unknown size element type '$prefix'" if not defined $size;
+ my $curvar = "$var\_n";
+ if (rindex($var,"]") == length($var)-1) {
+ $curvar = substr($var, 0, index($var, "["))."\_i";
+ $data .= $indent."$curvar = 0;\n";
+ }
($var_data, $var_iterator) =
- gen_tlv_parse_field($var."[$var\_n]", $elem->{"array-element"}, $n_indent + 1, "i$iterator");
+ gen_tlv_parse_field($var."[$curvar]", $elem->{"array-element"}, $n_indent + 1, "i$iterator");
- $var_data .= $indent."\t$var\_n++;\n";
+ $var_data .= $indent."\t$curvar++;\n";
$data .= $indent."$iterator = $size;\n";
$data .= $indent."$var = __qmi_alloc_static($iterator * sizeof($var\[0]));\n";
$data .= $indent."while($iterator\-- > 0) {\n";
switch(tlv->type) {
EOF
foreach my $field (@$data) {
+ $field = gen_common_ref($field);
my $cname = gen_cname($field->{name});
gen_tlv_type($cname, $field, $i++);
}
EOF
foreach my $field (@$fields) {
+ $field = gen_common_ref($field);
my $cname = gen_cname($field->{name});
gen_tlv_attr_set($cname, $field);
}