summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2005-01-19 21:27:39 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2005-01-19 21:27:39 +0000
commit16cc328967c64c8c0bda99c1cdc0cf1a773c2c24 (patch)
treec77d2d4cb50365866e8d7c08310d7e22f55c32a5 /c/src/lib/libbsp/i386
parent2005-01-18 Ralf Corsepius <ralf.corsepius@rtems.org> (diff)
downloadrtems-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/ChangeLog5
-rw-r--r--c/src/lib/libbsp/i386/pc386/console/vgainit.c2
-rw-r--r--c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c7
-rw-r--r--c/src/lib/libbsp/i386/shared/comm/uart.c66
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 */