--- c/src/lib/libbsp/i386/pc386/console/conscfg.c | 7 +- c/src/lib/libbsp/i386/pc386/console/keyboard.c | 99 +++++++++++++------------- c/src/lib/libbsp/i386/pc386/console/outch.c | 6 +- c/src/lib/libbsp/i386/pc386/console/rtd316.c | 3 +- c/src/lib/libbsp/i386/pc386/console/rtd316.h | 24 ++++++- c/src/lib/libbsp/i386/pc386/ide/ide.c | 2 + c/src/lib/libbsp/i386/pc386/include/bsp.h | 6 ++ c/src/lib/libbsp/i386/pc386/startup/bspstart.c | 3 - c/src/lib/libbsp/i386/pc386/timer/timer.c | 39 +++++----- c/src/lib/libbsp/i386/shared/comm/i386-stub.c | 12 ++-- 10 files changed, 122 insertions(+), 79 deletions(-)
diff --git a/c/src/lib/libbsp/i386/pc386/console/conscfg.c b/c/src/lib/libbsp/i386/pc386/console/conscfg.c index f9ed5d8..f0295ef 100644 --- a/c/src/lib/libbsp/i386/pc386/console/conscfg.c +++ b/c/src/lib/libbsp/i386/pc386/console/conscfg.c @@ -5,7 +5,7 @@ */ /* - * COPYRIGHT (c) 1989-2011. + * COPYRIGHT (c) 1989-2014. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -21,6 +21,7 @@ #include "vgacons.h" #include <bsp/irq.h> #include <rtems/pci.h> +#include <bsp/rtd316.h> #define VGA_CONSOLE_FUNCTIONS &vgacons_fns #if 0 @@ -39,7 +40,7 @@ #define CLOCK_RATE (115200 * 16) -uint8_t com_get_register(uint32_t addr, uint8_t i) +static uint8_t com_get_register(uint32_t addr, uint8_t i) { register uint8_t val; @@ -47,7 +48,7 @@ uint8_t com_get_register(uint32_t addr, uint8_t i) return val; } -void com_set_register(uint32_t addr, uint8_t i, uint8_t val) +static void com_set_register(uint32_t addr, uint8_t i, uint8_t val) { outport_byte( (addr + i),val ); } diff --git a/c/src/lib/libbsp/i386/pc386/console/keyboard.c b/c/src/lib/libbsp/i386/pc386/console/keyboard.c index 271c5e3..3a33c54 100644 --- a/c/src/lib/libbsp/i386/pc386/console/keyboard.c +++ b/c/src/lib/libbsp/i386/pc386/console/keyboard.c @@ -28,7 +28,7 @@ #define KBD_DEFLOCK 0 #endif -int set_bit(int nr, unsigned long * addr) +static int set_bit(int nr, unsigned long * addr) { int mask; int retval; @@ -43,7 +43,7 @@ int set_bit(int nr, unsigned long * addr) return retval; } -int clear_bit(int nr, unsigned long * addr) +static int clear_bit(int nr, unsigned long * addr) { int mask; int retval; @@ -58,7 +58,7 @@ int clear_bit(int nr, unsigned long * addr) return retval; } -int test_bit(int nr, unsigned long * addr) +static int test_bit(int nr, unsigned long * addr) { int mask; @@ -167,19 +167,20 @@ static int sysrq_pressed; * string, and in both cases we might assume that it is * in utf-8 already. */ -void to_utf8(ushort c) { - if (c < 0x80) - put_queue(c); /* 0******* */ - else if (c < 0x800) { - put_queue(0xc0 | (c >> 6)); /* 110***** 10****** */ - put_queue(0x80 | (c & 0x3f)); - } else { - put_queue(0xe0 | (c >> 12)); /* 1110**** 10****** 10****** */ - put_queue(0x80 | ((c >> 6) & 0x3f)); - put_queue(0x80 | (c & 0x3f)); - } - /* UTF-8 is defined for words of up to 31 bits, - but we need only 16 bits here */ +static void to_utf8(ushort c) +{ + if (c < 0x80) + put_queue(c); /* 0******* */ + else if (c < 0x800) { + put_queue(0xc0 | (c >> 6)); /* 110***** 10****** */ + put_queue(0x80 | (c & 0x3f)); + } else { + put_queue(0xe0 | (c >> 12)); /* 1110**** 10****** 10****** */ + put_queue(0x80 | ((c >> 6) & 0x3f)); + put_queue(0x80 | (c & 0x3f)); + } + /* UTF-8 is defined for words of up to 31 bits, + but we need only 16 bits here */ } /* @@ -333,20 +334,19 @@ void handle_scancode(unsigned char scancode, int down) static void ( *driver_input_handler_kbd )( void *, unsigned short, unsigned long ) = 0; /* */ -void kbd_set_driver_handler( void ( *handler )( void *, unsigned short, unsigned long ) ) +void kbd_set_driver_handler( + void ( *handler )( void *, unsigned short, unsigned long ) +) { driver_input_handler_kbd = handler; } static void put_queue(int ch) { - if( driver_input_handler_kbd ) - { - driver_input_handler_kbd( ( void *)kbd, (unsigned short)ch, 0 ); - } - else - { - add_to_queue( ch ); + if ( driver_input_handler_kbd ) { + driver_input_handler_kbd( ( void *)kbd, (unsigned short)ch, 0 ); + } else { + add_to_queue( ch ); } } @@ -377,7 +377,6 @@ static void enter(void) if (vc_kbd_mode(kbd,VC_CRLF)) put_queue(10); - } static void caps_toggle(void) @@ -403,12 +402,10 @@ static void hold(void) if (rep ) return; chg_vc_kbd_led(kbd, VC_SCROLLOCK ); - } static void num(void) { - if (vc_kbd_mode(kbd,VC_APPLIC)) applkey('P', 1); else @@ -771,39 +768,45 @@ static unsigned char ledstate = 0xff; /* undefined */ static unsigned char ledioctl; unsigned char getledstate(void) { - return ledstate; + return ledstate; } void setledstate(struct kbd_struct *kbd, unsigned int led) { - if (!(led & ~7)) { - ledioctl = led; - kbd->ledmode = LED_SHOW_IOCTL; - } else + if (!(led & ~7)) { + ledioctl = led; + kbd->ledmode = LED_SHOW_IOCTL; + } else ; - kbd->ledmode = LED_SHOW_FLAGS; - set_leds(); + kbd->ledmode = LED_SHOW_FLAGS; + set_leds(); } static struct ledptr { - unsigned int *addr; - unsigned int mask; - unsigned char valid:1; + unsigned int *addr; + unsigned int mask; + unsigned char valid:1; } ledptrs[3]; -void register_leds(int console, unsigned int led, - unsigned int *addr, unsigned int mask) { - struct kbd_struct *kbd = kbd_table + console; +void register_leds( + int console, + unsigned int led, + unsigned int *addr, + unsigned int mask +) +{ + struct kbd_struct *kbd = kbd_table + console; - if (led < 3) { - ledptrs[led].addr = addr; - ledptrs[led].mask = mask; - ledptrs[led].valid = 1; - kbd->ledmode = LED_SHOW_MEM; - } else - kbd->ledmode = LED_SHOW_FLAGS; + if (led < 3) { + ledptrs[led].addr = addr; + ledptrs[led].mask = mask; + ledptrs[led].valid = 1; + kbd->ledmode = LED_SHOW_MEM; + } else + kbd->ledmode = LED_SHOW_FLAGS; } -static inline unsigned char getleds(void){ +static inline unsigned char getleds(void) +{ struct kbd_struct *kbd = kbd_table + fg_console; diff --git a/c/src/lib/libbsp/i386/pc386/console/outch.c b/c/src/lib/libbsp/i386/pc386/console/outch.c index f0c7599..90ffedf 100644 --- a/c/src/lib/libbsp/i386/pc386/console/outch.c +++ b/c/src/lib/libbsp/i386/pc386/console/outch.c @@ -239,7 +239,7 @@ int ro,co; return rval; } -void +static void clear_screen(void) { int i,j; @@ -308,6 +308,10 @@ _IBMPC_initVideo(void) } /* _IBMPC_initVideo */ /* for old DOS compatibility n-curses type of applications */ +void gotoxy( int x, int y ); +int whereX( void ); +int whereY( void ); + void gotoxy( int x, int y ) { gotorc(y,x); diff --git a/c/src/lib/libbsp/i386/pc386/console/rtd316.c b/c/src/lib/libbsp/i386/pc386/console/rtd316.c index e27f128..7219ff6 100644 --- a/c/src/lib/libbsp/i386/pc386/console/rtd316.c +++ b/c/src/lib/libbsp/i386/pc386/console/rtd316.c @@ -7,7 +7,7 @@ */ /* - * COPYRIGHT (c) 1989-2012. + * COPYRIGHT (c) 1989-2014. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -26,6 +26,7 @@ #include <rtems/bspIo.h> #include <bsp/rtd316.h> #include <rtems/score/i386.h> +#include <rtems/console_private.h> #define RTD_CLOCK_RATE (460800 * 32) diff --git a/c/src/lib/libbsp/i386/pc386/console/rtd316.h b/c/src/lib/libbsp/i386/pc386/console/rtd316.h index 6c3478c..aabad2c 100644 --- a/c/src/lib/libbsp/i386/pc386/console/rtd316.h +++ b/c/src/lib/libbsp/i386/pc386/console/rtd316.h @@ -7,7 +7,7 @@ */ /* - * COPYRIGHT (c) 1989-2012. + * COPYRIGHT (c) 1989-2014. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -47,6 +47,28 @@ rtems_device_driver rtd316_initialize( void *arg ); +/** + * @brief RTD316 Obtain Register Helper + * + * This method is used to read registers on the RTD316. + * + * @param[in] addr is the base address + * @param[in] reg is the register number + * + * @return This method returns the value of the register. + */ +uint8_t rtd316_com_get_register(uint32_t addr, uint8_t reg); + +/** + * @brief RTD316 Set Register Helper + * + * This method is used to set registers on the RTD316. + * + * @param[in] addr is the base address + * @param[in] reg is the register number + */ +void rtd316_com_set_register(uint32_t addr,uint8_t reg, uint8_t val); + #ifdef __cplusplus } #endif diff --git a/c/src/lib/libbsp/i386/pc386/ide/ide.c b/c/src/lib/libbsp/i386/pc386/ide/ide.c index e74a193..73b6df2 100644 --- a/c/src/lib/libbsp/i386/pc386/ide/ide.c +++ b/c/src/lib/libbsp/i386/pc386/ide/ide.c @@ -230,6 +230,8 @@ static void pc386_ide_initialize char* p = &model_number[0]; bool data_ready; + (void) cur_multiple_sectors; /* avoid set but not used warning */ + memset(model_number, 0, sizeof(model_number)); outport_byte(port+IDE_REGISTER_DEVICE_HEAD, diff --git a/c/src/lib/libbsp/i386/pc386/include/bsp.h b/c/src/lib/libbsp/i386/pc386/include/bsp.h index ef16b4a..7e6d3f3 100644 --- a/c/src/lib/libbsp/i386/pc386/include/bsp.h +++ b/c/src/lib/libbsp/i386/pc386/include/bsp.h @@ -179,9 +179,15 @@ char _IBMPC_inch (void); /* from 'inch.c' */ char _IBMPC_inch_sleep (void); /* from 'inch.c' */ void Wait_X_ms(unsigned int timeToWait); /* from 'timer.c' */ +void Calibrate_loop_1ms(void); /* from 'timer.c' */ + +void rtems_irq_mngt_init(void); /* from 'irq_init.c' */ + +void bsp_size_memory(void); /* from 'bspstart.c' */ void Clock_driver_install_handler(void); /* from 'ckinit.c' */ void Clock_driver_support_initialize_hardware(void); /* from 'ckinit.c' */ + size_t read_aux(char * buffer, size_t count); /* from 'ps2_mouse.c' */ /* Definitions for BSPConsolePort */ diff --git a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c index ff67cc7..ebe6b7c 100644 --- a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c +++ b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c @@ -36,9 +36,6 @@ /* * External routines */ -extern void Calibrate_loop_1ms(void); -extern void rtems_irq_mngt_init(void); -extern void bsp_size_memory(void); void Clock_driver_install_handler(void); /*-------------------------------------------------------------------------+ diff --git a/c/src/lib/libbsp/i386/pc386/timer/timer.c b/c/src/lib/libbsp/i386/pc386/timer/timer.c index 953db03..541d2e3 100644 --- a/c/src/lib/libbsp/i386/pc386/timer/timer.c +++ b/c/src/lib/libbsp/i386/pc386/timer/timer.c @@ -65,15 +65,16 @@ void Timer_exit(void); */ /* - * Timer cleanup routine at RTEMS exit. NOTE: This routine is - * not really necessary, since there will be a reset at exit. + * Timer cleanup routine at RTEMS exit. + * + * NOTE: This routine is not really necessary, since there will be + * a reset at exit. */ - -void tsc_timer_exit(void) +static void tsc_timer_exit(void) { } -void tsc_timer_initialize(void) +static void tsc_timer_initialize(void) { static bool First = true; @@ -86,9 +87,9 @@ void tsc_timer_initialize(void) } /* - * + * Read TSC timer value. */ -uint32_t tsc_read_timer(void) +static uint32_t tsc_read_timer(void) { register uint32_t total; @@ -151,16 +152,18 @@ static rtems_raw_irq_connect_data timer_raw_irq_data = { }; /* - * Timer cleanup routine at RTEMS exit. NOTE: This routine is - * not really necessary, since there will be a reset at exit. - */ void -i386_timer_exit(void) + * Timer cleanup routine at RTEMS exit. + * + * NOTE: This routine is not really necessary, since there will be + * a reset at exit. + */ +static void i386_timer_exit(void) { i386_delete_idt_entry (&timer_raw_irq_data); } extern void rtems_irq_prologue_0(void); -void i386_timer_initialize(void) +static void i386_timer_initialize(void) { static bool First = true; @@ -192,7 +195,7 @@ void i386_timer_initialize(void) /* * Read hardware timer value. */ -uint32_t i386_read_timer(void) +static uint32_t i386_read_timer(void) { register uint32_t total, clicks; register uint8_t lsb, msb; @@ -268,7 +271,7 @@ static unsigned short lastLoadedValue; * * Returns: Nothing. Loaded value must be a number of clock bits... */ -void loadTimerValue( unsigned short loadedValue ) +static void loadTimerValue( unsigned short loadedValue ) { lastLoadedValue = loadedValue; outport_byte(TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_SQWAVE); @@ -282,7 +285,7 @@ void loadTimerValue( unsigned short loadedValue ) * * Returns: number of clock bits elapsed since last load. */ -unsigned int readTimer0(void) +static unsigned int readTimer0(void) { unsigned short lsb, msb; unsigned char status; @@ -302,19 +305,19 @@ unsigned int readTimer0(void) return (2*lastLoadedValue - count); } -void Timer0Reset(void) +static void Timer0Reset(void) { loadTimerValue(0xffff); readTimer0(); } -void fastLoop (unsigned int loopCount) +static void fastLoop (unsigned int loopCount) { unsigned int i; for( i=0; i < loopCount; i++ )outport_byte( SLOW_DOWN_IO, 0 ); } -void slowLoop (unsigned int loopCount) +static void slowLoop (unsigned int loopCount) { unsigned int j; for (j=0; j <100 ; j++) { diff --git a/c/src/lib/libbsp/i386/shared/comm/i386-stub.c b/c/src/lib/libbsp/i386/shared/comm/i386-stub.c index 578b018..8113d7e 100644 --- a/c/src/lib/libbsp/i386/shared/comm/i386-stub.c +++ b/c/src/lib/libbsp/i386/shared/comm/i386-stub.c @@ -607,7 +607,7 @@ set_char (char *addr, int val) /* return a pointer to the last char put in buf (null) */ /* If MAY_FAULT is non-zero, then we should set mem_err in response to a fault; if zero treat a fault like any other fault in the stub. */ -char * +static char * mem2hex (char *mem, char *buf, int count, int may_fault) { int i; @@ -654,7 +654,7 @@ hex2mem (char *buf, char *mem, int count, int may_fault) /* this function takes the 386 exception vector and attempts to translate this number into a unix compatible signal value */ -int +static int computeSignal (int exceptionVector) { int sigval; @@ -715,7 +715,7 @@ computeSignal (int exceptionVector) /* WHILE WE FIND NICE HEX CHARS, BUILD AN INT */ /* RETURN NUMBER OF CHARS PROCESSED */ /**********************************************/ -int +static int hexToInt (char **ptr, int *intValue) { int numChars = 0; @@ -742,8 +742,12 @@ hexToInt (char **ptr, int *intValue) /* * This function does all command procesing for interfacing to gdb. + * + * NOTE: This method is called from assembly code so must be marked + * as used. */ -void +static void handle_exception (int exceptionVector) __attribute__((used)); +static void handle_exception (int exceptionVector) { int sigval; -- 1.9.3 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel