Mercurial > ecos
diff packages/redboot/current/src/io.c @ 2614:6cbecf3cc2e4
* src/fconfig.c, src/flash.c, src/io.c, src/load.c, src/main.c,
src/xyzModem.c, include/redboot.h: more signed vs. unsigned char
issues.
* src/fs/e2fs.c (e2fs_mount): Avoid compiler strict aliasing
problem.
* include/fis.h (struct fis_image_desc): Make fis name be
signed char to reduce warnings.
* include/flash_config.h (struct _config): Make config_data
be signed char to reduce warnings.
* include/redboot.h: mon_write_char and mon_read_char_with_timeout
take unsigned char, to reduce warnings.
* src/parse.c: Add const to err_printf format.
* src/fconfig.c: Many signed/unsigned warning cleanups.
* src/io.c: Ditto.
* src/xyzModem.c: Ditto.
* src/load.c: Ditto.
* src/flash.c: Ditto.
* src/fconfig.c (flash_write_config): Warning cleanup.
* src/net/net_io.c (do_ip_addr): Warning cleanup.
* src/flash.c (fis_create): Warning cleanup.
* include/net/net.h: Include redboot.h for tick functions.
* include/net/net.h: Pull tick functions into redboot.h as they
are used more widely than the net stack.
* include/redboot.h: Declare tick functions.
* src/main.c (cyg_start): Correctly compute workspace_end so it
works even on high RAM values [bug #1000202].
Don't use workspace_end directly for context init - it gets
modified.
(do_go): Don't use workspace_end directly for context init -
it gets modified.
| author | jlarmour |
|---|---|
| date | Tue, 11 Nov 2008 04:32:10 +0000 |
| parents | 5d5572c64422 |
| children | 74dbf4c3f2e1 |
line wrap: on
line diff
--- a/packages/redboot/current/src/io.c +++ b/packages/redboot/current/src/io.c @@ -10,6 +10,7 @@ // This file is part of eCos, the Embedded Configurable Operating System. // Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc. // Copyright (C) 2002, 2003, 2005 Gary Thomas +// Copyright (C) 2004, 2008 eCosCentric Limited // // eCos is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the Free @@ -119,7 +120,7 @@ do_channel(int argc, char *argv[]) } void -mon_write_char(char c) +mon_write_char(unsigned char c) { hal_virtual_comm_table_t *__chan; @@ -148,7 +149,7 @@ mon_write_char(char c) } static void -mon_read_char(char *c) +mon_read_char(unsigned char *c) { hal_virtual_comm_table_t* __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); @@ -165,7 +166,7 @@ static int _mon_timeout; #endif bool -mon_read_char_with_timeout(char *c) +mon_read_char_with_timeout(unsigned char *c) { bool res = false; hal_virtual_comm_table_t *__chan; @@ -253,10 +254,10 @@ mon_set_read_char_timeout(int ms) bool _rb_break(int timeout) { - char c; + unsigned char c; mon_set_read_char_timeout(timeout); if (mon_read_char_with_timeout(&c)) { - if (c == 0x03) { // Test for ^C + if (c == '\x03') { // Test for ^C return true; } } @@ -402,7 +403,7 @@ int #define CTRL(c) ((c)&0x1F) #ifdef CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES // Special handling of ANSI keyboard sequences (arrows, etc) - if (c == 0x1B) { + if (c == '\x1B') { // Leadin for ANSI keyboard sequence ansi_state = 1; continue; @@ -693,7 +694,7 @@ int } #endif if (console_echo) { - mon_write_char(c); + mon_write_char((unsigned char)c); } if (ip == eol) { // Advance both pointers
