#include "module_list.h"
#define LINKER_MODULES_HEADER ("_" MODULES_HEADER)
-/*
- * we use the fact that DOFF section records are shaped just like
- * ldr_section_info to reduce our section storage usage. This macro marks
- * the places where that assumption is made
- */
-#define DOFFSEC_IS_LDRSEC(pdoffsec) ((struct ldr_section_info *)(pdoffsec))
-
/*
* forward references
*/
#if BITS_PER_AU <= BITS_PER_BYTE
/* attempt to insert the name of this section */
if (soffset < dlthis->dfile_hdr.df_strtab_size)
- DOFFSEC_IS_LDRSEC(shp)->name = dlthis->str_head +
- soffset;
+ ((struct ldr_section_info *)shp)->name =
+ dlthis->str_head + soffset;
else {
dload_error(dlthis, "Bad name offset in section %d",
curr_sect);
- DOFFSEC_IS_LDRSEC(shp)->name = NULL;
+ ((struct ldr_section_info *)shp)->name = NULL;
}
#endif
/* allocate target storage for sections that require it */
if (ds_needs_allocation(shp)) {
- *asecs = *DOFFSEC_IS_LDRSEC(shp);
+ *asecs = *(struct ldr_section_info *)shp;
asecs->context = 0; /* zero the context field */
#if BITS_PER_AU > BITS_PER_BYTE
asecs->name = unpack_name(dlthis, soffset);
if (curr_sect < dlthis->allocated_secn_count)
dlthis->delta_runaddr = sptr->ds_paddr;
else {
- lptr = DOFFSEC_IS_LDRSEC(sptr);
+ lptr = (struct ldr_section_info *)sptr;
dlthis->delta_runaddr = 0;
}
dlthis->image_secn = lptr;
goto loop_cont;
if (curr_sect >= dlthis->allocated_secn_count)
- lptr = DOFFSEC_IS_LDRSEC(sptr);
+ lptr = (struct ldr_section_info *)sptr;
if (cinit_processed) {
/*Don't clear BSS after load-time initialization */
#ifndef _DOFF_H
#define _DOFF_H
-#ifndef UINT32_C
-#define UINT32_C(zzz) ((u32)zzz)
-#endif
-#define BYTE_RESHUFFLE_VALUE UINT32_C(0x00010203)
+#define BYTE_RESHUFFLE_VALUE 0x00010203
/* DOFF file header containing fields categorizing the remainder of the file */
struct doff_filehdr_t {
/* Return the address/size >= to addr that is at a 32-bit boundary */
/* This assumes that a byte is 8 bits */
-#define DOFF_ALIGN(addr) (((addr) + 3) & ~UINT32_C(3))
+#define DOFF_ALIGN(addr) (((addr) + 3) & ~3UL)
/**************************************************************************** */
/* */
static const char stbl[] = { "Bad string table offset " FMT_UI32 };
#endif
-/*
- * we use the fact that DOFF section records are shaped just like
- * ldr_section_info to reduce our section storage usage. These macros
- * marks the places where that assumption is made
- */
-#define DOFFSEC_IS_LDRSEC(pdoffsec) ((struct ldr_section_info *)(pdoffsec))
-#define LDRSEC_IS_DOFFSEC(ldrsec) ((struct doff_scnhdr_t *)(ldrsec))
-
/************************************************************** */
/********************* SUPPORT FUNCTIONS ********************** */
/************************************************************** */
/* For each sec, copy and expand its name */
curr = xstrings;
for (sec = 0; sec < dlthis->dfile_hdr.df_no_scns; sec++) {
- shp = DOFFSEC_IS_LDRSEC(&dlthis->sect_hdrs[sec]);
+ shp = (struct ldr_section_info *)&dlthis->sect_hdrs[sec];
next = unpack_sec_name(dlthis, *(u32 *) &shp->name, curr);
if (next == NULL)
break; /* error */
/* to a pointer into the string table. */
for (sec = 0; sec < dlthis->dfile_hdr.df_no_scns; sec++) {
struct ldr_section_info *shp =
- DOFFSEC_IS_LDRSEC(&dlthis->sect_hdrs[sec]);
+ (struct ldr_section_info *)&dlthis->sect_hdrs[sec];
shp->name = dlthis->str_head + *(u32 *) &shp->name;
}
#endif
return false;
for (sec = 0; sec < dlthis->dfile_hdr.df_no_scns; sec++) {
- shp = DOFFSEC_IS_LDRSEC(&dlthis->sect_hdrs[sec]);
+ shp = (struct ldr_section_info *)&dlthis->sect_hdrs[sec];
if (strcmp(section_name, shp->name) == 0) {
*section_info = shp;
return true;
dlthis = (struct dload_state *)minfo;
if (!dlthis)
return false;
- sptr = LDRSEC_IS_DOFFSEC(section_info);
+ sptr = (struct doff_scnhdr_t *)section_info;
if (sptr == NULL)
return false;
fieldsz -= 1; /* avoid nastiness with 32-bit shift of 32-bit value */
/* clip the bits */
- mask = ((UINT32_C(2) << fieldsz) - 1);
+ mask = (2UL << fieldsz) - 1;
objval = (val & mask);
/* * store the bits through the specified mask */
if (TARGET_BIG_ENDIAN) {
/* Tables generated for c6000 */
-#define HASH_FUNC(zz) (((((zz) + 1) * UINT32_C(1845)) >> 11) & 63)
+#define HASH_FUNC(zz) (((((zz) + 1) * 1845UL) >> 11) & 63)
#define HASH_L(zz) ((zz) >> 8)
#define HASH_I(zz) ((zz) & 0xFF)
#define C6X_TRAMP_MAX_RELOS 8
/* THIS HASH FUNCTION MUST MATCH THE ONE reloc_table_c6000.c */
-#define HASH_FUNC(zz) (((((zz) + 1) * UINT32_C(1845)) >> 11) & 63)
+#define HASH_FUNC(zz) (((((zz) + 1) * 1845UL) >> 11) & 63)
/* THIS MUST MATCH reloc_record_t FOR A SYMBOL BASED RELO */
struct c6000_relo_record {
/* Max buffer length */
#define MAXEXPR 128
-#ifndef UINT32_C
-#define UINT32_C(zzz) ((uint32_t)zzz)
-#endif
-#define DOFF_ALIGN(x) (((x) + 3) & ~UINT32_C(3))
+#define DOFF_ALIGN(x) (((x) + 3) & ~3UL)
/*
* ======== struct dbll_tar_obj* ========