Lines Matching refs:ti
167 static int trytypetag (struct rnndb *db, char *file, xmlNode *node, struct rnntypeinfo *ti) {
171 ADDARRAY(ti->vals, val);
176 ADDARRAY(ti->bitfields, bf);
181 static int trytypeattr (struct rnndb *db, char *file, xmlNode *node, xmlAttr *attr, struct rnntypeinfo *ti) {
183 ti->shr = getnumattrib(db, file, node->line, attr);
186 ti->min = getnumattrib(db, file, node->line, attr);
187 ti->minvalid = 1;
190 ti->max = getnumattrib(db, file, node->line, attr);
191 ti->maxvalid = 1;
194 ti->align = getnumattrib(db, file, node->line, attr);
195 ti->alignvalid = 1;
198 ti->name = strdup(getattrib(db, file, node->line, attr));;
201 ti->radix = getnumattrib(db, file, node->line, attr);
202 ti->radixvalid = 1;
205 ti->high = ti->low = getnumattrib(db, file, node->line, attr);
208 ti->low = getnumattrib(db, file, node->line, attr);
211 ti->high = getnumattrib(db, file, node->line, attr);
214 ti->addvariant = getboolattrib(db, file, node->line, attr);
1156 static void preptypeinfo(struct rnndb *db, struct rnntypeinfo *ti, char *prefix, struct rnnvarinfo *vi, char *file) {
1158 if (ti->name) {
1159 struct rnnenum *en = rnn_findenum (db, ti->name);
1160 struct rnnbitset *bs = rnn_findbitset (db, ti->name);
1161 struct rnnspectype *st = rnn_findspectype (db, ti->name);
1164 ti->type = RNN_TTYPE_INLINE_ENUM;
1167 ADDARRAY(ti->vals, copyvalue(en->vals[j], file));
1169 ti->type = RNN_TTYPE_ENUM;
1170 ti->eenum = en;
1174 ti->type = RNN_TTYPE_INLINE_BITSET;
1177 ADDARRAY(ti->bitfields, copybitfield(bs->bitfields[j], file));
1179 ti->type = RNN_TTYPE_BITSET;
1180 ti->ebitset = bs;
1183 ti->type = RNN_TTYPE_SPECTYPE;
1184 ti->spectype = st;
1185 } else if (!strcmp(ti->name, "hex")) {
1186 ti->type = RNN_TTYPE_HEX;
1187 } else if (!strcmp(ti->name, "float")) {
1188 ti->type = RNN_TTYPE_FLOAT;
1189 } else if (!strcmp(ti->name, "uint")) {
1190 ti->type = RNN_TTYPE_UINT;
1191 } else if (!strcmp(ti->name, "int")) {
1192 ti->type = RNN_TTYPE_INT;
1193 } else if (!strcmp(ti->name, "boolean")) {
1194 ti->type = RNN_TTYPE_BOOLEAN;
1195 } else if (!strcmp(ti->name, "bitfield")) {
1196 ti->type = RNN_TTYPE_INLINE_BITSET;
1197 } else if (!strcmp(ti->name, "enum")) {
1198 ti->type = RNN_TTYPE_INLINE_ENUM;
1199 } else if (!strcmp(ti->name, "fixed")) {
1200 ti->type = RNN_TTYPE_FIXED;
1201 } else if (!strcmp(ti->name, "ufixed")) {
1202 ti->type = RNN_TTYPE_UFIXED;
1203 } else if (!strcmp(ti->name, "a3xx_regid")) {
1204 ti->type = RNN_TTYPE_A3XX_REGID;
1205 } else if (!strcmp(ti->name, "waddress") || !strcmp(ti->name, "address")) {
1206 ti->type = RNN_TTYPE_HEX;
1208 ti->type = RNN_TTYPE_HEX;
1209 rnn_err(db, "%s: unknown type %s\n", prefix, ti->name);
1211 } else if (ti->bitfieldsnum) {
1212 ti->name = "bitfield";
1213 ti->type = RNN_TTYPE_INLINE_BITSET;
1214 } else if (ti->valsnum) {
1215 ti->name = "enum";
1216 ti->type = RNN_TTYPE_INLINE_ENUM;
1217 } else if (ti->low == 0 && ti->high == 0) {
1218 ti->name = "boolean";
1219 ti->type = RNN_TTYPE_BOOLEAN;
1221 ti->name = "hex";
1222 ti->type = RNN_TTYPE_HEX;
1224 if (ti->addvariant && ti->type != RNN_TTYPE_ENUM) {
1225 rnn_err(db, "%s: addvariant specified on non-enum type %s\n", prefix, ti->name);
1227 for (i = 0; i < ti->bitfieldsnum; i++)
1228 prepbitfield(db, ti->bitfields[i], prefix, vi);
1229 for (i = 0; i < ti->valsnum; i++)
1230 prepvalue(db, ti->vals[i], prefix, vi);