diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2005-01-19 21:27:39 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2005-01-19 21:27:39 +0000 |
commit | 16cc328967c64c8c0bda99c1cdc0cf1a773c2c24 (patch) | |
tree | c77d2d4cb50365866e8d7c08310d7e22f55c32a5 /c/src/lib/libbsp/i386 | |
parent | 2005-01-18 Ralf Corsepius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-16cc328967c64c8c0bda99c1cdc0cf1a773c2c24.tar.bz2 |
2005-01-19 Joel Sherrill <joel@OARcorp.com>
* pc386/console/vgainit.c, pc386/wd8003/wd8003.c, shared/comm/uart.c:
Fix errors caught by gcc 4.x.
Diffstat (limited to 'c/src/lib/libbsp/i386')
-rw-r--r-- | c/src/lib/libbsp/i386/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/console/vgainit.c | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c | 7 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/shared/comm/uart.c | 66 |
4 files changed, 44 insertions, 36 deletions
diff --git a/c/src/lib/libbsp/i386/ChangeLog b/c/src/lib/libbsp/i386/ChangeLog index 2fd59b01e6..7efccc6895 100644 --- a/c/src/lib/libbsp/i386/ChangeLog +++ b/c/src/lib/libbsp/i386/ChangeLog @@ -1,3 +1,8 @@ +2005-01-19 Joel Sherrill <joel@OARcorp.com> + + * pc386/console/vgainit.c, pc386/wd8003/wd8003.c, shared/comm/uart.c: + Fix errors caught by gcc 4.x. + 2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org> * configure.ac: Require automake > 1.9. diff --git a/c/src/lib/libbsp/i386/pc386/console/vgainit.c b/c/src/lib/libbsp/i386/pc386/console/vgainit.c index 9dc658297f..1a233cf972 100644 --- a/c/src/lib/libbsp/i386/pc386/console/vgainit.c +++ b/c/src/lib/libbsp/i386/pc386/console/vgainit.c @@ -170,7 +170,7 @@ setmode(MODE mode) /* VGA 800x600 16-color graphics (BIOS mode 0x29). */ -static REGIO graphics_on[] = { +REGIO graphics_on[] = { /* Reset attr F/F */ IN, ATTRREG, 0, 0, 0, diff --git a/c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c b/c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c index 24dd116b7a..15dcf4a060 100644 --- a/c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c +++ b/c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c @@ -281,7 +281,8 @@ wd_rxDaemon (void *arg) unsigned int i2; unsigned int len; volatile unsigned char start, next, current; - char *shp, *temp; + unsigned char *shp, *temp; + unsigned short *real_short_ptr; rtems_event_set events; tport = wd_softc[0].port ; @@ -308,9 +309,11 @@ wd_rxDaemon (void *arg) if (current == start) break; + /* real_short_ptr avoids cast on lvalue which gcc no longer allows */ shp = dp->base + 1 + (SHAPAGE * start); next = *shp++; - len = *((short *)shp)++ - 4; + real_short_ptr = (unsigned short *)shp; + len = *(real_short_ptr)++ - 4; if (next >= OUTPAGE){ next = 0; diff --git a/c/src/lib/libbsp/i386/shared/comm/uart.c b/c/src/lib/libbsp/i386/shared/comm/uart.c index 78b4f70cb5..a2a619ec94 100644 --- a/c/src/lib/libbsp/i386/shared/comm/uart.c +++ b/c/src/lib/libbsp/i386/shared/comm/uart.c @@ -831,7 +831,7 @@ BSP_uart_termios_isr_com2() } /* ================= GDB support ===================*/ -static int sav[4] __attribute__ ((unused)); +int BSP_uart_dbgisr_com_regsav[4] __attribute__ ((unused)); /* * Interrupt service routine for COM1 - all, @@ -845,9 +845,9 @@ asm (".p2align 4"); asm (".text"); asm (".globl BSP_uart_dbgisr_com1"); asm ("BSP_uart_dbgisr_com1:"); -asm (" movl %eax, sav"); /* Save eax */ -asm (" movl %ebx, sav + 4"); /* Save ebx */ -asm (" movl %edx, sav + 8"); /* Save edx */ +asm (" movl %eax, BSP_uart_dbgisr_com_regsav"); /* Save eax */ +asm (" movl %ebx, BSP_uart_dbgisr_com_regsav + 4"); /* Save ebx */ +asm (" movl %edx, BSP_uart_dbgisr_com_regsav + 8"); /* Save edx */ asm (" movl $0, %ebx"); /* Clear flag */ @@ -878,37 +878,37 @@ asm (" cmpl $0, %ebx"); asm (" je uart_dbgisr_com1_3"); /* Flag is set */ -asm (" movl sav+4, %ebx"); /* Restore ebx */ -asm (" movl sav+8, %edx"); /* Restore edx */ +asm (" movl BSP_uart_dbgisr_com_regsav+4, %ebx"); /* Restore ebx */ +asm (" movl BSP_uart_dbgisr_com_regsav+8, %edx"); /* Restore edx */ /* Set TF bit */ -asm (" popl %eax"); /* Pop eip */ -asm (" movl %eax, sav + 4"); /* Save it */ -asm (" popl %eax"); /* Pop cs */ -asm (" movl %eax, sav + 8"); /* Save it */ -asm (" popl %eax"); /* Pop flags */ -asm (" orl $0x100, %eax"); /* Modify it */ -asm (" pushl %eax"); /* Push it back */ -asm (" movl sav+8, %eax"); /* Put back cs */ +asm (" popl %eax"); /* Pop eip */ +asm (" movl %eax, BSP_uart_dbgisr_com_regsav + 4"); /* Save it */ +asm (" popl %eax"); /* Pop cs */ +asm (" movl %eax, BSP_uart_dbgisr_com_regsav + 8"); /* Save it */ +asm (" popl %eax"); /* Pop flags */ +asm (" orl $0x100, %eax"); /* Modify it */ +asm (" pushl %eax"); /* Push it back */ +asm (" movl BSP_uart_dbgisr_com_regsav+8, %eax"); /* Put back cs */ asm (" pushl %eax"); -asm (" movl sav+4, %eax"); /* Put back eip */ +asm (" movl BSP_uart_dbgisr_com_regsav+4, %eax"); /* Put back eip */ asm (" pushl %eax"); /* Acknowledge IRQ */ asm (" movb $0x20, %al"); asm (" outb %al, $0x20"); -asm (" movl sav, %eax"); /* Restore eax */ -asm (" iret"); /* Done */ +asm (" movl BSP_uart_dbgisr_com_regsav, %eax"); /* Restore eax */ +asm (" iret"); /* Done */ /* Flag is not set */ asm("uart_dbgisr_com1_3:"); -asm (" movl sav+4, %ebx"); /* Restore ebx */ -asm (" movl sav+8, %edx"); /* Restore edx */ +asm (" movl BSP_uart_dbgisr_com_regsav+4, %ebx"); /* Restore ebx */ +asm (" movl BSP_uart_dbgisr_com_regsav+8, %edx"); /* Restore edx */ /* Acknowledge irq */ asm (" movb $0x20, %al"); asm (" outb %al, $0x20"); -asm (" movl sav, %eax"); /* Restore eax */ +asm (" movl BSP_uart_dbgisr_com_regsav, %eax"); /* Restore eax */ asm (" iret"); /* Done */ /* @@ -922,9 +922,9 @@ asm (".p2align 4"); asm (".text"); asm (".globl BSP_uart_dbgisr_com2"); asm ("BSP_uart_dbgisr_com2:"); -asm (" movl %eax, sav"); /* Save eax */ -asm (" movl %ebx, sav + 4"); /* Save ebx */ -asm (" movl %edx, sav + 8"); /* Save edx */ +asm (" movl %eax, BSP_uart_dbgisr_com_regsav"); /* Save eax */ +asm (" movl %ebx, BSP_uart_dbgisr_com_regsav + 4"); /* Save ebx */ +asm (" movl %edx, BSP_uart_dbgisr_com_regsav + 8"); /* Save edx */ asm (" movl $0, %ebx"); /* Clear flag */ @@ -955,35 +955,35 @@ asm (" cmpl $0, %ebx"); asm (" je uart_dbgisr_com2_3"); /* Flag is set */ -asm (" movl sav+4, %ebx"); /* Restore ebx */ -asm (" movl sav+8, %edx"); /* Restore edx */ +asm (" movl BSP_uart_dbgisr_com_regsav+4, %ebx"); /* Restore ebx */ +asm (" movl BSP_uart_dbgisr_com_regsav+8, %edx"); /* Restore edx */ /* Set TF bit */ asm (" popl %eax"); /* Pop eip */ -asm (" movl %eax, sav + 4"); /* Save it */ +asm (" movl %eax, BSP_uart_dbgisr_com_regsav + 4"); /* Save it */ asm (" popl %eax"); /* Pop cs */ -asm (" movl %eax, sav + 8"); /* Save it */ +asm (" movl %eax, BSP_uart_dbgisr_com_regsav + 8"); /* Save it */ asm (" popl %eax"); /* Pop flags */ asm (" orl $0x100, %eax"); /* Modify it */ asm (" pushl %eax"); /* Push it back */ -asm (" movl sav+8, %eax"); /* Put back cs */ +asm (" movl BSP_uart_dbgisr_com_regsav+8, %eax"); /* Put back cs */ asm (" pushl %eax"); -asm (" movl sav+4, %eax"); /* Put back eip */ +asm (" movl BSP_uart_dbgisr_com_regsav+4, %eax"); /* Put back eip */ asm (" pushl %eax"); /* Acknowledge IRQ */ asm (" movb $0x20, %al"); asm (" outb %al, $0x20"); -asm (" movl sav, %eax"); /* Restore eax */ +asm (" movl BSP_uart_dbgisr_com_regsav, %eax"); /* Restore eax */ asm (" iret"); /* Done */ /* Flag is not set */ asm("uart_dbgisr_com2_3:"); -asm (" movl sav+4, %ebx"); /* Restore ebx */ -asm (" movl sav+8, %edx"); /* Restore edx */ +asm (" movl BSP_uart_dbgisr_com_regsav+4, %ebx"); /* Restore ebx */ +asm (" movl BSP_uart_dbgisr_com_regsav+8, %edx"); /* Restore edx */ /* Acknowledge irq */ asm (" movb $0x20, %al"); asm (" outb %al, $0x20"); -asm (" movl sav, %eax"); /* Restore eax */ +asm (" movl BSP_uart_dbgisr_com_regsav, %eax"); /* Restore eax */ asm (" iret"); /* Done */ |