ref: ec76431c51d4d6e5164713210271e42c737625c0
parent: 71961a88a0898d011138a7c9012beaf8af86e5a6
author: Antonio Niño Díaz <[email protected]>
date: Sun Dec 31 10:46:22 EST 2017
Replace C types by stdint.h types Not all occurrences have been replaced, in some cases they have been left as they were before (like in rgbgfx and when they are in the interface of a C standard library function). Signed-off-by: Antonio Niño Díaz <[email protected]>
--- a/include/asm/charmap.h
+++ b/include/asm/charmap.h
@@ -7,14 +7,14 @@
#define CHARMAPLENGTH 16
struct Charmap {
- int count;
+ int32_t count;
char input[MAXCHARMAPS][CHARMAPLENGTH + 1];
char output[MAXCHARMAPS];
};
-int readUTF8Char(char *destination, char *source);
+int32_t readUTF8Char(char *destination, char *source);
void charmap_Sort();
-int charmap_Add(char *input, uint8_t output);
-int charmap_Convert(char **input);
+int32_t charmap_Add(char *input, uint8_t output);
+int32_t charmap_Convert(char **input);
#endif
--- a/include/asm/fstack.h
+++ b/include/asm/fstack.h
@@ -31,19 +31,15 @@
uint32_t nREPTBlockSize;
};
-void
-fstk_RunInclude(char *);
+void fstk_RunInclude(char *);
extern void fstk_RunMacroArg(int32_t s);
-void
-fstk_Init(char *);
+void fstk_Init(char *);
extern void fstk_Dump(void);
extern void fstk_AddIncludePath(char *s);
extern uint32_t fstk_RunMacro(char *s);
extern void fstk_RunRept(uint32_t count);
-FILE *
-fstk_FindFile(char *);
-
-int fstk_GetLine(void);
+FILE * fstk_FindFile(char *);
+int32_t fstk_GetLine(void);
extern int yywrap(void);
--- a/include/asm/output.h
+++ b/include/asm/output.h
@@ -23,13 +23,13 @@
void out_NewSection(char *pzName, uint32_t secttype);
void out_NewAbsSection(char *pzName, uint32_t secttype, int32_t org, int32_t bank);
void out_NewAlignedSection(char *pzName, uint32_t secttype, int32_t alignment, int32_t bank);
-void out_AbsByte(int b);
-void out_AbsByteGroup(char *s, int length);
+void out_AbsByte(int32_t b);
+void out_AbsByteGroup(char *s, int32_t length);
void out_RelByte(struct Expression * expr);
void out_RelWord(struct Expression * expr);
void out_PCRelByte(struct Expression * expr);
void out_WriteObject(void);
-void out_Skip(int skip);
+void out_Skip(int32_t skip);
void out_BinaryFile(char *s);
void out_BinaryFileSlice(char *s, int32_t start_pos, int32_t length);
void out_String(char *s);
--- a/include/asm/rpn.h
+++ b/include/asm/rpn.h
@@ -17,60 +17,24 @@
void rpn_Symbol(struct Expression * expr, char *tzSym);
void rpn_Number(struct Expression * expr, uint32_t i);
void rpn_LOGNOT(struct Expression * expr, struct Expression * src1);
-void
-rpn_LOGOR(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_LOGAND(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_LOGEQU(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_LOGGT(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_LOGLT(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_LOGGE(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_LOGLE(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_LOGNE(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_ADD(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_SUB(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_XOR(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_OR(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_AND(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_SHL(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_SHR(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_MUL(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_DIV(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
-void
-rpn_MOD(struct Expression * expr, struct Expression * src1,
- struct Expression * src2);
+void rpn_LOGOR(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_LOGAND(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_LOGEQU(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_LOGGT(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_LOGLT(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_LOGGE(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_LOGLE(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_LOGNE(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_ADD(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_SUB(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_XOR(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_OR(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_AND(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_SHL(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_SHR(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_MUL(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_DIV(struct Expression * expr, struct Expression * src1, struct Expression * src2);
+void rpn_MOD(struct Expression * expr, struct Expression * src1, struct Expression * src2);
void rpn_HIGH(struct Expression * expr, struct Expression * src);
void rpn_LOW(struct Expression * expr, struct Expression * src);
void rpn_UNNEG(struct Expression * expr, struct Expression * src);
--- a/include/asm/symbol.h
+++ b/include/asm/symbol.h
@@ -74,6 +74,6 @@
uint32_t sym_isDefined(char *tzName);
void sym_Purge(char *tzName);
uint32_t sym_isConstDefined(char *tzName);
-int sym_IsRelocDiffDefined(char *tzSym1, char *tzSym2);
+int32_t sym_IsRelocDiffDefined(char *tzSym1, char *tzSym2);
#endif
--- a/include/link/assign.h
+++ b/include/link/assign.h
@@ -30,22 +30,23 @@
#define MAXBANKS (BANK_COUNT_ROM0 + BANK_COUNT_ROMX + BANK_COUNT_WRAM0 + BANK_COUNT_WRAMX \
+ BANK_COUNT_VRAM + BANK_COUNT_OAM + BANK_COUNT_HRAM + BANK_COUNT_SRAM)
-extern int32_t area_Avail(int32_t bank);
-extern void AssignSections(void);
-extern void CreateSymbolTable(void);
extern int32_t MaxBankUsed;
extern int32_t MaxAvail[MAXBANKS];
-int
+int32_t area_Avail(int32_t bank);
+void AssignSections(void);
+void CreateSymbolTable(void);
+
+int32_t
IsSectionNameInUse(const char *name);
void
SetLinkerscriptName(char *tzLinkerscriptFile);
-int
-IsSectionSameTypeBankAndFloating(const char *name, enum eSectionType type, int bank);
+int32_t
+IsSectionSameTypeBankAndFloating(const char *name, enum eSectionType type, int32_t bank);
-unsigned int
-AssignSectionAddressAndBankByName(const char *name, unsigned int address, int bank);
+uint32_t
+AssignSectionAddressAndBankByName(const char *name, uint32_t address, int32_t bank);
#endif
--- a/include/link/library.h
+++ b/include/link/library.h
@@ -1,6 +1,6 @@
#ifndef RGBDS_LINK_LIBRARY_H
#define RGBDS_LINK_LIBRARY_H
-extern void AddNeededModules(void);
+void AddNeededModules(void);
#endif
--- a/include/link/mapfile.h
+++ b/include/link/mapfile.h
@@ -3,11 +3,11 @@
#include <stdint.h>
-extern void SetMapfileName(char *name);
-extern void SetSymfileName(char *name);
-extern void CloseMapfile(void);
-extern void MapfileWriteSection(struct sSection * pSect);
-extern void MapfileInitBank(int32_t bank);
-extern void MapfileCloseBank(int32_t slack);
+void SetMapfileName(char *name);
+void SetSymfileName(char *name);
+void CloseMapfile(void);
+void MapfileWriteSection(struct sSection * pSect);
+void MapfileInitBank(int32_t bank);
+void MapfileCloseBank(int32_t slack);
#endif
--- a/include/link/object.h
+++ b/include/link/object.h
@@ -1,6 +1,6 @@
#ifndef RGBDS_LINK_OBJECT_H
#define RGBDS_LINK_OBJECT_H
-extern void obj_Readfile(char *tzObjectfile);
+void obj_Readfile(char *tzObjectfile);
#endif
--- a/include/link/script.h
+++ b/include/link/script.h
@@ -17,6 +17,8 @@
#ifndef RGBDS_LINK_SCRIPT_H
#define RGBDS_LINK_SCRIPT_H
+#include <stdint.h>
+
#include "extern/stdnoreturn.h"
noreturn void script_fatalerror(const char *fmt, ...);
@@ -24,13 +26,13 @@
void script_Parse(const char *path);
void script_IncludeFile(const char *path);
-int script_IncludeDepthGet(void);
+int32_t script_IncludeDepthGet(void);
void script_IncludePop(void);
void script_InitSections(void);
-void script_SetCurrentSectionType(const char *type, unsigned int bank);
-void script_SetAddress(unsigned int addr);
-void script_SetAlignment(unsigned int alignment);
+void script_SetCurrentSectionType(const char *type, uint32_t bank);
+void script_SetAddress(uint32_t addr);
+void script_SetAlignment(uint32_t alignment);
void script_OutputSection(const char *section_name);
#endif
--- a/src/asm/asmy.y
+++ b/src/asm/asmy.y
@@ -82,7 +82,7 @@
length = i;
} else {
uint32_t value = sym_GetConstantValue(sym);
- int fullLength = snprintf(dest, maxLength + 1, "$%X", value);
+ int32_t fullLength = snprintf(dest, maxLength + 1, "$%X", value);
if (fullLength < 0) {
fatalerror("snprintf encoding error");
@@ -109,9 +109,9 @@
return( r );
}
-uint32_t str2int2( char *s, int length )
+uint32_t str2int2( char *s, int32_t length )
{
- int i;
+ int32_t i;
uint32_t r=0;
i = (length - 4 < 0 ? 0 : length - 4);
while(i < length)
@@ -997,7 +997,7 @@
out_RelByte( &$1 );
} | string {
char *s = $1;
- int length = charmap_Convert(&s);
+ int32_t length = charmap_Convert(&s);
out_AbsByteGroup(s, length);
free(s);
}
@@ -1009,7 +1009,7 @@
out_RelByte( &$1 );
} | string {
char *s = $1;
- int length = charmap_Convert(&s);
+ int32_t length = charmap_Convert(&s);
out_AbsByteGroup(s, length);
free(s);
}
@@ -1091,7 +1091,7 @@
| string
{
char *s = $1;
- int length = charmap_Convert(&s);
+ int32_t length = charmap_Convert(&s);
uint32_t r = str2int2(s, length);
free(s);
rpn_Number(&$$,r);
--- a/src/asm/charmap.c
+++ b/src/asm/charmap.c
@@ -81,12 +81,12 @@
extern struct Section *pCurrentSection;
-int
+int32_t
readUTF8Char(char *dest, char *src)
{
uint32_t state;
uint32_t codep;
- int i;
+ int32_t i;
for (i = 0, state = 0;; i++) {
if (decode(&state, &codep, (uint8_t)src[i]) == 1) {
@@ -104,10 +104,10 @@
}
}
-int
+int32_t
charmap_Add(char *input, uint8_t output)
{
- int i;
+ int32_t i;
size_t input_length;
char temp1i[CHARMAPLENGTH + 1], temp2i[CHARMAPLENGTH + 1], temp1o = 0,
temp2o = 0;
@@ -170,7 +170,7 @@
return ++charmap->count;
}
-int
+int32_t
charmap_Convert(char **input)
{
struct Charmap *charmap;
@@ -177,7 +177,7 @@
char outchar[CHARMAPLENGTH + 1];
char *buffer;
- int i, j, length;
+ int32_t i, j, length;
if (pCurrentSection && pCurrentSection->charmap) {
charmap = pCurrentSection->charmap;
--- a/src/asm/fstack.c
+++ b/src/asm/fstack.c
@@ -86,7 +86,7 @@
fatalerror("No memory for context");
}
-int
+static int32_t
popcontext(void)
{
struct sContext *pLastFile, **ppLastFile;
@@ -150,7 +150,7 @@
return (1);
}
-int
+int32_t
fstk_GetLine(void)
{
struct sContext *pLastFile, **ppLastFile;
@@ -227,7 +227,7 @@
fstk_FindFile(char *fname)
{
char path[_MAX_PATH];
- int i;
+ int32_t i;
FILE *f;
if ((f = fopen(fname, "rb")) != NULL || errno != ENOENT) {
--- a/src/asm/globlex.c
+++ b/src/asm/globlex.c
@@ -146,7 +146,7 @@
ParseSymbol(char *src, uint32_t size)
{
char dest[MAXSYMLEN + 1];
- int copied = 0, size_backup = size;
+ int32_t copied = 0, size_backup = size;
while (size && copied < MAXSYMLEN) {
if (*src == '\\') {
--- a/src/asm/lexer.c
+++ b/src/asm/lexer.c
@@ -82,7 +82,7 @@
void
yyunputstr(char *s)
{
- int i, len;
+ int32_t i, len;
len = strlen(s);
@@ -293,7 +293,7 @@
fatalerror("Internal error in lexgetfloat");
}
- int i = 0;
+ int32_t i = 0;
while ((nFloatMask & 1) == 0) {
nFloatMask >>= 1;
@@ -384,17 +384,17 @@
char *s = pLexBuffer;
uint32_t nOldFloatMask = 0;
- uint32_t nFloatMask = tFloatingFirstChar[(int)*s];
+ uint32_t nFloatMask = tFloatingFirstChar[(int32_t)*s];
if (nFloatMask != 0) {
s++;
nOldFloatMask = nFloatMask;
- nFloatMask &= tFloatingSecondChar[(int)*s];
+ nFloatMask &= tFloatingSecondChar[(int32_t)*s];
while (nFloatMask != 0) {
s++;
nOldFloatMask = nFloatMask;
- nFloatMask &= tFloatingChars[(int)*s];
+ nFloatMask &= tFloatingChars[(int32_t)*s];
}
}
@@ -438,7 +438,7 @@
{
size_t i;
char *s;
- int argNum;
+ int32_t argNum;
switch (c) {
case '1':
@@ -498,9 +498,9 @@
*/
void yylex_TrimEnd(char *s, size_t index)
{
- int i;
+ int32_t i;
- for (i = (int)index - 1; i >= 0 && (s[i] == ' ' || s[i] == '\t'); i--)
+ for (i = (int32_t)index - 1; i >= 0 && (s[i] == ' ' || s[i] == '\t'); i--)
s[i] = 0;
}
@@ -663,7 +663,7 @@
struct sLexFloat *token = lexgetfloat(nFloatMask);
if (token->Callback) {
- int done = token->Callback(pLexBuffer, nFloatLen);
+ int32_t done = token->Callback(pLexBuffer, nFloatLen);
if (!done)
goto scanagain;
}
--- a/src/asm/main.c
+++ b/src/asm/main.c
@@ -18,8 +18,8 @@
int yyparse(void);
void setuplex(void);
-int cldefines_index;
-int cldefines_size;
+int32_t cldefines_index;
+int32_t cldefines_size;
char **cldefines;
clock_t nStartClock, nEndClock;
@@ -140,7 +140,7 @@
break;
case 'z':
if (strlen(&s[1]) <= 2) {
- int result;
+ int32_t result;
result = sscanf(&s[1], "%x", &newopt.fillchar);
if (!((result == EOF) || (result == 1))) {
@@ -217,7 +217,7 @@
void
opt_ParseDefines()
{
- int i;
+ int32_t i;
for(i = 0; i < cldefines_index; i += 2)
{
--- a/src/asm/output.c
+++ b/src/asm/output.c
@@ -331,7 +331,7 @@
void
addexports(void)
{
- int i;
+ int32_t i;
for (i = 0; i < HASHSIZE; i += 1) {
struct sSymbol *pSym;
@@ -667,7 +667,7 @@
* Output an absolute byte (bypassing ROM/union checks)
*/
void
-out_AbsByteBypassCheck(int b)
+out_AbsByteBypassCheck(int32_t b)
{
checksectionoverflow(1);
b &= 0xFF;
@@ -683,7 +683,7 @@
* Output an absolute byte
*/
void
-out_AbsByte(int b)
+out_AbsByte(int32_t b)
{
checkcodesection();
out_AbsByteBypassCheck(b);
@@ -690,7 +690,7 @@
}
void
-out_AbsByteGroup(char *s, int length)
+out_AbsByteGroup(char *s, int32_t length)
{
checkcodesection();
checksectionoverflow(length);
@@ -702,7 +702,7 @@
* Skip this many bytes
*/
void
-out_Skip(int skip)
+out_Skip(int32_t skip)
{
checksection();
checksectionoverflow(skip);
@@ -761,7 +761,7 @@
* Output an absolute word
*/
void
-out_AbsWord(int b)
+out_AbsWord(int32_t b)
{
checkcodesection();
checksectionoverflow(2);
--- a/src/asm/symbol.c
+++ b/src/asm/symbol.c
@@ -653,7 +653,7 @@
}
struct sSymbol *parent = pScope->pScope ? pScope->pScope : pScope;
- int parentLen = localPtr - tzSym;
+ int32_t parentLen = localPtr - tzSym;
if (strchr(localPtr + 1, '.') != NULL) {
fatalerror("'%s' is a nonsensical reference to a nested local symbol", tzSym);
@@ -695,7 +695,7 @@
*
* It returns 1 if the difference is defined, 0 if not.
*/
-int
+int32_t
sym_IsRelocDiffDefined(char *tzSym1, char *tzSym2)
{
/* Do nothing the first pass. */
@@ -710,8 +710,8 @@
if ((nsym2 = sym_FindSymbol(tzSym2)) == NULL)
fatalerror("Symbol \"%s\" isn't defined.", tzSym2);
- int s1reloc = (nsym1->nType & SYMF_RELOC) != 0;
- int s2reloc = (nsym2->nType & SYMF_RELOC) != 0;
+ int32_t s1reloc = (nsym1->nType & SYMF_RELOC) != 0;
+ int32_t s2reloc = (nsym2->nType & SYMF_RELOC) != 0;
/* Both are non-relocatable */
if (!s1reloc && !s2reloc) return 1;
--- a/src/link/assign.c
+++ b/src/link/assign.c
@@ -142,7 +142,7 @@
int32_t startBank = SECT_ATTRIBUTES[type].bank;
int32_t bankCount = SECT_ATTRIBUTES[type].bankCount;
- for (int i = 0; i < bankCount; i++) {
+ for (int32_t i = 0; i < bankCount; i++) {
if (area_AllocAbs(&BankFree[startBank + i], org, size) != -1) {
return startBank + i;
}
@@ -185,7 +185,7 @@
int32_t startBank = SECT_ATTRIBUTES[type].bank;
int32_t bankCount = SECT_ATTRIBUTES[type].bankCount;
- for (int i = 0; i < bankCount; i++) {
+ for (int32_t i = 0; i < bankCount; i++) {
int32_t org = area_Alloc(&BankFree[startBank + i], size, alignment);
if (org != -1) {
return ((startBank + i) << 16) | org;
@@ -217,7 +217,7 @@
return r;
}
-int
+int32_t
IsSectionNameInUse(const char *name)
{
struct sSection *pSection;
@@ -234,8 +234,8 @@
}
-int
-IsSectionSameTypeBankAndFloating(const char *name, enum eSectionType type, int bank)
+int32_t
+IsSectionSameTypeBankAndFloating(const char *name, enum eSectionType type, int32_t bank)
{
struct sSection *pSection;
@@ -261,8 +261,8 @@
errx(1, "Section \"%s\" not found (or already used).\n", name);
}
-unsigned int
-AssignSectionAddressAndBankByName(const char *name, unsigned int address, int bank)
+uint32_t
+AssignSectionAddressAndBankByName(const char *name, uint32_t address, int32_t bank)
{
struct sSection *pSection;
--- a/src/link/lexer.l
+++ b/src/link/lexer.l
@@ -19,6 +19,7 @@
%{
#include <stdarg.h>
+#include <stdint.h>
#include <unistd.h>
#include "extern/err.h"
@@ -36,11 +37,11 @@
#define MAX_INCLUDE_DEPTH 8
-static int include_stack_ptr = 0;
+static int32_t include_stack_ptr = 0;
static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
static char include_path[MAX_INCLUDE_DEPTH][_MAX_PATH + 1];
-static int include_line[MAX_INCLUDE_DEPTH];
+static int32_t include_line[MAX_INCLUDE_DEPTH];
static char linkerscript_path[_MAX_PATH + 1]; /* Base file */
%}
@@ -151,7 +152,7 @@
unput('\n');
}
-int script_IncludeDepthGet(void)
+int32_t script_IncludeDepthGet(void)
{
return include_stack_ptr;
}
@@ -169,7 +170,7 @@
void script_PrintFileStack(void)
{
- int i = include_stack_ptr;
+ int32_t i = include_stack_ptr;
include_line[i] = yylineno;
--- a/src/link/library.c
+++ b/src/link/library.c
@@ -15,7 +15,7 @@
pSect = pSections;
while (pSect) {
- int i;
+ int32_t i;
for (i = 0; i < pSect->nNumberOfSymbols; i += 1) {
if ((pSect->tSymbols[i]->Type == SYM_EXPORT)
@@ -39,7 +39,7 @@
ppLSect = &pLibSections;
while (*ppLSect) {
- int i;
+ int32_t i;
for (i = 0; i < (*ppLSect)->nNumberOfSymbols; i += 1) {
if (((*ppLSect)->tSymbols[i]->Type == SYM_EXPORT)
@@ -101,7 +101,7 @@
pSect = pSections;
while (pSect) {
- int i;
+ int32_t i;
for (i = 0; i < pSect->nNumberOfSymbols; i += 1) {
if ((pSect->tSymbols[i]->Type == SYM_IMPORT)
--- a/src/link/main.c
+++ b/src/link/main.c
@@ -121,7 +121,7 @@
if (argc == 0)
usage();
- for (int i = 0; i < argc; ++i)
+ for (int32_t i = 0; i < argc; ++i)
obj_Readfile(argv[i]);
AddNeededModules();
--- a/src/link/object.c
+++ b/src/link/object.c
@@ -179,7 +179,7 @@
}
}
- unsigned int maxsize = 0;
+ uint32_t maxsize = 0;
/* Verify that the section isn't too big */
switch (pSection->Type)
@@ -353,7 +353,7 @@
strlen(RGBDS_OBJECT_VERSION_STRING)) == 0) {
obj_ReadRGB(pObjfile, tzObjectfile);
} else {
- for (int i = 0; i < strlen(RGBDS_OBJECT_VERSION_STRING); i++)
+ for (int32_t i = 0; i < strlen(RGBDS_OBJECT_VERSION_STRING); i++)
if (!isprint(tzHeader[i]))
tzHeader[i] = '?';
errx(1, "%s: Invalid file or object file version [%s]",
--- a/src/link/parser.y
+++ b/src/link/parser.y
@@ -15,6 +15,7 @@
*/
%{
+#include <stdint.h>
#include <stdio.h>
#include "extern/err.h"
@@ -26,7 +27,7 @@
extern int yylineno;
%}
-%union { int i; char s[512]; }
+%union { int32_t i; char s[512]; }
%token<i> INTEGER
%token<s> STRING
--- a/src/link/script.c
+++ b/src/link/script.c
@@ -14,23 +14,26 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <stdint.h>
#include <string.h>
+
#include "extern/err.h"
+
#include "link/assign.h"
#include "link/mylink.h"
static struct {
- unsigned int address; /* current address to write sections to */
- unsigned int top_address; /* not inclusive */
+ uint32_t address; /* current address to write sections to */
+ uint32_t top_address; /* not inclusive */
enum eSectionType type;
} bank[MAXBANKS];
-static int current_bank = -1; /* Bank as seen by the bank array */
-static int current_real_bank = -1; /* bank as seen by the GB */
+static int32_t current_bank = -1; /* Bank as seen by the bank array */
+static int32_t current_real_bank = -1; /* bank as seen by the GB */
void script_InitSections(void)
{
- int i;
+ int32_t i;
for (i = 0; i < MAXBANKS; i++) {
if (i == BANK_ROM0) {
/* ROM0 bank */
@@ -91,7 +94,7 @@
}
}
-void script_SetCurrentSectionType(const char *type, unsigned int bank)
+void script_SetCurrentSectionType(const char *type, uint32_t bank)
{
if (strcmp(type, "ROM0") == 0) {
if (bank != 0)
@@ -150,7 +153,7 @@
errx(1, "(Internal) Unknown section type \"%s\".\n", type);
}
-void script_SetAddress(unsigned int addr)
+void script_SetAddress(uint32_t addr)
{
if (current_bank == -1) {
errx(1, "Trying to set an address without assigned bank\n");
@@ -171,7 +174,7 @@
}
}
-void script_SetAlignment(unsigned int alignment)
+void script_SetAlignment(uint32_t alignment)
{
if (current_bank == -1) {
errx(1, "Trying to set an alignment without assigned bank\n");
@@ -181,8 +184,8 @@
errx(1, "Trying to set an alignment too big: %d\n", alignment);
}
- unsigned int size = 1 << alignment;
- unsigned int mask = size - 1;
+ uint32_t size = 1 << alignment;
+ uint32_t mask = size - 1;
if (bank[current_bank].address & mask) {
bank[current_bank].address &= ~mask;