diff options
Diffstat (limited to 'bfd/vms-lib.c')
-rw-r--r-- | bfd/vms-lib.c | 188 |
1 files changed, 94 insertions, 94 deletions
diff --git a/bfd/vms-lib.c b/bfd/vms-lib.c index 72038b4..dc23df3 100644 --- a/bfd/vms-lib.c +++ b/bfd/vms-lib.c @@ -125,12 +125,12 @@ struct carsym_mem /* If true, the table was reallocated on the heap. If false, it is still in the BFD's objalloc. */ - bfd_boolean realloced; + bool realloced; }; /* Simply add a name to the index. */ -static bfd_boolean +static bool vms_add_index (struct carsym_mem *cs, char *name, unsigned int idx_vbn, unsigned int idx_off) { @@ -142,7 +142,7 @@ vms_add_index (struct carsym_mem *cs, char *name, if (cs->max > -33u / 2 || cs->max >= cs->limit) { bfd_set_error (bfd_error_file_too_big); - return FALSE; + return false; } cs->max = 2 * cs->max + 32; if (cs->max > cs->limit) @@ -150,14 +150,14 @@ vms_add_index (struct carsym_mem *cs, char *name, if (_bfd_mul_overflow (cs->max, sizeof (struct carsym), &amt)) { bfd_set_error (bfd_error_file_too_big); - return FALSE; + return false; } if (!cs->realloced) { n = bfd_malloc (amt); if (n == NULL) - return FALSE; + return false; memcpy (n, cs->idx, cs->nbr * sizeof (struct carsym)); /* And unfortunately we can't free cs->idx. */ } @@ -165,21 +165,21 @@ vms_add_index (struct carsym_mem *cs, char *name, { n = bfd_realloc_or_free (cs->idx, amt); if (n == NULL) - return FALSE; + return false; } cs->idx = n; - cs->realloced = TRUE; + cs->realloced = true; } cs->idx[cs->nbr].file_offset = (idx_vbn - 1) * VMS_BLOCK_SIZE + idx_off; cs->idx[cs->nbr].name = name; cs->nbr++; - return TRUE; + return true; } /* Follow all member of a lns list (pointed by RFA) and add indexes for NAME. Return FALSE in case of error. */ -static bfd_boolean +static bool vms_add_indexes_from_list (bfd *abfd, struct carsym_mem *cs, char *name, struct vms_rfa *rfa) { @@ -191,18 +191,18 @@ vms_add_indexes_from_list (bfd *abfd, struct carsym_mem *cs, char *name, { vbn = bfd_getl32 (rfa->vbn); if (vbn == 0) - return TRUE; + return true; /* Read the LHS. */ off = (vbn - 1) * VMS_BLOCK_SIZE + bfd_getl16 (rfa->offset); if (bfd_seek (abfd, off, SEEK_SET) != 0 || bfd_bread (&lns, sizeof (lns), abfd) != sizeof (lns)) - return FALSE; + return false; if (!vms_add_index (cs, name, bfd_getl32 (lns.modrfa.vbn), bfd_getl16 (lns.modrfa.offset))) - return FALSE; + return false; rfa = &lns.nxtrfa; } @@ -210,7 +210,7 @@ vms_add_indexes_from_list (bfd *abfd, struct carsym_mem *cs, char *name, /* Read block VBN from ABFD and store it into BLK. Return FALSE in case of error. */ -static bfd_boolean +static bool vms_read_block (bfd *abfd, unsigned int vbn, void *blk) { file_ptr off; @@ -218,14 +218,14 @@ vms_read_block (bfd *abfd, unsigned int vbn, void *blk) off = (vbn - 1) * VMS_BLOCK_SIZE; if (bfd_seek (abfd, off, SEEK_SET) != 0 || bfd_bread (blk, VMS_BLOCK_SIZE, abfd) != VMS_BLOCK_SIZE) - return FALSE; + return false; - return TRUE; + return true; } /* Write the content of BLK to block VBN of ABFD. Return FALSE in case of error. */ -static bfd_boolean +static bool vms_write_block (bfd *abfd, unsigned int vbn, void *blk) { file_ptr off; @@ -233,15 +233,15 @@ vms_write_block (bfd *abfd, unsigned int vbn, void *blk) off = (vbn - 1) * VMS_BLOCK_SIZE; if (bfd_seek (abfd, off, SEEK_SET) != 0 || bfd_bwrite (blk, VMS_BLOCK_SIZE, abfd) != VMS_BLOCK_SIZE) - return FALSE; + return false; - return TRUE; + return true; } /* Read index block VBN and put the entry in **IDX (which is updated). If the entry is indirect, recurse. */ -static bfd_boolean +static bool vms_traverse_index (bfd *abfd, unsigned int vbn, struct carsym_mem *cs, unsigned int recur_count) { @@ -254,19 +254,19 @@ vms_traverse_index (bfd *abfd, unsigned int vbn, struct carsym_mem *cs, if (recur_count == 100) { bfd_set_error (bfd_error_bad_value); - return FALSE; + return false; } /* Read the index block. */ BFD_ASSERT (sizeof (indexdef) == VMS_BLOCK_SIZE); if (!vms_read_block (abfd, vbn, &indexdef)) - return FALSE; + return false; /* Traverse it. */ p = &indexdef.keys[0]; n = bfd_getl16 (indexdef.used); if (n > sizeof (indexdef.keys)) - return FALSE; + return false; endp = p + n; while (p < endp) { @@ -302,22 +302,22 @@ vms_traverse_index (bfd *abfd, unsigned int vbn, struct carsym_mem *cs, keyname = ridx->keyname; } else - return FALSE; + return false; /* Illegal value. */ if (idx_vbn == 0) - return FALSE; + return false; /* Point to the next index entry. */ p = keyname + keylen; if (p > endp) - return FALSE; + return false; if (idx_off == RFADEF__C_INDEX) { /* Indirect entry. Recurse. */ if (!vms_traverse_index (abfd, idx_vbn, cs, recur_count + 1)) - return FALSE; + return false; } else { @@ -335,14 +335,14 @@ vms_traverse_index (bfd *abfd, unsigned int vbn, struct carsym_mem *cs, /* Sanity check. */ if (keylen != sizeof (struct vms_kbn)) - return FALSE; + return false; kbn = (struct vms_kbn *)keyname; keylen = bfd_getl16 (kbn->keylen); name = bfd_alloc (abfd, keylen + 1); if (name == NULL) - return FALSE; + return false; kvbn = bfd_getl32 (kbn->rfa.vbn); koff = bfd_getl16 (kbn->rfa.offset); @@ -352,18 +352,18 @@ vms_traverse_index (bfd *abfd, unsigned int vbn, struct carsym_mem *cs, unsigned int klen; if (!vms_read_block (abfd, kvbn, kblk)) - return FALSE; + return false; if (koff > sizeof (kblk) - sizeof (struct vms_kbn)) - return FALSE; + return false; kbn = (struct vms_kbn *)(kblk + koff); klen = bfd_getl16 (kbn->keylen); if (klen > sizeof (kblk) - koff) - return FALSE; + return false; kvbn = bfd_getl32 (kbn->rfa.vbn); koff = bfd_getl16 (kbn->rfa.offset); if (noff + klen > keylen) - return FALSE; + return false; memcpy (name + noff, kbn + 1, klen); noff += klen; } @@ -371,14 +371,14 @@ vms_traverse_index (bfd *abfd, unsigned int vbn, struct carsym_mem *cs, /* Sanity check. */ if (noff != keylen) - return FALSE; + return false; } else { /* Usual key name. */ name = bfd_alloc (abfd, keylen + 1); if (name == NULL) - return FALSE; + return false; memcpy (name, keyname, keylen); } @@ -392,27 +392,27 @@ vms_traverse_index (bfd *abfd, unsigned int vbn, struct carsym_mem *cs, off = (idx_vbn - 1) * VMS_BLOCK_SIZE + idx_off; if (bfd_seek (abfd, off, SEEK_SET) != 0 || bfd_bread (&lhs, sizeof (lhs), abfd) != sizeof (lhs)) - return FALSE; + return false; /* These extra entries may cause reallocation of CS. */ if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.ng_g_rfa)) - return FALSE; + return false; if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.ng_wk_rfa)) - return FALSE; + return false; if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.g_g_rfa)) - return FALSE; + return false; if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.g_wk_rfa)) - return FALSE; + return false; } else { if (!vms_add_index (cs, name, idx_vbn, idx_off)) - return FALSE; + return false; } } } - return TRUE; + return true; } /* Read index #IDX, which must have NBREL entries. */ @@ -443,7 +443,7 @@ vms_lib_read_index (bfd *abfd, int idx, unsigned int *nbrel) csm.nbr = 0; csm.max = *nbrel; csm.limit = -1u; - csm.realloced = FALSE; + csm.realloced = false; if (filesize != 0) { /* Put an upper bound based on a file full of single char keys. @@ -691,9 +691,9 @@ _bfd_vms_lib_archive_p (bfd *abfd, enum vms_lib_kind kind) } /* The map is always present. Also mark shared image library. */ - abfd->has_armap = TRUE; + abfd->has_armap = true; if (tdata->type == LBR__C_TYP_ESHSTB || tdata->type == LBR__C_TYP_ISHSTB) - abfd->is_thin_archive = TRUE; + abfd->is_thin_archive = true; return _bfd_no_cleanup; @@ -729,14 +729,14 @@ _bfd_vms_lib_txt_archive_p (bfd *abfd) /* Standard bfd function. */ -static bfd_boolean +static bool _bfd_vms_lib_mkarchive (bfd *abfd, enum vms_lib_kind kind) { struct lib_tdata *tdata; tdata = (struct lib_tdata *) bfd_zalloc (abfd, sizeof (struct lib_tdata)); if (tdata == NULL) - return FALSE; + return false; abfd->tdata.any = (void *)tdata; vms_get_time (&tdata->credat_hi, &tdata->credat_lo); @@ -764,16 +764,16 @@ _bfd_vms_lib_mkarchive (bfd *abfd, enum vms_lib_kind kind) tdata->artdata.symdefs = NULL; tdata->cache = NULL; - return TRUE; + return true; } -bfd_boolean +bool _bfd_vms_lib_alpha_mkarchive (bfd *abfd) { return _bfd_vms_lib_mkarchive (abfd, vms_lib_alpha); } -bfd_boolean +bool _bfd_vms_lib_ia64_mkarchive (bfd *abfd) { return _bfd_vms_lib_mkarchive (abfd, vms_lib_ia64); @@ -878,7 +878,7 @@ vms_lib_btell (struct bfd *abfd) /* Read the header of the next data block if all bytes of the current block have been read. */ -static bfd_boolean +static bool vms_lib_read_block (struct bfd *abfd) { struct vms_lib_iovec *vec = (struct vms_lib_iovec *) abfd->iostream; @@ -889,13 +889,13 @@ vms_lib_read_block (struct bfd *abfd) /* Read next block. */ if (bfd_seek (abfd->my_archive, vec->next_block, SEEK_SET) != 0) - return FALSE; + return false; if (bfd_bread (hdr, sizeof (hdr), abfd->my_archive) != sizeof (hdr)) - return FALSE; + return false; vec->next_block = (bfd_getl32 (hdr + 2) - 1) * VMS_BLOCK_SIZE; vec->blk_off = sizeof (hdr); } - return TRUE; + return true; } /* Read NBYTES from ABFD into BUF if not NULL. If BUF is NULL, bytes are @@ -1284,7 +1284,7 @@ static const struct bfd_iovec vms_lib_iovec = { /* Open a library module. FILEPOS is the position of the module header. */ -static bfd_boolean +static bool vms_lib_bopen (bfd *el, file_ptr filepos) { struct vms_lib_iovec *vec; @@ -1296,7 +1296,7 @@ vms_lib_bopen (bfd *el, file_ptr filepos) /* Allocate and initialized the iovec. */ vec = bfd_zalloc (el, sizeof (*vec)); if (vec == NULL) - return FALSE; + return false; el->iostream = vec; el->iovec = &vms_lib_iovec; @@ -1308,34 +1308,34 @@ vms_lib_bopen (bfd *el, file_ptr filepos) vec->next_block = filepos & ~(VMS_BLOCK_SIZE - 1); vec->blk_off = DATA__LENGTH; if (!vms_lib_read_block (el)) - return FALSE; + return false; /* Prepare to read the first record. */ vec->blk_off = filepos & (VMS_BLOCK_SIZE - 1); vec->rec_rem = 0; if (bfd_seek (el->my_archive, filepos, SEEK_SET) != 0) - return FALSE; + return false; /* Read Record length + MHD + align byte. */ len = tdata->mhd_size; if (vms_lib_bread_raw (el, buf, 2) != 2) - return FALSE; + return false; if (bfd_getl16 (buf) != len) - return FALSE; + return false; len = (len + 1) & ~1; BFD_ASSERT (len <= sizeof (buf)); if (vms_lib_bread_raw (el, buf, len) != len) - return FALSE; + return false; /* Get info from mhd. */ mhd = (struct vms_mhd *)buf; /* Check id. */ if (mhd->id != MHD__C_MHDID) - return FALSE; + return false; if (len >= MHD__C_MHDLEN + 1) el->selective_search = (mhd->objstat & MHD__M_SELSRC) ? 1 : 0; el->mtime = vms_rawtime_to_time_t (mhd->datim); - el->mtime_set = TRUE; + el->mtime_set = true; /* Reinit the iovec so that seek() will point to the first record after the mhd. */ @@ -1354,7 +1354,7 @@ vms_lib_bopen (bfd *el, file_ptr filepos) if (vec->dcx_buf == NULL) return -1; } - return TRUE; + return true; } /* Get member MODIDX. Return NULL in case of error. */ @@ -1424,7 +1424,7 @@ _bfd_vms_lib_get_module (bfd *abfd, unsigned int modidx) if (tdata->mhd_size >= offsetof (struct vms_mhd, objstat) + 1) res->selective_search = (mhd->objstat & MHD__M_SELSRC) ? 1 : 0; res->mtime = vms_rawtime_to_time_t (mhd->datim); - res->mtime_set = TRUE; + res->mtime_set = true; arelt->parsed_size = bfd_getl32 (mhd->modsize); @@ -1642,7 +1642,7 @@ lib_index_cmp (const void *lv, const void *rv) /* Get the size of an index entry. */ static unsigned int -get_idxlen (struct lib_index *idx, bfd_boolean is_elfidx) +get_idxlen (struct lib_index *idx, bool is_elfidx) { if (is_elfidx) { @@ -1666,10 +1666,10 @@ get_idxlen (struct lib_index *idx, bfd_boolean is_elfidx) IS_ELFIDX is true for elfidx (ie ia64) indexes layout. Return TRUE on success. */ -static bfd_boolean +static bool vms_write_index (bfd *abfd, struct lib_index *idx, unsigned int nbr, unsigned int *vbn, - unsigned int *topvbn, bfd_boolean is_elfidx) + unsigned int *topvbn, bool is_elfidx) { /* The index is organized as a tree. This function implements a naive algorithm to balance the tree: it fills the leaves, and create a new @@ -1700,7 +1700,7 @@ vms_write_index (bfd *abfd, /* No entries. Very easy to handle. */ if (topvbn != NULL) *topvbn = 0; - return TRUE; + return true; } if (abfd == NULL) @@ -1745,13 +1745,13 @@ vms_write_index (bfd *abfd, if (kbn_vbn != 0) { if (!vms_write_block (abfd, kbn_vbn, kbn_blk)) - return FALSE; + return false; } else { kbn_blk = bfd_malloc (VMS_BLOCK_SIZE); if (kbn_blk == NULL) - return FALSE; + return false; } *(unsigned short *)kbn_blk = 0; } @@ -1863,7 +1863,7 @@ vms_write_index (bfd *abfd, { bfd_putl16 (blk[j].len + blk[j].lastlen, rblk[j]->used); if (!vms_write_block (abfd, blk[j].vbn, rblk[j])) - return FALSE; + return false; } /* Reset this block. */ @@ -1932,7 +1932,7 @@ vms_write_index (bfd *abfd, *topvbn = blk[level - 1].vbn; if (abfd == NULL) - return TRUE; + return true; /* Flush. */ for (j = 1; j < level; j++) @@ -1956,7 +1956,7 @@ vms_write_index (bfd *abfd, /* Write this block on the disk. */ bfd_putl16 (blk[j].len + blk[j].lastlen, rblk[j]->used); if (!vms_write_block (abfd, blk[j].vbn, rblk[j])) - return FALSE; + return false; free (rblk[j]); } @@ -1965,16 +1965,16 @@ vms_write_index (bfd *abfd, if (kbn_vbn != 0) { if (!vms_write_block (abfd, kbn_vbn, kbn_blk)) - return FALSE; + return false; free (kbn_blk); } - return TRUE; + return true; } /* Append data to the data block DATA. Force write if PAD is true. */ -static bfd_boolean +static bool vms_write_data_block (bfd *arch, struct vms_datadef *data, file_ptr *off, const unsigned char *buf, unsigned int len, int pad) { @@ -1998,7 +1998,7 @@ vms_write_data_block (bfd *arch, struct vms_datadef *data, file_ptr *off, bfd_putl32 ((*off / VMS_BLOCK_SIZE) + 2, data->link); if (bfd_bwrite (data, sizeof (*data), arch) != sizeof (*data)) - return FALSE; + return false; *off += DATA__LENGTH - doff; @@ -2006,12 +2006,12 @@ vms_write_data_block (bfd *arch, struct vms_datadef *data, file_ptr *off, break; } } - return TRUE; + return true; } /* Build the symbols index. */ -static bfd_boolean +static bool _bfd_vms_lib_build_map (unsigned int nbr_modules, struct lib_index *modules, unsigned int *res_cnt, @@ -2095,17 +2095,17 @@ _bfd_vms_lib_build_map (unsigned int nbr_modules, *res_cnt = map_count; *res = map; - return TRUE; + return true; error_return: free (syms); free (map); - return FALSE; + return false; } /* Do the hard work: write an archive on the disk. */ -bfd_boolean +bool _bfd_vms_lib_write_archive_contents (bfd *arch) { bfd *current; @@ -2121,7 +2121,7 @@ _bfd_vms_lib_write_archive_contents (bfd *arch) unsigned int vbn; unsigned int mod_idx_vbn; unsigned int sym_idx_vbn; - bfd_boolean is_elfidx = tdata->kind == vms_lib_ia64; + bool is_elfidx = tdata->kind == vms_lib_ia64; unsigned int max_keylen = is_elfidx ? MAX_EKEYLEN : MAX_KEYLEN; /* Count the number of modules (and do a first sanity check). */ @@ -2148,7 +2148,7 @@ _bfd_vms_lib_write_archive_contents (bfd *arch) BFD_ASSERT (tdata->modules == NULL); modules = bfd_alloc (arch, nbr_modules * sizeof (struct lib_index)); if (modules == NULL) - return FALSE; + return false; for (current = arch->archive_head, i = 0; current != NULL; @@ -2157,7 +2157,7 @@ _bfd_vms_lib_write_archive_contents (bfd *arch) unsigned int nl; modules[i].abfd = current; - modules[i].name = vms_get_module_name (bfd_get_filename (current), FALSE); + modules[i].name = vms_get_module_name (bfd_get_filename (current), false); modules[i].ref = 1; /* FIXME: silently truncate long names ? */ @@ -2168,23 +2168,23 @@ _bfd_vms_lib_write_archive_contents (bfd *arch) /* Create the module index. */ vbn = 0; if (!vms_write_index (NULL, modules, nbr_modules, &vbn, NULL, is_elfidx)) - return FALSE; + return false; nbr_mod_iblk = vbn; /* Create symbol index. */ if (!_bfd_vms_lib_build_map (nbr_modules, modules, &nbr_symbols, &symbols)) - return FALSE; + return false; vbn = 0; if (!vms_write_index (NULL, symbols, nbr_symbols, &vbn, NULL, is_elfidx)) - return FALSE; + return false; nbr_sym_iblk = vbn; /* Write modules and remember their position. */ off = (1 + nbr_mod_iblk + nbr_sym_iblk) * VMS_BLOCK_SIZE; if (bfd_seek (arch, off, SEEK_SET) != 0) - return FALSE; + return false; for (i = 0; i < nbr_modules; i++) { @@ -2304,10 +2304,10 @@ _bfd_vms_lib_write_archive_contents (bfd *arch) vbn = 2; if (!vms_write_index (arch, modules, nbr_modules, &vbn, &mod_idx_vbn, is_elfidx)) - return FALSE; + return false; if (!vms_write_index (arch, symbols, nbr_symbols, &vbn, &sym_idx_vbn, is_elfidx)) - return FALSE; + return false; /* Write libary header. */ { @@ -2378,14 +2378,14 @@ _bfd_vms_lib_write_archive_contents (bfd *arch) idd++; if (!vms_write_block (arch, 1, blk)) - return FALSE; + return false; } - return TRUE; + return true; input_err: bfd_set_input_error (current, bfd_get_error ()); - return FALSE; + return false; } /* Add a target for text library. This costs almost nothing and is useful to |