d1579b2d70
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended. HOWEVER! Some subsystems have #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b)) even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation. To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it. I have left a handful of bootloaders that are too annoying to compile-test, and some dead code: cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4)) It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them. Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!) |
||
---|---|---|
.. | ||
files.svr4 | ||
Makefile | ||
svr4_acl.h | ||
svr4_dirent.h | ||
svr4_errno.c | ||
svr4_errno.h | ||
svr4_exec_elf32.c | ||
svr4_exec_elf64.c | ||
svr4_exec.c | ||
svr4_exec.h | ||
svr4_fcntl.c | ||
svr4_fcntl.h | ||
svr4_filio.c | ||
svr4_filio.h | ||
svr4_fuser.h | ||
svr4_hrt.h | ||
svr4_ioctl.c | ||
svr4_ioctl.h | ||
svr4_ipc.c | ||
svr4_ipc.h | ||
svr4_lwp.c | ||
svr4_lwp.h | ||
svr4_misc.c | ||
svr4_mman.h | ||
svr4_mod.c | ||
svr4_net.c | ||
svr4_resource.c | ||
svr4_resource.h | ||
svr4_schedctl.c | ||
svr4_schedctl.h | ||
svr4_siginfo.h | ||
svr4_signal.c | ||
svr4_signal.h | ||
svr4_signo.c | ||
svr4_socket.c | ||
svr4_socket.h | ||
svr4_sockio.c | ||
svr4_sockio.h | ||
svr4_sockmod.h | ||
svr4_stat.c | ||
svr4_stat.h | ||
svr4_statvfs.h | ||
svr4_stream.c | ||
svr4_stropts.h | ||
svr4_syscall.h | ||
svr4_syscallargs.h | ||
svr4_syscalls.c | ||
svr4_sysconfig.h | ||
svr4_sysent.c | ||
svr4_systeminfo.h | ||
svr4_termios.c | ||
svr4_termios.h | ||
svr4_time.h | ||
svr4_timod.h | ||
svr4_ttold.c | ||
svr4_ttold.h | ||
svr4_types.h | ||
svr4_ucontext.h | ||
svr4_ulimit.h | ||
svr4_ustat.h | ||
svr4_util.h | ||
svr4_utsname.h | ||
svr4_wait.h | ||
syscalls.conf | ||
syscalls.master |