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

_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to