svn commit: r332072 - head/sys/sys

Ian Lepore ian at freebsd.org
Thu Apr 5 15:33:06 UTC 2018


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);

-- Ian



More information about the svn-src-all mailing list