On Tue, Jul 26, 2011 at 06:45:31PM +0200, Joerg Sonnenberger wrote: > On Tue, Jul 26, 2011 at 06:19:21PM +0200, Nicolas Joly wrote: > > On Tue, Jul 26, 2011 at 05:27:38PM +0200, Joerg Sonnenberger wrote: > > > On Tue, Jul 26, 2011 at 02:59:04PM +0000, Nicolas Joly wrote: > > > > Module Name: src > > > > Committed By: njoly > > > > Date: Tue Jul 26 14:59:03 UTC 2011 > > > > > > > > Modified Files: > > > > src/sys/arch/alpha/alpha: autoconf.c > > > > > > > > Log Message: > > > > Make atoi func static, and constify > > > > > > Shouldn't this use strtol to implement atoi? > > > > We don't have strtol for kernel use. > > Then use strtoll. We have at least some conversion code in libkern.
Looking how many atoi() copies we have in tree, does it make sense to add the following at the end of libkern.h LIBKERN_INLINE int atoi(const char *) __unused; #ifdef LIBKERN_BODY LIBKERN_INLINE int atoi(const char *s) { return (int)strtoll(s, NULL, 10); } #endif and rename the conflicting ones (dm, ptyfs and procfs). njoly@lanfeust [NetBSD/src]> find sys -type f -name '*.[ch]'| xargs grep 'atoi(.*char' sys/arch/alpha/alpha/autoconf.c:static int atoi(const char *); sys/arch/alpha/alpha/autoconf.c:atoi(const char *s) sys/arch/amiga/dev/ite.c:inline static int atoi(const char *); sys/arch/amiga/dev/ite.c:atoi(const char *cp) sys/arch/atari/dev/ite.c:static inline int atoi(const char *); sys/arch/hp300/stand/common/devopen.c:atoi(char *cp) sys/arch/hp300/stand/common/samachdep.h:int atoi(char *); sys/arch/i386/stand/lib/bootmenu.c:atoi(const char *in) sys/arch/i386/stand/lib/bootmenu.h:int atoi(const char *); sys/arch/next68k/next68k/autoconf.c:static int atoi(const char *); sys/arch/next68k/next68k/autoconf.c:atoi(const char *s) sys/arch/next68k/stand/boot/devopen.c:int atoi(const char *); sys/arch/next68k/stand/boot/devopen.c:atoi(const char *cp) sys/arch/prep/stand/boot/devopen.c:int atoi(char *); sys/arch/prep/stand/boot/devopen.c:atoi(char *cp) sys/arch/rs6000/stand/boot/devopen.c:int atoi(char *); sys/arch/rs6000/stand/boot/devopen.c:atoi(char *cp) sys/arch/vax/boot/boot/devopen.c:int atoi(char *); sys/arch/x68k/dev/ite.c:inline static int atoi(const char *); sys/arch/x68k/dev/ite.c:atoi(const char *cp) sys/arch/zaurus/stand/zboot/bootmenu.c:atoi(const char *in) sys/arch/zaurus/stand/zboot/bootmenu.h:int atoi(const char *); sys/compat/ndis/subr_ntoskrnl.c:atoi(const char *str) sys/dev/dm/dm.h:uint64_t atoi(const char *); sys/dev/dm/dm_target_linear.c:atoi(const char *s) sys/dev/raidframe/rf_utils.c:rf_atoi(char *p) sys/dev/raidframe/rf_utils.h:int rf_atoi(char *p); sys/fs/ptyfs/ptyfs_vnops.c:static int atoi(const char *, size_t); sys/fs/ptyfs/ptyfs_vnops.c:atoi(const char *b, size_t len) sys/miscfs/procfs/procfs_vnops.c:static int atoi(const char *, size_t); sys/miscfs/procfs/procfs_vnops.c:atoi(const char *b, size_t len) -- Nicolas Joly Projects and Developments in Bioinformatics Institut Pasteur, Paris.