diff packages/redboot/current/src/net/net_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 b8111f0a6f98
children 74dbf4c3f2e1
line wrap: on
line diff
--- a/packages/redboot/current/src/net/net_io.c
+++ b/packages/redboot/current/src/net/net_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, 2004 Red Hat, Inc.
 // Copyright (C) 2002, 2003, 2004 Gary Thomas
+// Copyright (C) 2004,2005 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
@@ -887,12 +888,11 @@ do_ip_addr(int argc, char *argv[])
         char *slash_pos;
         /* see if the (optional) mask length was given */
         if( (slash_pos = strchr(ip_addr, '/')) ) {
-            int mask_len;
-            unsigned long mask;
+            unsigned long mask, mask_len;
             *slash_pos = '\0';
             slash_pos++;
-            if( !parse_num(slash_pos, (unsigned long *)&mask_len, 0, 0) ||  
-                mask_len <= 0 || mask_len > 32 ) {
+            if( !parse_num(slash_pos, &mask_len, 0, 0) ||  
+                mask_len == 0 || mask_len > 32 ) {
                 diag_printf("Invalid mask length: %s\n", slash_pos);
                 return;
             }