History log of /src/sys/compat/common/sysv_ipc_50.c |
Revision | | Date | Author | Comments |
1.6 |
| 27-Jan-2019 |
pgoyette | Merge the [pgoyette-compat] branch
|
1.5 |
| 03-Sep-2018 |
riastradh | Rename min/max -> uimin/uimax for better honesty.
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!)
|
1.4 |
| 03-Dec-2015 |
pgoyette | branches: 1.4.16; 1.4.18; Add comment to #ifdef - it's a long way from its original #if
|
1.3 |
| 10-May-2015 |
pgoyette | Split the SYSV* compat code out into a separate compat_sysv module.
For monolithic kernels, both modules will be compiled as "built-ins", while modular environments will be able to load the SYSVSEM, SYSVSHM, and SYSVMSG code independant from the rest of compat.
This is a necessary precursor step to making the "STD" SYSV* code into a separate module.
Tested in both monolithic and modular environments with no errors seen.
|
1.2 |
| 21-Jan-2009 |
christos | branches: 1.2.4; 1.2.6; 1.2.28; 1.2.46; compile into nothing if not compat 50.
|
1.1 |
| 19-Jan-2009 |
christos | Provide compatibility for pre-christos-time_t sysv sysctls.
|
1.2.46.2 |
| 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.2.46.1 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.2.28.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.2.6.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.2.6.1 |
| 21-Jan-2009 |
yamt | file sysv_ipc_50.c was added on branch yamt-nfs-mp on 2009-05-04 08:12:17 +0000
|
1.2.4.2 |
| 03-Mar-2009 |
skrll | Sync with HEAD.
|
1.2.4.1 |
| 21-Jan-2009 |
skrll | file sysv_ipc_50.c was added on branch nick-hppapmap on 2009-03-03 18:30:07 +0000
|
1.4.18.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.4.16.2 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.4.16.1 |
| 10-Mar-2018 |
pgoyette | Put declaration of the 5.0 sysctl routine in a header file
|