Home | History | Annotate | Download | only in m_initimg

Lines Matching refs:auxv

323 		  | auxv            |
342 The client's auxv is created by copying and modifying our own one.
343 As a side effect of scanning our own auxv, some important bits of
351 struct auxv
361 struct auxv *find_auxv(UWord* sp)
380 return (struct auxv *)sp;
396 struct auxv *auxv;
397 const struct auxv *orig_auxv;
398 const struct auxv *cauxv;
400 unsigned auxsize; /* total size of auxv in bytes */
412 /* use our own auxv as a prototype */
451 /* now, how big is the auxv? */
452 auxsize = sizeof(*auxv); /* there's always at least one entry: AT_NULL */
476 auxsize + /* auxv */
611 /* --- auxv --- */
612 auxv = (struct auxv *)ptr;
613 *client_auxv = (UInt *)auxv;
615 // ??? According to 'man proc', auxv is a array of unsigned long
621 auxv[0].a_type = AT_IGNOREPPC;
622 auxv[0].u.a_val = AT_IGNOREPPC;
623 auxv[1].a_type = AT_IGNOREPPC;
624 auxv[1].u.a_val = AT_IGNOREPPC;
625 auxv += 2;
628 for (; orig_auxv->a_type != AT_NULL; auxv++, orig_auxv++) {
631 *auxv = *orig_auxv;
634 switch(auxv->a_type) {
655 auxv->a_type = AT_IGNORE;
657 auxv->u.a_val = info->phdr;
662 auxv->a_type = AT_IGNORE;
664 auxv->u.a_val = info->phnum;
668 /* When gdbserver sends the auxv to gdb, the AT_BASE has
676 auxv->a_type = AT_IGNORE;
678 auxv->u.a_val = info->interp_base;
684 auxv->u.a_ptr = copy_str(&strtab, orig_auxv->u.a_ptr);
688 auxv->u.a_val = info->entry;
693 { Bool has_neon = (auxv->u.a_val & VKI_HWCAP_NEON) > 0;
695 "ARM has-neon from-auxv: %s\n",
699 Bool has_tls = (auxv->u.a_val & VKI_HWCAP_TLS) > 0;
701 "ARM has-tls from-auxv: %s\n",
716 if (auxv->u.a_val > 0) {
717 VG_(machine_ppc32_set_clszB)( auxv->u.a_val );
720 (UInt)auxv->u.a_val, (UInt)auxv->a_type );
724 if (auxv->u.a_val > 0) {
725 VG_(machine_ppc64_set_clszB)( auxv->u.a_val );
728 (UInt)auxv->u.a_val, (UInt)auxv->a_type );
745 auxv->u.a_val = 0;
750 auxv->a_type = AT_IGNORE;
756 const NSegment* ehdrseg = VG_(am_find_nsegment)((Addr)auxv->u.a_ptr);
759 auxv->a_type = AT_IGNORE;
768 auxv->u.a_ptr = strtab;
775 auxv->u.a_ptr = copy_str(&strtab, VG_(args_the_exename));
781 "stomping auxv entry %lld\n",
782 (ULong)auxv->a_type);
783 auxv->a_type = AT_IGNORE;
787 *auxv = *orig_auxv;
788 vg_assert(auxv->a_type == AT_NULL);