summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-09-12 15:16:00 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-09-12 15:16:00 +0000
commitbd51a636de805e88028a08791b4b4dff91cf4d71 (patch)
tree7065207d8702cee0ecdd0e8982cce95e25cb801c /c
parent2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-bd51a636de805e88028a08791b4b4dff91cf4d71.tar.bz2
2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1257/bsps * console/inch.c, console/keyboard.c, console/pc_keyb.c, console/vt.c: Code outside of cpukit should use the public API for rtems_interrupt_disable/rtems_interrupt_enable. By bypassing the public API and directly accessing _CPU_ISR_Disable and _CPU_ISR_Enable, they were bypassing the compiler memory barrier directive which could lead to problems. This patch also changes the type of the variable passed into these routines and addresses minor style issues.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/i386/pc386/ChangeLog12
-rw-r--r--c/src/lib/libbsp/i386/pc386/console/inch.c7
-rw-r--r--c/src/lib/libbsp/i386/pc386/console/keyboard.c24
-rw-r--r--c/src/lib/libbsp/i386/pc386/console/pc_keyb.c7
-rw-r--r--c/src/lib/libbsp/i386/pc386/console/vt.c8
5 files changed, 38 insertions, 20 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/ChangeLog b/c/src/lib/libbsp/i386/pc386/ChangeLog
index 62963a8b0c..611ff727c3 100644
--- a/c/src/lib/libbsp/i386/pc386/ChangeLog
+++ b/c/src/lib/libbsp/i386/pc386/ChangeLog
@@ -1,3 +1,15 @@
+2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com>
+
+ PR 1257/bsps
+ * console/inch.c, console/keyboard.c, console/pc_keyb.c, console/vt.c:
+ Code outside of cpukit should use the public API for
+ rtems_interrupt_disable/rtems_interrupt_enable. By bypassing the
+ public API and directly accessing _CPU_ISR_Disable and
+ _CPU_ISR_Enable, they were bypassing the compiler memory barrier
+ directive which could lead to problems. This patch also changes the
+ type of the variable passed into these routines and addresses minor
+ style issues.
+
2007-09-10 Joel Sherrill <joel.sherrill@OARcorp.com>
* console/vt.c: Changed tabs to spaces.
diff --git a/c/src/lib/libbsp/i386/pc386/console/inch.c b/c/src/lib/libbsp/i386/pc386/console/inch.c
index ead83d26de..90bacbe4fa 100644
--- a/c/src/lib/libbsp/i386/pc386/console/inch.c
+++ b/c/src/lib/libbsp/i386/pc386/console/inch.c
@@ -273,13 +273,14 @@ BSP_wait_polled_input(void)
*/
int rtems_kbpoll( void )
{
- int rc,level;
+ int rc;
+ rtems_interrupt_level level;
- _CPU_ISR_Disable(level);
+ rtems_interrupt_disable(level);
rc = ( kbd_first != kbd_last ) ? TRUE : FALSE;
- _CPU_ISR_Enable (level);
+ rtems_interrupt_enable(level);
return rc;
}
diff --git a/c/src/lib/libbsp/i386/pc386/console/keyboard.c b/c/src/lib/libbsp/i386/pc386/console/keyboard.c
index 0aab50355c..6b0b36d8e8 100644
--- a/c/src/lib/libbsp/i386/pc386/console/keyboard.c
+++ b/c/src/lib/libbsp/i386/pc386/console/keyboard.c
@@ -34,27 +34,31 @@ extern void rtemsReboot( void );
int set_bit(int nr, unsigned long * addr)
{
- int mask, retval,level;
+ int mask;
+ int retval;
+ rtems_interrupt_level level;
addr += nr >> 5;
mask = 1 << (nr & 0x1f);
- _CPU_ISR_Disable(level)
- retval = (mask & *addr) != 0;
- *addr |= mask;
- _CPU_ISR_Enable (level);
+ rtems_interrupt_disable(level);
+ retval = (mask & *addr) != 0;
+ *addr |= mask;
+ rtems_interrupt_enable(level);
return retval;
}
int clear_bit(int nr, unsigned long * addr)
{
- int mask, retval,level;
+ int mask;
+ int retval;
+ rtems_interrupt_level level;
addr += nr >> 5;
mask = 1 << (nr & 0x1f);
- _CPU_ISR_Disable(level)
- retval = (mask & *addr) != 0;
- *addr &= ~mask;
- _CPU_ISR_Enable (level);
+ rtems_interrupt_disable(level);
+ retval = (mask & *addr) != 0;
+ *addr &= ~mask;
+ rtems_interrupt_enable(level);
return retval;
}
diff --git a/c/src/lib/libbsp/i386/pc386/console/pc_keyb.c b/c/src/lib/libbsp/i386/pc386/console/pc_keyb.c
index 90dc6ed86c..4efe271c26 100644
--- a/c/src/lib/libbsp/i386/pc386/console/pc_keyb.c
+++ b/c/src/lib/libbsp/i386/pc386/console/pc_keyb.c
@@ -631,12 +631,13 @@ void pckbd_init_hw(void)
/*
char BSP_wait_polled_input( void )
{
- int c,level;
+ int c;
+ rtems_interrupt_level level;
- _CPU_ISR_Disable(level);
+ rtems_interrupt_disable(level);
while ( ( c= kbd_wait_for_input() ) < 0 )
continue;
- _CPU_ISR_Enable (level);
+ rtems_interrupt_enable(level);
return c;
}
*/
diff --git a/c/src/lib/libbsp/i386/pc386/console/vt.c b/c/src/lib/libbsp/i386/pc386/console/vt.c
index 6bc064003d..73a2a794a2 100644
--- a/c/src/lib/libbsp/i386/pc386/console/vt.c
+++ b/c/src/lib/libbsp/i386/pc386/console/vt.c
@@ -68,13 +68,13 @@ kd_nosound(unsigned long ignored)
void
_kd_mksound(unsigned int hz, unsigned int ticks)
{
- unsigned int count = 0;
- int level;
+ unsigned int count = 0;
+ rtems_interrupt_level level;
if (hz > 20 && hz < 32767)
count = 1193180 / hz;
- _CPU_ISR_Disable(level);
+ rtems_interrupt_disable(level);
/* del_timer(&sound_timer); */
if (count) {
/* enable counter 2 */
@@ -94,7 +94,7 @@ _kd_mksound(unsigned int hz, unsigned int ticks)
} else
kd_nosound(0);
- _CPU_ISR_Enable (level);
+ rtems_interrupt_enable(level);
return;
}