Commit Graph

14 Commits

Author SHA1 Message Date
hgutch 0d7f3d7673 Make sure daddr_t is a 64 bit type when building tools.
(see also PR sw-bug/56742 ).
2022-03-06 08:31:54 +00:00
riastradh d1579b2d70 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!)
2018-09-03 16:29:22 +00:00
christos d372863cc1 need <sys/stat.h> 2017-02-16 22:10:50 +00:00
christos 639cd04dc3 fix msdos reproducible builds! 2017-02-16 19:11:13 +00:00
agc aa7e0e4b83 Make the userland signature and uses of bread() match the kernel ones,
after the removal of the cred argument.
2015-03-29 05:52:59 +00:00
christos d84c38ae4e - don't abuse vp->fs to mean struct fs for ffs and struct msdos_opts;
make it always fsinfo_t and change void * to that.
- kill unused structure members.
2013-01-30 19:19:19 +00:00
christos 78e97492c8 buf is generic; it has nothing to do with ffs and will eventually be moved.
gc sectorize.
2013-01-30 17:29:05 +00:00
christos e4989541fe - use emalloc and friends
- kill a bunch of global variables, more work to be done here
- homogenize option parsing. more work for cd9660
- use the new options parsing code to print an fs-specific usage
2013-01-28 21:03:26 +00:00
christos e502c2ffd0 This works well enough to populate plain files in the root dir. creating
directories fails.
2013-01-27 20:05:46 +00:00
christos 12188588a0 zero memory 2013-01-27 14:10:22 +00:00
christos ed8edcd60d make this cross-compile friendly. 2013-01-26 16:50:46 +00:00
christos 9ac350be41 make the buffer functions look exactly like the kernel ones and add other
cruft to make the kernel files compile.
2013-01-26 00:19:39 +00:00
lukem 1226af2bc4 tweak copyright 2001-11-02 03:12:48 +00:00
lukem 6325773eff makefs - create a file system image from a directory tree.
It doesn't need any special privileges or kernel devices.

Only ffs image creation is supported at this time, although makefs has been
designed to allow the addition of other file system formats by writing new
back-ends.

This program was designed & implemented by Luke Mewburn of Wasabi Systems.
2001-10-26 06:16:19 +00:00