1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-12 01:40:47 +00:00

Fix most compiler warnings in the boot and code segments (#674)

* Less warnings in boot & code segments

* few more warnings gone

* Ran formatter

* z_view warning gone

* -> 1

* f31 -> 31

* Remove function casts

* Few more small improvements

* Separate declaration and assignment in func_80091738 and Item_Give

Co-authored-by: Thar0 <maximilianc64@gmail.com>
This commit is contained in:
Tharo 2021-02-14 00:49:40 +00:00 committed by GitHub
parent d615ec4f31
commit f9d96d9f73
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
208 changed files with 1702 additions and 1846 deletions

View file

@ -42,9 +42,9 @@ const f64 D_800122E0[] = { 10e0L, 10e1L, 10e3L, 10e7L, 10e15L, 10e31L, 10e63L, 1
void _Ldtob(_Pft* args, u8 type) {
u8 buff[BUFF_LEN];
u8* ptr;
u8* ptr = buff;
u32 sp70;
f64 val;
f64 val = args->v.ld;
/* maybe struct? */
s16 err;
s16 nsig;
@ -60,14 +60,10 @@ void _Ldtob(_Pft* args, u8 type) {
u8 drop;
s32 n2;
ptr = buff;
val = args->v.ld;
if (args->prec < 0) {
args->prec = 6;
} else {
if (args->prec == 0 && (type == 'g' || type == 'G')) {
args->prec = 1;
}
} else if (args->prec == 0 && (type == 'g' || type == 'G')) {
args->prec = 1;
}
err = _Ldunscale(&exp, (_Pft*)args);
if (err > 0) {
@ -90,18 +86,16 @@ void _Ldtob(_Pft* args, u8 type) {
val *= D_800122E0[i];
}
}
} else {
if (exp > 0) {
factor = 1;
exp &= ~3;
} else if (exp > 0) {
factor = 1;
exp &= ~3;
for (n = exp, i = 0; n > 0; n >>= 1, i++) {
if ((n & 1) != 0) {
factor *= D_800122E0[i];
}
for (n = exp, i = 0; n > 0; n >>= 1, i++) {
if ((n & 1) != 0) {
factor *= D_800122E0[i];
}
val /= factor;
}
val /= factor;
}
gen = ((type == 'f') ? exp + 10 : 6) + args->prec;
if (gen > 0x13) {
@ -157,27 +151,28 @@ void _Ldtob(_Pft* args, u8 type) {
}
s16 _Ldunscale(s16* pex, _Pft* px) {
u16* ps = (u16*)px;
s16 xchar = (ps[_D0] & _DMASK) >> _DOFF;
if (xchar == _DMAX) { /* NaN or INF */
*pex = 0;
return (s16)(ps[_D0] & _DFRAC || ps[_D1] || ps[_D2] || ps[_D3] ? NAN : INF);
} else if (0 < xchar) {
ps[_D0] = (ps[_D0] & ~_DMASK) | (_DBIAS << _DOFF);
*pex = xchar - (_DBIAS - 1);
return (FINITE);
return FINITE;
}
if (0 > xchar) {
return NAN;
} else {
*pex = 0;
return (0);
return 0;
}
}
void _Genld(_Pft* px, u8 code, u8* p, s16 nsig, s16 xexp) {
u8 point = '.';
if (nsig <= 0) {
nsig = 1,

View file

@ -7,20 +7,20 @@ u8 D_8000AF84[] = "0123456789ABCDEF";
void _Litob(_Pft* args, u8 type) {
u8 buff[BUFF_LEN];
const u8* num_map;
const u8* numMap;
s32 base;
s32 buff_ind;
s32 idx;
u64 num;
lldiv_t quotrem;
if (type == 'X') {
num_map = D_8000AF84;
numMap = D_8000AF84;
} else {
num_map = D_8000AF70;
numMap = D_8000AF70;
}
base = (type == 'o') ? 8 : ((type != 'x' && type != 'X') ? 10 : 16);
buff_ind = BUFF_LEN;
idx = BUFF_LEN;
num = args->v.ll;
if ((type == 'd' || type == 'i') && args->v.ll < 0) {
@ -28,29 +28,29 @@ void _Litob(_Pft* args, u8 type) {
}
if (num != 0 || args->prec != 0) {
buff[--buff_ind] = num_map[num % base];
buff[--idx] = numMap[num % base];
}
args->v.ll = num / base;
while (args->v.ll > 0 && buff_ind > 0) {
while (args->v.ll > 0 && idx > 0) {
quotrem = lldiv(args->v.ll, base);
args->v.ll = quotrem.quot;
buff[--buff_ind] = num_map[quotrem.rem];
buff[--idx] = numMap[quotrem.rem];
}
args->n1 = BUFF_LEN - buff_ind;
args->n1 = BUFF_LEN - idx;
memcpy(args->s, buff + buff_ind, args->n1);
memcpy(args->s, buff + idx, args->n1);
if (args->n1 < args->prec) {
args->nz0 = args->prec - args->n1;
}
if (args->prec < 0 && (args->flags & (FLAGS_ZERO | FLAGS_MINUS)) == FLAGS_ZERO) {
buff_ind = args->width - args->n0 - args->nz0 - args->n1;
if (buff_ind > 0) {
args->nz0 += buff_ind;
idx = args->width - args->n0 - args->nz0 - args->n1;
if (idx > 0) {
args->nz0 += idx;
}
}
}

View file

@ -4,6 +4,7 @@
for (i = 0; *a >= '0' && *a <= '9'; a++) \
if (i < 999) \
i = *a + i * 10 - '0';
#define _PROUT(fmt, _size) \
if (_size > 0) { \
arg = (void*)pfn(arg, fmt, _size); \
@ -30,20 +31,19 @@ char zeroes[] = "00000000000000000000000000000000";
void _Putfld(_Pft*, va_list*, u8, u8*);
s32 _Printf(char* (*pfn)(char*, const char*, size_t), char* arg, const char* fmt, va_list ap) {
s32 _Printf(PrintCallback pfn, void* arg, const char* fmt, va_list ap) {
_Pft x;
x.nchar = 0;
while (1) {
const u8* s;
u8 c;
u8* t;
static const u8 fchar[] = " +-#0";
while (true) {
static const char fchar[] = " +-#0";
static const u32 fbit[] = { FLAGS_SPACE, FLAGS_PLUS, FLAGS_MINUS, FLAGS_HASH, FLAGS_ZERO, 0 };
const u8* s = (u8*)fmt;
u8 c;
const char* t;
u8 ac[0x20];
s = (u8*)fmt;
while ((c = *s) != 0 && c != '%') {
s++;
}
@ -105,7 +105,6 @@ void _Putfld(_Pft* px, va_list* pap, u8 code, u8* ac) {
px->n0 = px->nz0 = px->n1 = px->nz1 = px->n2 = px->nz2 = 0;
switch (code) {
case 'c':
ac[px->n0++] = va_arg(*pap, u32);
break;
@ -136,7 +135,6 @@ void _Putfld(_Pft* px, va_list* pap, u8 code, u8* ac) {
_Litob(px, code);
break;
case 'x':
case 'X':
case 'u':
@ -165,7 +163,6 @@ void _Putfld(_Pft* px, va_list* pap, u8 code, u8* ac) {
px->s = (char*)&ac[px->n0];
_Litob(px, code);
break;
case 'e':
case 'f':
case 'g':
@ -186,7 +183,6 @@ void _Putfld(_Pft* px, va_list* pap, u8 code, u8* ac) {
px->s = (char*)&ac[px->n0];
_Ldtob(px, code);
break;
case 'n':
if (px->qual == 'h') {
*(va_arg(*pap, u16*)) = px->nchar;
@ -200,11 +196,10 @@ void _Putfld(_Pft* px, va_list* pap, u8 code, u8* ac) {
break;
case 'p':
px->v.ll = (s64)va_arg(*pap, void*);
px->v.ll = va_arg(*pap, void*);
px->s = (char*)&ac[px->n0];
_Litob(px, 'x');
break;
case 's':
px->s = va_arg(*pap, char*);
px->n1 = strlen(px->s);
@ -212,11 +207,9 @@ void _Putfld(_Pft* px, va_list* pap, u8 code, u8* ac) {
px->n1 = px->prec;
}
break;
case '%':
ac[px->n0++] = '%';
break;
default:
ac[px->n0++] = code;
break;

View file

@ -5,14 +5,13 @@ void __osDevMgrMain(void* arg) {
OSIoMesg* ioMesg;
OSMesg sp70;
OSMesg sp6C;
OSMgrArgs* arg0;
OSMgrArgs* arg0 = (OSMgrArgs*)arg;
__OSTranxInfo* transfer;
__OSBlockInfo* block;
s32 phi_s2;
s32 phi_s0;
u32 sp54;
arg0 = (OSMgrArgs*)arg;
ioMesg = NULL;
while (true) {

View file

@ -1,8 +1,8 @@
#include "global.h"
s32 __osPiRawStartDma(s32 dir, u32 cartAddr, void* dramAddr, size_t size) {
register s32 status;
status = HW_REG(PI_STATUS_REG, u32);
register s32 status = HW_REG(PI_STATUS_REG, u32);
while (status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) {
status = HW_REG(PI_STATUS_REG, u32);
}

View file

@ -1,8 +1,8 @@
#include "global.h"
s32 __osSiDeviceBusy() {
register u32 status;
status = HW_REG(SI_STATUS_REG, u32);
s32 __osSiDeviceBusy(void) {
register u32 status = HW_REG(SI_STATUS_REG, u32);
if (status & (SI_STATUS_DMA_BUSY | SI_STATUS_IO_READ_BUSY)) {
return true;
} else {

View file

@ -1,5 +1,5 @@
#include "global.h"
OSViContext* __osViGetCurrentContext() {
OSViContext* __osViGetCurrentContext(void) {
return __osViCurr;
}

View file

@ -4,7 +4,7 @@ OSViContext vi[2] = { 0 };
OSViContext* __osViCurr = &vi[0];
OSViContext* __osViNext = &vi[1];
void __osViInit() {
void __osViInit(void) {
bzero(vi, sizeof(vi));
__osViCurr = &vi[0];
__osViNext = &vi[1];

View file

@ -1,8 +1,8 @@
#include "global.h"
void __osViSwapContext() {
register OSViMode* s0;
register OSViContext* s1;
void __osViSwapContext(void) {
register OSViMode* viMode;
register OSViContext* viNext;
u32 origin;
u32 hStart;
u32 vstart;
@ -11,52 +11,52 @@ void __osViSwapContext() {
register u32 s2;
field = 0;
s1 = __osViNext;
s0 = s1->modep;
viNext = __osViNext;
viMode = viNext->modep;
field = HW_REG(VI_V_CURRENT_LINE_REG, u32) & 1;
s2 = osVirtualToPhysical(s1->buffer);
origin = (s0->fldRegs[field].origin) + s2;
if (s1->state & 2) {
s1->x.scale |= s0->comRegs.xScale & ~0xfff;
s2 = osVirtualToPhysical(viNext->buffer);
origin = (viMode->fldRegs[field].origin) + s2;
if (viNext->state & 2) {
viNext->x.scale |= viMode->comRegs.xScale & ~0xfff;
} else {
s1->x.scale = s0->comRegs.xScale;
viNext->x.scale = viMode->comRegs.xScale;
}
if (s1->state & 4) {
sp34 = (u32)(s0->fldRegs[field].yScale & 0xfff);
s1->y.scale = s1->y.factor * sp34;
s1->y.scale |= s0->fldRegs[field].yScale & ~0xfff;
if (viNext->state & 4) {
sp34 = (u32)(viMode->fldRegs[field].yScale & 0xfff);
viNext->y.scale = viNext->y.factor * sp34;
viNext->y.scale |= viMode->fldRegs[field].yScale & ~0xfff;
} else {
s1->y.scale = s0->fldRegs[field].yScale;
viNext->y.scale = viMode->fldRegs[field].yScale;
}
vstart = (s0->fldRegs[field].vStart - (__additional_scanline << 0x10)) + __additional_scanline;
hStart = s0->comRegs.hStart;
vstart = (viMode->fldRegs[field].vStart - (__additional_scanline << 0x10)) + __additional_scanline;
hStart = viMode->comRegs.hStart;
if (s1->state & 0x20) {
if (viNext->state & 0x20) {
hStart = 0;
}
if (s1->state & 0x40) {
s1->y.scale = 0;
origin = osVirtualToPhysical(s1->buffer);
if (viNext->state & 0x40) {
viNext->y.scale = 0;
origin = osVirtualToPhysical(viNext->buffer);
}
if (s1->state & 0x80) {
s1->y.scale = (s1->y.offset << 0x10) & 0x3ff0000;
origin = osVirtualToPhysical(s1->buffer);
if (viNext->state & 0x80) {
viNext->y.scale = (viNext->y.offset << 0x10) & 0x3ff0000;
origin = osVirtualToPhysical(viNext->buffer);
}
HW_REG(VI_ORIGIN_REG, u32) = origin;
HW_REG(VI_WIDTH_REG, u32) = s0->comRegs.width;
HW_REG(VI_BURST_REG, u32) = s0->comRegs.burst;
HW_REG(VI_V_SYNC_REG, u32) = s0->comRegs.vSync;
HW_REG(VI_H_SYNC_REG, u32) = s0->comRegs.hSync;
HW_REG(VI_LEAP_REG, u32) = s0->comRegs.leap;
HW_REG(VI_WIDTH_REG, u32) = viMode->comRegs.width;
HW_REG(VI_BURST_REG, u32) = viMode->comRegs.burst;
HW_REG(VI_V_SYNC_REG, u32) = viMode->comRegs.vSync;
HW_REG(VI_H_SYNC_REG, u32) = viMode->comRegs.hSync;
HW_REG(VI_LEAP_REG, u32) = viMode->comRegs.leap;
HW_REG(VI_H_START_REG, u32) = hStart;
HW_REG(VI_V_START_REG, u32) = vstart;
HW_REG(VI_V_BURST_REG, u32) = s0->fldRegs[field].vBurst;
HW_REG(VI_INTR_REG, u32) = s0->fldRegs[field].vIntr;
HW_REG(VI_X_SCALE_REG, u32) = s1->x.scale;
HW_REG(VI_Y_SCALE_REG, u32) = s1->y.scale;
HW_REG(VI_CONTROL_REG, u32) = s1->features;
HW_REG(VI_V_BURST_REG, u32) = viMode->fldRegs[field].vBurst;
HW_REG(VI_INTR_REG, u32) = viMode->fldRegs[field].vIntr;
HW_REG(VI_X_SCALE_REG, u32) = viNext->x.scale;
HW_REG(VI_Y_SCALE_REG, u32) = viNext->y.scale;
HW_REG(VI_CONTROL_REG, u32) = viNext->features;
__osViNext = __osViCurr;
__osViCurr = s1;
__osViCurr = viNext;
*__osViNext = *__osViCurr;
}

View file

@ -2,7 +2,7 @@
OSPiHandle __CartRomHandle;
OSPiHandle* osCartRomInit() {
OSPiHandle* osCartRomInit(void) {
register u32 a;
register s32 status;
register u32 prevInt;

View file

@ -2,7 +2,7 @@
OSPiHandle __DriveRomHandle;
OSPiHandle* osDriveRomInit() {
OSPiHandle* osDriveRomInit(void) {
register s32 status;
register u32 a;
register s32 prevInt;

View file

@ -3,6 +3,7 @@
s32 osEPiStartDma(OSPiHandle* handle, OSIoMesg* mb, s32 direction) {
s32 ret;
if (!__osPiDevMgr.initialized) {
return -1;
}
@ -15,9 +16,9 @@ s32 osEPiStartDma(OSPiHandle* handle, OSIoMesg* mb, s32 direction) {
}
if (mb->hdr.pri == 1) {
ret = osJamMesg(osPiGetCmdQueue(), (OSMesg)mb, 0);
ret = osJamMesg(osPiGetCmdQueue(), (OSMesg)mb, OS_MESG_NOBLOCK);
} else {
ret = osSendMesg(osPiGetCmdQueue(), (OSMesg)mb, 0);
ret = osSendMesg(osPiGetCmdQueue(), (OSMesg)mb, OS_MESG_NOBLOCK);
}
return ret;

View file

@ -1,7 +1,7 @@
#include "global.h"
#include "ultra64/internal.h"
OSMesgQueue* osPiGetCmdQueue() {
OSMesgQueue* osPiGetCmdQueue(void) {
if (!__osPiDevMgr.initialized) {
return NULL;
}

View file

@ -2,11 +2,12 @@
// TODO: name magic constants
void osViBlack(u8 active) {
register u32 int_disabled = __osDisableInt();
register u32 prevInt = __osDisableInt();
if (active) {
__osViNext->state |= 0x20;
} else {
__osViNext->state &= ~0x20;
}
__osRestoreInt(int_disabled);
__osRestoreInt(prevInt);
}

View file

@ -1,8 +1,9 @@
#include "global.h"
void* osViGetNextFramebuffer() {
void* osViGetNextFramebuffer(void) {
s32 prevInt = __osDisableInt();
void* buff = __osViNext->buffer;
__osRestoreInt(prevInt);
return buff;
}

View file

@ -1,9 +1,11 @@
#include "global.h"
void osViSetMode(OSViMode* mode) {
register u32 int_disabled = __osDisableInt();
register u32 prevInt = __osDisableInt();
__osViNext->modep = mode;
__osViNext->state = 1;
__osViNext->features = __osViNext->modep->comRegs.ctrl;
__osRestoreInt(int_disabled);
__osRestoreInt(prevInt);
}

View file

@ -1,7 +1,8 @@
#include "global.h"
void osViSetSpecialFeatures(u32 func) {
register u32 int_disabled = __osDisableInt();
register u32 prevInt = __osDisableInt();
if (func & OS_VI_GAMMA_ON) {
__osViNext->features |= OS_VI_GAMMA;
}
@ -32,5 +33,6 @@ void osViSetSpecialFeatures(u32 func) {
__osViNext->features |= __osViNext->modep->comRegs.ctrl & (OS_VI_UNK200 | OS_VI_UNK100);
}
__osViNext->state |= 8;
__osRestoreInt(int_disabled);
__osRestoreInt(prevInt);
}

View file

@ -2,16 +2,13 @@
void osViSetXScale(f32 value) {
register u32 nomValue;
register u32 saveMask;
saveMask = __osDisableInt();
register u32 prevInt = __osDisableInt();
__osViNext->x.factor = value;
__osViNext->state |= 0x2;
nomValue = __osViNext->modep->comRegs.xScale & 0xfff;
__osViNext->x.scale = (u32)(__osViNext->x.factor * nomValue) & 0xFFF;
__osRestoreInt(saveMask);
__osRestoreInt(prevInt);
}

View file

@ -1,10 +1,10 @@
#include "global.h"
void osViSetYScale(f32 scale) {
register s32 prevInt;
register s32 prevInt = __osDisableInt();
prevInt = __osDisableInt();
__osViNext->y.factor = scale;
__osViNext->state |= 4;
__osRestoreInt(prevInt);
}

View file

@ -1,8 +1,10 @@
#include "global.h"
void osViSwapBuffer(void* vaddr) {
u32 int_disabled = __osDisableInt();
u32 prevInt = __osDisableInt();
__osViNext->buffer = vaddr;
__osViNext->state |= 0x10; // TODO: figure out what this flag means
__osRestoreInt(int_disabled);
__osRestoreInt(prevInt);
}

View file

@ -18,7 +18,7 @@ OSPiHandle* __osCurrentHandle[] = {
};
void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) {
u32 int_disabled;
u32 prevInt;
OSPri newPri;
OSPri currentPri;
@ -36,7 +36,7 @@ void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgC
newPri = currentPri;
osSetThreadPri(NULL, pri);
}
int_disabled = __osDisableInt();
prevInt = __osDisableInt();
__osPiDevMgr.initialized = true;
__osPiDevMgr.cmdQueue = cmdQ;
@ -49,7 +49,7 @@ void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgC
osCreateThread(&piThread, 0, __osDevMgrMain, (void*)&__osPiDevMgr, piStackThread + sizeof(piStackThread), pri);
osStartThread(&piThread);
__osRestoreInt(int_disabled);
__osRestoreInt(prevInt);
if (newPri != -1) {
osSetThreadPri(NULL, newPri);

View file

@ -1,11 +1,11 @@
#include "global.h"
char* proutSprintf(char* dst, const char* fmt, size_t size) {
return (char*)memcpy(dst, fmt, size) + size;
void* proutSprintf(void* dst, const char* fmt, u32 size) {
return (void*)((u32)memcpy(dst, fmt, size) + size);
}
s32 vsprintf(char* dst, const char* fmt, va_list args) {
s32 ret = _Printf(&proutSprintf, dst, fmt, args);
s32 ret = _Printf(proutSprintf, dst, fmt, args);
if (ret > -1) {
dst[ret] = 0;
}
@ -17,7 +17,7 @@ s32 sprintf(char* dst, const char* fmt, ...) {
va_list args;
va_start(args, fmt);
ret = _Printf(&proutSprintf, dst, fmt, args);
ret = _Printf(proutSprintf, dst, fmt, args);
if (ret > -1) {
dst[ret] = 0;
}

View file

@ -1,7 +1,8 @@
#include "global.h"
const u8* strchr(const u8* str, s32 ch) {
const char* strchr(const char* str, s32 ch) {
u8 c = ch;
while (*str != c) {
if (*str == 0) {
return NULL;
@ -11,17 +12,19 @@ const u8* strchr(const u8* str, s32 ch) {
return str;
}
size_t strlen(const u8* str) {
const u8* ptr = str;
u32 strlen(const char* str) {
const char* ptr = str;
while (*ptr) {
ptr++;
}
return ptr - str;
}
void* memcpy(void* dst, const void* src, size_t size) {
void* memcpy(void* dst, const void* src, u32 size) {
u8* _dst = dst;
const u8* _src = src;
while (size > 0) {
*_dst++ = *_src++;
size--;

View file

@ -22,9 +22,10 @@ u32 __additional_scanline = 0;
void viMgrMain(void*);
void osCreateViManager(OSPri pri) {
u32 int_disabled;
u32 prevInt;
OSPri newPri;
OSPri currentPri;
if (!__osViDevMgr.initialized) {
__osTimerServicesInit();
__additional_scanline = 0;
@ -44,7 +45,7 @@ void osCreateViManager(OSPri pri) {
osSetThreadPri(NULL, pri);
}
int_disabled = __osDisableInt();
prevInt = __osDisableInt();
__osViDevMgr.initialized = true;
__osViDevMgr.mgrThread = &viThread;
__osViDevMgr.cmdQueue = &viEventQueue;
@ -56,7 +57,7 @@ void osCreateViManager(OSPri pri) {
osCreateThread(&viThread, 0, &viMgrMain, &__osViDevMgr, viThreadStack + sizeof(viThreadStack), pri);
__osViInit();
osStartThread(&viThread);
__osRestoreInt(int_disabled);
__osRestoreInt(prevInt);
if (newPri != -1) {
osSetThreadPri(NULL, newPri);
}
@ -68,9 +69,8 @@ void viMgrMain(void* vargs) {
static u16 viRetrace;
u32 addTime;
viMesgStruct* mesg;
u32 temp; // always 0
u32 temp = 0; // always 0
temp = 0;
mesg = NULL;
viRetrace = __osViGetCurrentContext()->retraceCount;
if (viRetrace == 0) {
@ -79,7 +79,7 @@ void viMgrMain(void* vargs) {
args = (OSMgrArgs*)vargs;
while (1) {
while (true) {
osRecvMesg(args->eventQueue, (OSMesg)&mesg, OS_MESG_BLOCK);
switch (mesg->unk00) {
case 13:
@ -107,9 +107,7 @@ void viMgrMain(void* vargs) {
__osBaseCounter = osGetCount();
addTime = __osBaseCounter - addTime;
__osCurrentTime = __osCurrentTime + addTime;
break;
case 14:
__osTimerInterrupt();
break;