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)
3067 bfd_putl32 (src->u.eisd.majorid, dst->majorid);
3068 bfd_putl32 (src->u.eisd.minorid, dst->minorid);
3069 bfd_putl32 (src->u.eisd.eisdsize, dst->eisdsize);
3070 if (src->u.eisd.eisdsize <= EISD__K_LENEND)
3072 bfd_putl32 (src->u.eisd.secsize, dst->secsize);
3073 bfd_putl64 (src->u.eisd.virt_addr, dst->virt_addr);
3074 bfd_putl32 (src->u.eisd.flags, dst->flags);
3075 bfd_putl32 (src->u.eisd.vbn, dst->vbn);
3076 dst->pfc = src->u.eisd.pfc;
3077 dst->matchctl = src->u.eisd.matchctl;
3078 dst->type = src->u.eisd.type;
3080 if (src->u.eisd.flags & EISD__M_GBL)
3088 /* Append EISD to the list of extra eisd for ABFD. */
3091 alpha_vms_append_extra_eisd (bfd *abfd, struct vms_internal_eisd_map *eisd)
3093 eisd->next = NULL;
3095 PRIV (gbl_eisd_head) = eisd;
3097 PRIV (gbl_eisd_tail)->next = eisd;
3098 PRIV (gbl_eisd_tail) = eisd;
3107 struct vms_internal_eisd_map *eisd;
3117 eisd = bfd_alloc (abfd, sizeof (*eisd));
3118 if (eisd == NULL)
3122 eisd->u.gbl_eisd.common.majorid = EISD__K_MAJORID;
3123 eisd->u.gbl_eisd.common.minorid = EISD__K_MINORID;
3124 eisd->u.gbl_eisd.common.eisdsize = (EISD__K_LEN + 4 + namlen + 5 + 3) & ~3;
3125 eisd->u.gbl_eisd.common.secsize = VMS_BLOCK_SIZE; /* Must not be 0. */
3126 eisd->u.gbl_eisd.common.virt_addr = 0;
3127 eisd->u.gbl_eisd.common.flags = EISD__M_GBL;
3128 eisd->u.gbl_eisd.common.vbn = 0;
3129 eisd->u.gbl_eisd.common.pfc = 0;
3130 eisd->u.gbl_eisd.common.matchctl = PRIV2 (shrimg, matchctl);
3131 eisd->u.gbl_eisd.common.type = EISD__K_SHRPIC;
3133 eisd->u.gbl_eisd.ident = PRIV2 (shrimg, ident);
3134 eisd->u.gbl_eisd.gblnam[0] = namlen + 4;
3135 memcpy (eisd->u.gbl_eisd.gblnam + 1, PRIV2 (shrimg, hdr_data.hdr_t_name),
3137 memcpy (eisd->u.gbl_eisd.gblnam + 1 + namlen, "_001", 4);
3140 alpha_vms_append_extra_eisd (abfd, eisd);
3151 struct vms_internal_eisd_map *eisd;
3157 BFD_ASSERT (vms_section_data (sec)->eisd == NULL);
3158 eisd = bfd_alloc (abfd, sizeof (*eisd));
3159 if (eisd == NULL)
3161 vms_section_data (sec)->eisd = eisd;
3164 eisd->u.eisd.majorid = EISD__K_MAJORID;
3165 eisd->u.eisd.minorid = EISD__K_MINORID;
3166 eisd->u.eisd.eisdsize = EISD__K_LEN;
3167 eisd->u.eisd.secsize =
3169 eisd->u.eisd.virt_addr = sec->vma;
3170 eisd->u.eisd.flags = 0;
3171 eisd->u.eisd.vbn = 0; /* To be later defined. */
3172 eisd->u.eisd.pfc = 0; /* Default. */
3173 eisd->u.eisd.matchctl = EISD__K_MATALL;
3174 eisd->u.eisd.type = EISD__K_NORMAL;
3177 eisd->u.eisd.flags |= EISD__M_EXE;
3179 eisd->u.eisd.flags |= EISD__M_WRT | EISD__M_CRF;
3183 eisd->u.eisd.flags |= EISD__M_WRT | EISD__M_CRF;
3187 eisd->u.eisd.flags |= EISD__M_DZRO;
3188 eisd->u.eisd.flags &= ~EISD__M_CRF;
3193 eisd->u.eisd.flags |= EISD__M_FIXUPVEC;
3197 eisd->next = NULL;
3199 PRIV (eisd_head) = eisd;
3201 PRIV (eisd_tail)->next = eisd;
3202 PRIV (eisd_tail) = eisd;
3219 struct vms_internal_eisd_map *eisd;
3344 /* Add end of eisd. */
3347 eisd = bfd_zalloc (abfd, sizeof (*eisd));
3348 if (eisd == NULL)
3350 eisd->u.eisd.majorid = 0;
3351 eisd->u.eisd.minorid = 0;
3352 eisd->u.eisd.eisdsize = 0;
3353 alpha_vms_append_extra_eisd (abfd, eisd);
3357 for (eisd = first_eisd; eisd; eisd = eisd->next)
3364 if (room < eisd->u.eisd.eisdsize + EISD__K_LENEND)
3367 eisd->file_pos = PRIV (file_pos);
3368 PRIV (file_pos) += eisd->u.eisd.eisdsize;
3370 if (eisd->u.eisd.flags & EISD__M_FIXUPVEC)
3371 bfd_putl64 (eisd->u.eisd.virt_addr, eihd.iafva);
3377 /* Real size of end of eisd marker. */
3392 eisd = vms_section_data (sec)->eisd;
3398 if (eisd != NULL)
3399 eisd->u.eisd.vbn = (sec->filepos / VMS_BLOCK_SIZE) + 1;
3426 for (eisd = first_eisd; eisd && eisd->file_pos < VMS_BLOCK_SIZE;
3427 eisd = eisd->next)
3429 (eisd, (struct vms_eisd *)((char *)&eihd + eisd->file_pos));
3436 /* Write remaining eisd. */
3437 if (eisd != NULL)
3443 while (eisd != NULL)
3446 (eisd,
3447 (struct vms_eisd *)(blk + (eisd->file_pos % VMS_BLOCK_SIZE)));
3449 next_eisd = eisd->next;
3452 != eisd->file_pos / VMS_BLOCK_SIZE))
3459 eisd = next_eisd;
8379 struct vms_eisd eisd;
8385 || bfd_read (&eisd, sizeof (eisd), abfd) != sizeof (eisd))
8390 len = (unsigned)bfd_getl32 (eisd.eisdsize);
8400 (unsigned)bfd_getl32 (eisd.majorid),
8401 (unsigned)bfd_getl32 (eisd.minorid),
8407 (unsigned)bfd_getl32 (eisd.virt_addr + 4),
8408 (unsigned)bfd_getl32 (eisd.virt_addr + 0),
8409 (unsigned)bfd_getl32 (eisd.secsize));
8410 val = (unsigned)bfd_getl32 (eisd.flags);
8445 eiaf_vbn = bfd_getl32 (eisd.vbn);
8446 eiaf_size = bfd_getl32 (eisd.secsize);
8450 (unsigned)bfd_getl32 (eisd.vbn),
8451 eisd.pfc, eisd.matchctl, eisd.type);
8452 switch (eisd.type)
8480 (unsigned)bfd_getl32 (eisd.ident),
8481 eisd.gblnam[0], eisd.gblnam + 1);