From 2d7d605fdfde31394a46a9bc57f39f20e2f39334 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 19 Aug 1998 14:41:23 +0000 Subject: Patch from Aleksey : It fixes netboot build problem, KA9Q configuration for pc386, some compiler wardning, it also removed some stuff ifdef'ed with '#if 0'. --- c/src/lib/libbsp/i386/pc386/console/console.c | 16 ++++++++++------ c/src/lib/libbsp/i386/pc386/network/network.c | 2 +- c/src/lib/libbsp/i386/pc386/start/Makefile.in | 5 ++--- c/src/lib/libbsp/i386/pc386/start/start.s | 2 +- c/src/lib/libbsp/i386/pc386/timer/timer.c | 15 ++++++++++----- c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in | 7 ++++++- c/src/lib/libbsp/i386/shared/io/bspIo.h | 4 ++-- c/src/lib/libbsp/i386/shared/irq/irq_asm.s | 4 ++-- 8 files changed, 34 insertions(+), 21 deletions(-) (limited to 'c') diff --git a/c/src/lib/libbsp/i386/pc386/console/console.c b/c/src/lib/libbsp/i386/pc386/console/console.c index f67072a3c4..e57d077bcd 100644 --- a/c/src/lib/libbsp/i386/pc386/console/console.c +++ b/c/src/lib/libbsp/i386/pc386/console/console.c @@ -40,6 +40,7 @@ #include #include #include +#include int PC386ConsolePort = PC386_CONSOLE_PORT_CONSOLE; @@ -61,8 +62,8 @@ static rtems_irq_connect_data console_isr_data = {PC_386_KEYBOARD, extern rtems_boolean _IBMPC_scankey(char *); /* defined in 'inch.c' */ -extern BSP_polling_getchar_function_type BSP_wait_polled_input(); -extern void _IBMPC_initVideo(); +extern char BSP_wait_polled_input(void); +extern void _IBMPC_initVideo(void); void console_reserve_resources(rtems_configuration_table *conf) { @@ -169,9 +170,9 @@ console_initialize(rtems_device_major_number major, { /* Install keyboard interrupt handler */ - status = pc386_install_rtems_irq_handler(&console_isr_data); + status = pc386_install_rtems_irq_handler(&console_isr_data); - if (!status) + if (!status) { printk("Error installing keyboard interrupt handler!\n"); rtems_fatal_error_occurred(status); @@ -481,8 +482,11 @@ conSetAttr(int minor, const struct termios *t) * BSP initialization */ -BSP_output_char_function_type BSP_output_char = (BSP_output_char_function_type) _IBMPC_outch; -BSP_polling_getchar_function_type BSP_poll_char = BSP_wait_polled_input; +BSP_output_char_function_type BSP_output_char = + (BSP_output_char_function_type) _IBMPC_outch; + +BSP_polling_getchar_function_type BSP_poll_char = BSP_wait_polled_input; + void BSP_emergency_output_init() { _IBMPC_initVideo(); diff --git a/c/src/lib/libbsp/i386/pc386/network/network.c b/c/src/lib/libbsp/i386/pc386/network/network.c index 4dd718fb79..2a13c6e514 100644 --- a/c/src/lib/libbsp/i386/pc386/network/network.c +++ b/c/src/lib/libbsp/i386/pc386/network/network.c @@ -511,7 +511,7 @@ rtems_ka9q_driver_attach (int argc, char *argv[], void *p) sscanf(argv[++argIndex], "%x", &(dp->port)); } else if (strcmp ("bpar", argv[argIndex]) == 0) { - sscanf(argv[++argIndex], "%x", (unsigned) &(dp->bpar)); + sscanf(argv[++argIndex], "%x", (unsigned *) &(dp->bpar)); dp->base = (unsigned char *)(dp->bpar); } else { diff --git a/c/src/lib/libbsp/i386/pc386/start/Makefile.in b/c/src/lib/libbsp/i386/pc386/start/Makefile.in index 1f4aacfc86..5d0056ecfb 100644 --- a/c/src/lib/libbsp/i386/pc386/start/Makefile.in +++ b/c/src/lib/libbsp/i386/pc386/start/Makefile.in @@ -64,7 +64,6 @@ ${ARCH}/start16.o: start16.s $(AS) $(ASFLAGS) -o $@ $*.i ${ARCH}/start16.bin: ${ARCH}/start16.o - - $(LD) -N -T $(LINKCMDS) -Ttext $(START16ADDR) -e start16 -nostdlib \ + $(LD) -N -T $(LINKCMDS) -Ttext $(START16ADDR) -e start16 -nostdlib \ --oformat=elf32-i386 -o $(basename $@).obj $(basename $@).o - - $(OBJCOPY) -O binary $(basename $@).obj $@ - cp $(basename $@).o $(basename $@).bin + $(OBJCOPY) -O binary $(basename $@).obj $@ diff --git a/c/src/lib/libbsp/i386/pc386/start/start.s b/c/src/lib/libbsp/i386/pc386/start/start.s index 5ff92f3134..c2427500dc 100644 --- a/c/src/lib/libbsp/i386/pc386/start/start.s +++ b/c/src/lib/libbsp/i386/pc386/start/start.s @@ -106,7 +106,7 @@ speakl: jmp speakl # and SPIN!!! call printk addl $4, esp - call debugPollingGetChar + /* call debugPollingGetChar */ #endif diff --git a/c/src/lib/libbsp/i386/pc386/timer/timer.c b/c/src/lib/libbsp/i386/pc386/timer/timer.c index 4fe0fb2cd9..8ae7f7c011 100644 --- a/c/src/lib/libbsp/i386/pc386/timer/timer.c +++ b/c/src/lib/libbsp/i386/pc386/timer/timer.c @@ -55,9 +55,8 @@ volatile rtems_unsigned32 Ttimer_val; /*-------------------------------------------------------------------------+ | External Prototypes +--------------------------------------------------------------------------*/ -extern void timerisr(); +extern void timerisr(void); /* timer (int 08h) Interrupt Service Routine (defined in 'timerisr.s') */ -extern int clockIsOn(const rtems_irq_connect_data*); /*-------------------------------------------------------------------------+ | Pentium optimized timer handling. @@ -155,7 +154,7 @@ Read_timer(void) | Arguments: None. | Returns: Nothing. +--------------------------------------------------------------------------*/ -void +static void timerOff(const rtems_raw_irq_connect_data* used) { /* @@ -169,7 +168,8 @@ timerOff(const rtems_raw_irq_connect_data* used) } /* Timer_exit */ -void timerOn(const rtems_raw_irq_connect_data* used) +static void +timerOn(const rtems_raw_irq_connect_data* used) { /* load timer for US_PER_ISR microsecond period */ outport_byte(TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_RATEGEN); @@ -181,12 +181,17 @@ void timerOn(const rtems_raw_irq_connect_data* used) pc386_irq_enable_at_i8259s(used->idtIndex - PC386_IRQ_VECTOR_BASE); } +static int +timerIsOn(const rtems_raw_irq_connect_data *used) +{ + return pc386_irq_enabled_at_i8259s(used->idtIndex - PC386_IRQ_VECTOR_BASE);} + static rtems_raw_irq_connect_data timer_raw_irq_data = { PC_386_PERIODIC_TIMER + PC386_IRQ_VECTOR_BASE, timerisr, timerOn, timerOff, - clockIsOn + timerIsOn }; /*-------------------------------------------------------------------------+ diff --git a/c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in b/c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in index db155ca01d..93c14df9ed 100644 --- a/c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in +++ b/c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in @@ -8,7 +8,11 @@ VPATH = @srcdir@ RTEMS_ROOT = @top_srcdir@ PROJECT_ROOT = @PROJECT_ROOT@ -BSP_PIECES=startup clock console timer pc386dev network +# We only build the Network library if HAS_KA9Q was defined +NETWORK_yes_V = network +NETWORK = $(NETWORK_$(HAS_KA9Q)_V) + +BSP_PIECES=startup clock console timer pc386dev $(NETWORK) GENERIC_PIECES= # bummer; have to use $foreach since % pattern subst rules only replace 1x @@ -52,3 +56,4 @@ all: ${ARCH} $(SRCS) $(LIB) + diff --git a/c/src/lib/libbsp/i386/shared/io/bspIo.h b/c/src/lib/libbsp/i386/shared/io/bspIo.h index 337d46a699..e9dc6f4bfb 100644 --- a/c/src/lib/libbsp/i386/shared/io/bspIo.h +++ b/c/src/lib/libbsp/i386/shared/io/bspIo.h @@ -22,11 +22,11 @@ * functionnality described after the next command. */ typedef void (*BSP_output_char_function_type) (char c); -typedef char (*BSP_polling_getchar_function_type) (char c); +typedef char (*BSP_polling_getchar_function_type) (void); extern BSP_output_char_function_type BSP_output_char; extern BSP_polling_getchar_function_type BSP_poll_char; -extern void BSP_emergency_output_init(); +extern void BSP_emergency_output_init(void); /* * All the function declared as extern after this comment * are available for each ix86 BSP by compiling and linking diff --git a/c/src/lib/libbsp/i386/shared/irq/irq_asm.s b/c/src/lib/libbsp/i386/shared/irq/irq_asm.s index 7765a9dd22..747e7ab564 100644 --- a/c/src/lib/libbsp/i386/shared/irq/irq_asm.s +++ b/c/src/lib/libbsp/i386/shared/irq/irq_asm.s @@ -21,13 +21,13 @@ /*PAGE - * void _new_ISR_Displatch() + * void _New_ISR_Displatch() * * Entry point from the outermost interrupt service routine exit. * The current stack is the supervisor mode stack. */ - PUBLIC (_new_ISR_Displatch) + PUBLIC (_New_ISR_Displatch) SYM (_New_ISR_Displatch): call SYM (_Thread_Dispatch) # invoke Dispatcher -- cgit v1.2.3