Lines Matching defs:elt
268 struct pnp_elt *elt;
318 elt = malloc(sizeof(struct pnp_elt) + strlen(key) + 1);
319 TAILQ_INSERT_TAIL(list, elt, next);
320 elt->pe_key = (char *)(elt + 1);
321 elt->pe_offset = off;
323 elt->pe_kind = TYPE_U8;
325 elt->pe_kind = TYPE_V8;
327 elt->pe_kind = TYPE_G16;
329 elt->pe_kind = TYPE_L16;
331 elt->pe_kind = TYPE_M16;
333 elt->pe_kind = TYPE_U16;
335 elt->pe_kind = TYPE_V16;
337 elt->pe_kind = TYPE_U32;
339 elt->pe_kind = TYPE_V32;
341 elt->pe_kind = TYPE_W32;
343 elt->pe_kind = TYPE_D;
345 elt->pe_kind = TYPE_Z;
347 elt->pe_kind = TYPE_P;
349 elt->pe_kind = TYPE_E;
351 elt->pe_kind = TYPE_T;
359 if (elt->pe_kind & TYPE_INT) {
360 elt->pe_offset = roundup2(elt->pe_offset, elt->pe_kind & TYPE_SZ_MASK);
361 off = elt->pe_offset + (elt->pe_kind & TYPE_SZ_MASK);
362 } else if (elt->pe_kind == TYPE_E) {
364 elt->pe_offset = roundup2(elt->pe_offset, sizeof(uint32_t));
365 off = elt->pe_offset + sizeof(uint32_t);
366 } else if (elt->pe_kind == TYPE_T) {
368 off = elt->pe_offset;
370 elt->pe_offset = roundup2(elt->pe_offset, elf_pointer_size(ef));
371 off = elt->pe_offset + elf_pointer_size(ef);
373 if (elt->pe_kind & TYPE_PAIRED) {
378 newtype = elt->pe_kind & TYPE_FLAGGED ? 'J' : 'I';
385 if (elt->pe_kind & TYPE_FLAGGED)
387 else if (elt->pe_kind & TYPE_GE)
389 else if (elt->pe_kind & TYPE_LE)
391 else if (elt->pe_kind & TYPE_MASK)
393 else if (elt->pe_kind & TYPE_INT)
395 else if (elt->pe_kind == TYPE_D)
397 else if (elt->pe_kind == TYPE_Z || elt->pe_kind == TYPE_E)
399 else if (elt->pe_kind == TYPE_T)
402 errx(1, "Impossible type %x\n", elt->pe_kind);
420 struct pnp_elt *elt, *elt_tmp;
422 TAILQ_FOREACH_SAFE(elt, list, next, elt_tmp) {
423 TAILQ_REMOVE(list, elt, next);
424 free(elt);
448 parse_pnp_entry(struct elf_file *ef, struct pnp_elt *elt, const char *walker)
456 if (elt->pe_kind == TYPE_W32) {
457 v4 = parse_32(walker + elt->pe_offset);
466 } else if (elt->pe_kind & TYPE_INT) {
467 switch (elt->pe_kind & TYPE_SZ_MASK) {
469 memcpy(&v1, walker + elt->pe_offset, sizeof(v1));
470 if ((elt->pe_kind & TYPE_FLAGGED) && v1 == 0xff)
476 v2 = parse_16(walker + elt->pe_offset);
477 if ((elt->pe_kind & TYPE_FLAGGED) && v2 == 0xffff)
483 v4 = parse_32(walker + elt->pe_offset);
484 if ((elt->pe_kind & TYPE_FLAGGED) && v4 == 0xffffffff)
490 errx(1, "Invalid size somehow %#x", elt->pe_kind);
495 } else if (elt->pe_kind == TYPE_T) {
498 if (elt->pe_kind == TYPE_E) {
499 v4 = parse_32(walker + elt->pe_offset);
505 elt->pe_offset);
514 printf("%c:%s;", elt->pe_kind == TYPE_E ? 'E' :
515 (elt->pe_kind == TYPE_Z ? 'Z' : 'D'), buffer);
525 struct pnp_elt *elt;
557 TAILQ_FOREACH(elt, &list, next) {
558 parse_pnp_entry(ef, elt, walker);