Fix the code with respect to the assumption that sizeof(long) == 4.

This commit is contained in:
Hartmut Brandt 2003-07-30 16:15:49 +00:00
parent 82817dd82d
commit 16a81ac7aa
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=118215

View File

@ -108,8 +108,8 @@ delay(int cnt)
usleep(cnt); usleep(cnt);
} }
static unsigned long static uint32_t
CP_READ(unsigned long val) CP_READ(uint32_t val)
{ {
if ( endian ) if ( endian )
return ( ntohl ( val ) ); return ( ntohl ( val ) );
@ -117,8 +117,8 @@ CP_READ(unsigned long val)
return ( val ); return ( val );
} }
static unsigned long static uint32_t
CP_WRITE(unsigned long val) CP_WRITE(uint32_t val)
{ {
if ( endian ) if ( endian )
return ( htonl ( val ) ); return ( htonl ( val ) );
@ -151,12 +151,12 @@ error(const char *msg)
static char static char
getbyte(void) getbyte(void)
{ {
int c; char c;
while ( ! ( CP_READ(Uart->mon_xmithost) & UART_VALID ) ) while ( ! ( CP_READ(Uart->mon_xmithost) & UART_VALID ) )
delay(10); delay(10);
c = ( CP_READ(Uart->mon_xmithost) & UART_DATAMASK ); c = CP_READ(Uart->mon_xmithost) & UART_DATAMASK;
Uart->mon_xmithost = CP_WRITE(UART_READY); Uart->mon_xmithost = CP_WRITE(UART_READY);
/* /*
@ -176,7 +176,7 @@ getbyte(void)
if (isprint(c) || (c == '\n') || (c == '\r')) if (isprint(c) || (c == '\n') || (c == '\r'))
putc(c, stdout); putc(c, stdout);
} }
return ( c & 0xff ); return (c);
} }
/* /*
@ -234,7 +234,7 @@ xmit_byte(u_char c, int dn)
getbyte(); getbyte();
if ( !dn ) delay ( 10000 ); if ( !dn ) delay ( 10000 );
} }
val = ( c | UART_VALID ); val = (int)c | UART_VALID;
Uart->mon_xmitmon = CP_WRITE( val ); Uart->mon_xmitmon = CP_WRITE( val );
if ( !dn ) delay ( 10000 ); if ( !dn ) delay ( 10000 );
if ( CP_READ(Uart->mon_xmithost) & UART_VALID ) if ( CP_READ(Uart->mon_xmithost) & UART_VALID )
@ -656,20 +656,20 @@ static int
loadmicrocode(u_char *ucode, int size, u_char *ram) loadmicrocode(u_char *ucode, int size, u_char *ram)
{ {
struct { struct {
u_long Id; uint32_t Id;
u_long fver; uint32_t fver;
u_long start; uint32_t start;
u_long entry; uint32_t entry;
} binhdr; } binhdr;
#ifdef sun #ifdef sun
union { union {
u_long w; uint32_t w;
char c[4]; char c[4];
} w1, w2; } w1, w2;
int n; int n;
#endif #endif
u_char *bufp; u_char *bufp;
u_long *lp; uint32_t *lp;
/* /*
@ -691,11 +691,11 @@ loadmicrocode(u_char *ucode, int size, u_char *ram)
* We need to swap the header start/entry words... * We need to swap the header start/entry words...
*/ */
w1.w = binhdr.start; w1.w = binhdr.start;
for ( n = 0; n < sizeof(u_long); n++ ) for ( n = 0; n < sizeof(uint32_t); n++ )
w2.c[3-n] = w1.c[n]; w2.c[3-n] = w1.c[n];
binhdr.start = w2.w; binhdr.start = w2.w;
w1.w = binhdr.entry; w1.w = binhdr.entry;
for ( n = 0; n < sizeof(u_long); n++ ) for ( n = 0; n < sizeof(uint32_t); n++ )
w2.c[3-n] = w1.c[n]; w2.c[3-n] = w1.c[n];
binhdr.entry = w2.w; binhdr.entry = w2.w;
#endif /* sun */ #endif /* sun */
@ -711,9 +711,9 @@ loadmicrocode(u_char *ucode, int size, u_char *ram)
if ( endian ) { if ( endian ) {
u_int i; u_int i;
lp = (u_long *)(void *)ucode; lp = (uint32_t *)(void *)ucode;
/* Swap buffer */ /* Swap buffer */
for ( i = 0; i < size / sizeof(long); i++ ) for ( i = 0; i < size / sizeof(uint32_t); i++ )
#ifndef sun #ifndef sun
lp[i] = CP_WRITE(lp[i]); lp[i] = CP_WRITE(lp[i]);
#else #else
@ -736,7 +736,7 @@ loadmicrocode(u_char *ucode, int size, u_char *ram)
{ {
char cmd[80]; char cmd[80];
sprintf ( cmd, "go %lx\r\n", binhdr.entry ); sprintf ( cmd, "go %x\r\n", binhdr.entry );
xmit_to_i960 ( cmd, strlen ( cmd ), 0 ); xmit_to_i960 ( cmd, strlen ( cmd ), 0 );
@ -753,14 +753,14 @@ static int
sendbinfile(const char *fname, u_char *ram) sendbinfile(const char *fname, u_char *ram)
{ {
struct { struct {
u_long Id; uint32_t Id;
u_long fver; uint32_t fver;
u_long start; uint32_t start;
u_long entry; uint32_t entry;
} binhdr; } binhdr;
#ifdef sun #ifdef sun
union { union {
u_long w; uint32_t w;
char c[4]; char c[4];
} w1, w2; } w1, w2;
#endif #endif
@ -768,7 +768,7 @@ sendbinfile(const char *fname, u_char *ram)
int n; int n;
int cnt = 0; int cnt = 0;
u_char *bufp; u_char *bufp;
long buffer[1024]; uint32_t buffer[1024];
/* /*
* Try opening file * Try opening file
@ -804,11 +804,11 @@ sendbinfile(const char *fname, u_char *ram)
* We need to swap the header start/entry words... * We need to swap the header start/entry words...
*/ */
w1.w = binhdr.start; w1.w = binhdr.start;
for ( n = 0; n < sizeof(u_long); n++ ) for ( n = 0; n < sizeof(uint32_t); n++ )
w2.c[3-n] = w1.c[n]; w2.c[3-n] = w1.c[n];
binhdr.start = w2.w; binhdr.start = w2.w;
w1.w = binhdr.entry; w1.w = binhdr.entry;
for ( n = 0; n < sizeof(u_long); n++ ) for ( n = 0; n < sizeof(uint32_t); n++ )
w2.c[3-n] = w1.c[n]; w2.c[3-n] = w1.c[n];
binhdr.entry = w2.w; binhdr.entry = w2.w;
#endif /* sun */ #endif /* sun */
@ -835,7 +835,7 @@ sendbinfile(const char *fname, u_char *ram)
u_int i; u_int i;
/* Swap buffer */ /* Swap buffer */
for ( i = 0; i < sizeof(buffer) / sizeof(long); i++ ) for (i = 0; i < sizeof(buffer) / sizeof(uint32_t); i++)
#ifndef sun #ifndef sun
buffer[i] = CP_WRITE(buffer[i]); buffer[i] = CP_WRITE(buffer[i]);
#else #else
@ -875,7 +875,7 @@ sendbinfile(const char *fname, u_char *ram)
{ {
char cmd[80]; char cmd[80];
sprintf ( cmd, "go %lx\r\n", binhdr.entry ); sprintf ( cmd, "go %x\r\n", binhdr.entry );
xmit_to_i960 ( cmd, strlen ( cmd ), 0 ); xmit_to_i960 ( cmd, strlen ( cmd ), 0 );
@ -1309,12 +1309,12 @@ main(int argc, char *argv[])
*/ */
aap = (Aali *)(void *)(ram + CP_READ(Mon->mon_appl)); aap = (Aali *)(void *)(ram + CP_READ(Mon->mon_appl));
for (i = 0; i < MAX_CHECK; i++, sleep(1)) { for (i = 0; i < MAX_CHECK; i++, sleep(1)) {
u_long hb1, hb2, hb3; uint32_t hb1, hb2, hb3;
hb3 = CP_READ(Mon->mon_bstat); hb3 = CP_READ(Mon->mon_bstat);
if (hb3 != BOOT_RUNNING) { if (hb3 != BOOT_RUNNING) {
if (verbose) if (verbose)
printf("bstat %lx\n", hb3); printf("bstat %x\n", hb3);
continue; continue;
} }
@ -1322,7 +1322,7 @@ main(int argc, char *argv[])
delay(1); delay(1);
hb2 = CP_READ(aap->aali_heartbeat); hb2 = CP_READ(aap->aali_heartbeat);
if (verbose) if (verbose)
printf("hb %lx %lx\n", hb1, hb2); printf("hb %x %x\n", hb1, hb2);
if (hb1 < hb2) if (hb1 < hb2)
break; break;
} }