svn commit: r332072 - head/sys/sys
Roger Pau Monné
royger at FreeBSD.org
Thu Apr 5 15:46:26 UTC 2018
On Thu, Apr 05, 2018 at 09:32:57AM -0600, Ian Lepore wrote:
> On Thu, 2018-04-05 at 14:31 +0000, Roger Pau Monné wrote:
> > Author: royger
> > Date: Thu Apr 5 14:31:54 2018
> > New Revision: 332072
> > URL: https://svnweb.freebsd.org/changeset/base/332072
> >
> > Log:
> > introduce GiB and MiB macros
> >
> > This macros convert from GiB or MiB into bytes.
> >
> > Sponsored by: Citrix Systems R&D
> >
> > Modified:
> > head/sys/sys/param.h
> >
> > Modified: head/sys/sys/param.h
> > ==============================================================================
> > --- head/sys/sys/param.h Thu Apr 5 14:25:39 2018 (r332071)
> > +++ head/sys/sys/param.h Thu Apr 5 14:31:54 2018 (r332072)
> > @@ -362,4 +362,8 @@ __END_DECLS
> > */
> > #define __PAST_END(array, offset) (((__typeof__(*(array)) *)(array))[offset])
> >
> > +/* Unit conversion macros. */
> > +#define GiB(v) (v ## ULL << 30)
> > +#define MiB(v) (v ## ULL << 20)
> > +
> > #endif /* _SYS_PARAM_H_ */
> >
>
> These names don't make it clear whether the conversion is bytes->GiB or
> GiB->bytes. The names seem way too generic for a public namespace in a
> file as heavily included behind your back as param.h is.
>
> Also, this completely reasonable usage won't work, likely with
> confusing compile error messages:
>
> int bytes, gibytes;
> ...
> bytes = GiB(gibytes);
I find those helpful for their specific usage. I could introduce
static inline functions like:
size_t gb_to_bytes(size_t)...
But I assume this is also going to cause further discussion.
Roger.
More information about the svn-src-all
mailing list