Lines Matching refs:elem
343 static int get_array_idx_offset(struct rnndelem *elem, uint64_t addr, uint64_t *idx, uint64_t *offset)
345 if (elem->offsets) {
347 for (i = 0; i < elem->offsetsnum; i++) {
348 uint64_t o = elem->offsets[i];
349 if ((o <= addr) && (addr < (o + elem->stride))) {
357 if (addr < elem->offset)
360 *idx = (addr - elem->offset) / elem->stride;
361 *offset = (addr - elem->offset) % elem->stride;
363 if (elem->length && (*idx >= elem->length))
510 struct rnndelem *elem = elems[i];
511 if (!rnndec_varmatch(ctx, &elem->varinfo))
513 int match = elem->name && (strlen(elem->name) == n) && !strncmp(elem->name, name, n);
514 switch (elem->type) {
518 *offset = elem->offset;
523 if (elem->name) {
526 if (strlen(elem->name) != dotn || strncmp(elem->name, name, dotn))
529 ret = tryreg(ctx, elem->subelems, elem->subelemsnum, dwidth,
530 elem->name ? dotsuffix : name, offset);
537 ret = tryreg(ctx, elem->subelems, elem->subelemsnum, dwidth, child, offset);
539 *offset += elem->offset + (idx * elem->stride);