Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Apr 2018 16:46:19 +0100
From:      Roger Pau =?utf-8?B?TW9ubsOp?= <royger@FreeBSD.org>
To:        Ian Lepore <ian@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r332072 - head/sys/sys
Message-ID:  <20180405154619.q3blip266qa3z5ut@MacBook-Pro-de-Roger.local>
In-Reply-To: <1522942377.49673.245.camel@freebsd.org>
References:  <201804051431.w35EVtg4047897@repo.freebsd.org> <1522942377.49673.245.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180405154619.q3blip266qa3z5ut>