Lines Matching refs:eisd

48 #include "vms/eisd.h"
329 /* Simply linked list of eisd. */
333 /* Simply linked list of eisd for shared libraries. */
359 /* Corresponding eisd. Used only while generating executables. */
360 struct vms_internal_eisd_map *eisd;
505 vms_debug2 ((4, "EIHD size %d imgtype %d symvva 0x%lx eisd %d eihs %d\n",
525 struct vms_eisd *eisd;
540 eisd = (struct vms_eisd *) (PRIV (recrd.rec) + offset);
541 rec_size = bfd_getl32 (eisd->eisdsize);
561 size = bfd_getl32 (eisd->secsize);
562 vaddr = bfd_getl64 (eisd->virt_addr);
563 flags = bfd_getl32 (eisd->flags);
564 vbn = bfd_getl32 (eisd->vbn);
600 name = _bfd_vms_save_counted_string (abfd, eisd->gblnam,
603 name = _bfd_vms_save_counted_string (abfd, eisd->gblnam,
612 else if (eisd->type == EISD__K_USRSTACK)
3068 bfd_putl32 (src->u.eisd.majorid, dst->majorid);
3069 bfd_putl32 (src->u.eisd.minorid, dst->minorid);
3070 bfd_putl32 (src->u.eisd.eisdsize, dst->eisdsize);
3071 if (src->u.eisd.eisdsize <= EISD__K_LENEND)
3073 bfd_putl32 (src->u.eisd.secsize, dst->secsize);
3074 bfd_putl64 (src->u.eisd.virt_addr, dst->virt_addr);
3075 bfd_putl32 (src->u.eisd.flags, dst->flags);
3076 bfd_putl32 (src->u.eisd.vbn, dst->vbn);
3077 dst->pfc = src->u.eisd.pfc;
3078 dst->matchctl = src->u.eisd.matchctl;
3079 dst->type = src->u.eisd.type;
3081 if (src->u.eisd.flags & EISD__M_GBL)
3089 /* Append EISD to the list of extra eisd for ABFD. */
3092 alpha_vms_append_extra_eisd (bfd *abfd, struct vms_internal_eisd_map *eisd)
3094 eisd->next = NULL;
3096 PRIV (gbl_eisd_head) = eisd;
3098 PRIV (gbl_eisd_tail)->next = eisd;
3099 PRIV (gbl_eisd_tail) = eisd;
3108 struct vms_internal_eisd_map *eisd;
3118 eisd = bfd_alloc (abfd, sizeof (*eisd));
3119 if (eisd == NULL)
3123 eisd->u.gbl_eisd.common.majorid = EISD__K_MAJORID;
3124 eisd->u.gbl_eisd.common.minorid = EISD__K_MINORID;
3125 eisd->u.gbl_eisd.common.eisdsize = (EISD__K_LEN + 4 + namlen + 5 + 3) & ~3;
3126 eisd->u.gbl_eisd.common.secsize = VMS_BLOCK_SIZE; /* Must not be 0. */
3127 eisd->u.gbl_eisd.common.virt_addr = 0;
3128 eisd->u.gbl_eisd.common.flags = EISD__M_GBL;
3129 eisd->u.gbl_eisd.common.vbn = 0;
3130 eisd->u.gbl_eisd.common.pfc = 0;
3131 eisd->u.gbl_eisd.common.matchctl = PRIV2 (shrimg, matchctl);
3132 eisd->u.gbl_eisd.common.type = EISD__K_SHRPIC;
3134 eisd->u.gbl_eisd.ident = PRIV2 (shrimg, ident);
3135 eisd->u.gbl_eisd.gblnam[0] = namlen + 4;
3136 memcpy (eisd->u.gbl_eisd.gblnam + 1, PRIV2 (shrimg, hdr_data.hdr_t_name),
3138 memcpy (eisd->u.gbl_eisd.gblnam + 1 + namlen, "_001", 4);
3141 alpha_vms_append_extra_eisd (abfd, eisd);
3152 struct vms_internal_eisd_map *eisd;
3158 BFD_ASSERT (vms_section_data (sec)->eisd == NULL);
3159 eisd = bfd_alloc (abfd, sizeof (*eisd));
3160 if (eisd == NULL)
3162 vms_section_data (sec)->eisd = eisd;
3165 eisd->u.eisd.majorid = EISD__K_MAJORID;
3166 eisd->u.eisd.minorid = EISD__K_MINORID;
3167 eisd->u.eisd.eisdsize = EISD__K_LEN;
3168 eisd->u.eisd.secsize =
3170 eisd->u.eisd.virt_addr = sec->vma;
3171 eisd->u.eisd.flags = 0;
3172 eisd->u.eisd.vbn = 0; /* To be later defined. */
3173 eisd->u.eisd.pfc = 0; /* Default. */
3174 eisd->u.eisd.matchctl = EISD__K_MATALL;
3175 eisd->u.eisd.type = EISD__K_NORMAL;
3178 eisd->u.eisd.flags |= EISD__M_EXE;
3180 eisd->u.eisd.flags |= EISD__M_WRT | EISD__M_CRF;
3184 eisd->u.eisd.flags |= EISD__M_WRT | EISD__M_CRF;
3188 eisd->u.eisd.flags |= EISD__M_DZRO;
3189 eisd->u.eisd.flags &= ~EISD__M_CRF;
3194 eisd->u.eisd.flags |= EISD__M_FIXUPVEC;
3198 eisd->next = NULL;
3200 PRIV (eisd_head) = eisd;
3202 PRIV (eisd_tail)->next = eisd;
3203 PRIV (eisd_tail) = eisd;
3220 struct vms_internal_eisd_map *eisd;
3345 /* Add end of eisd. */
3348 eisd = bfd_zalloc (abfd, sizeof (*eisd));
3349 if (eisd == NULL)
3351 eisd->u.eisd.majorid = 0;
3352 eisd->u.eisd.minorid = 0;
3353 eisd->u.eisd.eisdsize = 0;
3354 alpha_vms_append_extra_eisd (abfd, eisd);
3358 for (eisd = first_eisd; eisd; eisd = eisd->next)
3365 if (room < eisd->u.eisd.eisdsize + EISD__K_LENEND)
3368 eisd->file_pos = PRIV (file_pos);
3369 PRIV (file_pos) += eisd->u.eisd.eisdsize;
3371 if (eisd->u.eisd.flags & EISD__M_FIXUPVEC)
3372 bfd_putl64 (eisd->u.eisd.virt_addr, eihd.iafva);
3378 /* Real size of end of eisd marker. */
3393 eisd = vms_section_data (sec)->eisd;
3399 if (eisd != NULL)
3400 eisd->u.eisd.vbn = (sec->filepos / VMS_BLOCK_SIZE) + 1;
3427 for (eisd = first_eisd; eisd && eisd->file_pos < VMS_BLOCK_SIZE;
3428 eisd = eisd->next)
3430 (eisd, (struct vms_eisd *)((char *)&eihd + eisd->file_pos));
3437 /* Write remaining eisd. */
3438 if (eisd != NULL)
3444 while (eisd != NULL)
3447 (eisd,
3448 (struct vms_eisd *)(blk + (eisd->file_pos % VMS_BLOCK_SIZE)));
3450 next_eisd = eisd->next;
3453 != eisd->file_pos / VMS_BLOCK_SIZE))
3460 eisd = next_eisd;
8347 struct vms_eisd eisd;
8353 || bfd_bread (&eisd, sizeof (eisd), abfd) != sizeof (eisd))
8358 len = (unsigned)bfd_getl32 (eisd.eisdsize);
8368 (unsigned)bfd_getl32 (eisd.majorid),
8369 (unsigned)bfd_getl32 (eisd.minorid),
8375 (unsigned)bfd_getl32 (eisd.virt_addr + 4),
8376 (unsigned)bfd_getl32 (eisd.virt_addr + 0),
8377 (unsigned)bfd_getl32 (eisd.secsize));
8378 val = (unsigned)bfd_getl32 (eisd.flags);
8413 eiaf_vbn = bfd_getl32 (eisd.vbn);
8414 eiaf_size = bfd_getl32 (eisd.secsize);
8418 (unsigned)bfd_getl32 (eisd.vbn),
8419 eisd.pfc, eisd.matchctl, eisd.type);
8420 switch (eisd.type)
8448 (unsigned)bfd_getl32 (eisd.ident),
8449 eisd.gblnam[0], eisd.gblnam + 1);