Lines Matching refs:eisd

48 #include "vms/eisd.h"
328 /* Simply linked list of eisd. */
332 /* Simply linked list of eisd for shared libraries. */
358 /* Corresponding eisd. Used only while generating executables. */
359 struct vms_internal_eisd_map *eisd;
504 vms_debug2 ((4, "EIHD size %d imgtype %d symvva 0x%lx eisd %d eihs %d\n",
524 struct vms_eisd *eisd;
539 eisd = (struct vms_eisd *) (PRIV (recrd.rec) + offset);
540 rec_size = bfd_getl32 (eisd->eisdsize);
560 size = bfd_getl32 (eisd->secsize);
561 vaddr = bfd_getl64 (eisd->virt_addr);
562 flags = bfd_getl32 (eisd->flags);
563 vbn = bfd_getl32 (eisd->vbn);
599 name = _bfd_vms_save_counted_string (abfd, eisd->gblnam,
602 name = _bfd_vms_save_counted_string (abfd, eisd->gblnam,
611 else if (eisd->type == EISD__K_USRSTACK)
3065 bfd_putl32 (src->u.eisd.majorid, dst->majorid);
3066 bfd_putl32 (src->u.eisd.minorid, dst->minorid);
3067 bfd_putl32 (src->u.eisd.eisdsize, dst->eisdsize);
3068 if (src->u.eisd.eisdsize <= EISD__K_LENEND)
3070 bfd_putl32 (src->u.eisd.secsize, dst->secsize);
3071 bfd_putl64 (src->u.eisd.virt_addr, dst->virt_addr);
3072 bfd_putl32 (src->u.eisd.flags, dst->flags);
3073 bfd_putl32 (src->u.eisd.vbn, dst->vbn);
3074 dst->pfc = src->u.eisd.pfc;
3075 dst->matchctl = src->u.eisd.matchctl;
3076 dst->type = src->u.eisd.type;
3078 if (src->u.eisd.flags & EISD__M_GBL)
3086 /* Append EISD to the list of extra eisd for ABFD. */
3089 alpha_vms_append_extra_eisd (bfd *abfd, struct vms_internal_eisd_map *eisd)
3091 eisd->next = NULL;
3093 PRIV (gbl_eisd_head) = eisd;
3095 PRIV (gbl_eisd_tail)->next = eisd;
3096 PRIV (gbl_eisd_tail) = eisd;
3105 struct vms_internal_eisd_map *eisd;
3115 eisd = bfd_alloc (abfd, sizeof (*eisd));
3116 if (eisd == NULL)
3120 eisd->u.gbl_eisd.common.majorid = EISD__K_MAJORID;
3121 eisd->u.gbl_eisd.common.minorid = EISD__K_MINORID;
3122 eisd->u.gbl_eisd.common.eisdsize = (EISD__K_LEN + 4 + namlen + 5 + 3) & ~3;
3123 eisd->u.gbl_eisd.common.secsize = VMS_BLOCK_SIZE; /* Must not be 0. */
3124 eisd->u.gbl_eisd.common.virt_addr = 0;
3125 eisd->u.gbl_eisd.common.flags = EISD__M_GBL;
3126 eisd->u.gbl_eisd.common.vbn = 0;
3127 eisd->u.gbl_eisd.common.pfc = 0;
3128 eisd->u.gbl_eisd.common.matchctl = PRIV2 (shrimg, matchctl);
3129 eisd->u.gbl_eisd.common.type = EISD__K_SHRPIC;
3131 eisd->u.gbl_eisd.ident = PRIV2 (shrimg, ident);
3132 eisd->u.gbl_eisd.gblnam[0] = namlen + 4;
3133 memcpy (eisd->u.gbl_eisd.gblnam + 1, PRIV2 (shrimg, hdr_data.hdr_t_name),
3135 memcpy (eisd->u.gbl_eisd.gblnam + 1 + namlen, "_001", 4);
3138 alpha_vms_append_extra_eisd (abfd, eisd);
3149 struct vms_internal_eisd_map *eisd;
3155 BFD_ASSERT (vms_section_data (sec)->eisd == NULL);
3156 eisd = bfd_alloc (abfd, sizeof (*eisd));
3157 if (eisd == NULL)
3159 vms_section_data (sec)->eisd = eisd;
3162 eisd->u.eisd.majorid = EISD__K_MAJORID;
3163 eisd->u.eisd.minorid = EISD__K_MINORID;
3164 eisd->u.eisd.eisdsize = EISD__K_LEN;
3165 eisd->u.eisd.secsize =
3167 eisd->u.eisd.virt_addr = sec->vma;
3168 eisd->u.eisd.flags = 0;
3169 eisd->u.eisd.vbn = 0; /* To be later defined. */
3170 eisd->u.eisd.pfc = 0; /* Default. */
3171 eisd->u.eisd.matchctl = EISD__K_MATALL;
3172 eisd->u.eisd.type = EISD__K_NORMAL;
3175 eisd->u.eisd.flags |= EISD__M_EXE;
3177 eisd->u.eisd.flags |= EISD__M_WRT | EISD__M_CRF;
3181 eisd->u.eisd.flags |= EISD__M_WRT | EISD__M_CRF;
3185 eisd->u.eisd.flags |= EISD__M_DZRO;
3186 eisd->u.eisd.flags &= ~EISD__M_CRF;
3191 eisd->u.eisd.flags |= EISD__M_FIXUPVEC;
3195 eisd->next = NULL;
3197 PRIV (eisd_head) = eisd;
3199 PRIV (eisd_tail)->next = eisd;
3200 PRIV (eisd_tail) = eisd;
3217 struct vms_internal_eisd_map *eisd;
3342 /* Add end of eisd. */
3345 eisd = bfd_zalloc (abfd, sizeof (*eisd));
3346 if (eisd == NULL)
3348 eisd->u.eisd.majorid = 0;
3349 eisd->u.eisd.minorid = 0;
3350 eisd->u.eisd.eisdsize = 0;
3351 alpha_vms_append_extra_eisd (abfd, eisd);
3355 for (eisd = first_eisd; eisd; eisd = eisd->next)
3362 if (room < eisd->u.eisd.eisdsize + EISD__K_LENEND)
3365 eisd->file_pos = PRIV (file_pos);
3366 PRIV (file_pos) += eisd->u.eisd.eisdsize;
3368 if (eisd->u.eisd.flags & EISD__M_FIXUPVEC)
3369 bfd_putl64 (eisd->u.eisd.virt_addr, eihd.iafva);
3375 /* Real size of end of eisd marker. */
3389 eisd = vms_section_data (sec)->eisd;
3395 if (eisd != NULL)
3396 eisd->u.eisd.vbn = (sec->filepos / VMS_BLOCK_SIZE) + 1;
3423 for (eisd = first_eisd; eisd && eisd->file_pos < VMS_BLOCK_SIZE;
3424 eisd = eisd->next)
3426 (eisd, (struct vms_eisd *)((char *)&eihd + eisd->file_pos));
3433 /* Write remaining eisd. */
3434 if (eisd != NULL)
3440 while (eisd != NULL)
3443 (eisd,
3444 (struct vms_eisd *)(blk + (eisd->file_pos % VMS_BLOCK_SIZE)));
3446 next_eisd = eisd->next;
3449 != eisd->file_pos / VMS_BLOCK_SIZE))
3456 eisd = next_eisd;
8210 struct vms_eisd eisd;
8216 || bfd_bread (&eisd, sizeof (eisd), abfd) != sizeof (eisd))
8221 len = (unsigned)bfd_getl32 (eisd.eisdsize);
8231 (unsigned)bfd_getl32 (eisd.majorid),
8232 (unsigned)bfd_getl32 (eisd.minorid),
8238 (unsigned)bfd_getl32 (eisd.virt_addr + 4),
8239 (unsigned)bfd_getl32 (eisd.virt_addr + 0),
8240 (unsigned)bfd_getl32 (eisd.secsize));
8241 val = (unsigned)bfd_getl32 (eisd.flags);
8276 eiaf_vbn = bfd_getl32 (eisd.vbn);
8277 eiaf_size = bfd_getl32 (eisd.secsize);
8281 (unsigned)bfd_getl32 (eisd.vbn),
8282 eisd.pfc, eisd.matchctl, eisd.type);
8283 switch (eisd.type)
8311 (unsigned)bfd_getl32 (eisd.ident),
8312 eisd.gblnam[0], eisd.gblnam + 1);