Thanks for the change. PAD_SIZE() is indeed much easier to understand.

Acked-by: Andy Zhou <az...@nicira.com>

On Tue, Mar 11, 2014 at 1:56 PM, Ben Pfaff <b...@nicira.com> wrote:

> PAD_SIZE(x,y) is a little shorter and may have a more obvious meaning
> than ROUND_UP(x,y) - x.
>
> I intend to add more users in an upcoming comment.
>
> Signed-off-by: Ben Pfaff <b...@nicira.com>
> ---
>  lib/netlink.c     |    6 +++---
>  lib/nx-match.c    |   10 +++++-----
>  lib/ofp-actions.c |    6 +++---
>  lib/ofp-actions.h |    2 +-
>  lib/util.h        |    3 +++
>  5 files changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/lib/netlink.c b/lib/netlink.c
> index ada429e..3f479be 100644
> --- a/lib/netlink.c
> +++ b/lib/netlink.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
> + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -174,7 +174,7 @@ nl_msg_put(struct ofpbuf *msg, const void *data,
> size_t size)
>  void *
>  nl_msg_put_uninit(struct ofpbuf *msg, size_t size)
>  {
> -    size_t pad = NLMSG_ALIGN(size) - size;
> +    size_t pad = PAD_SIZE(size, NLMSG_ALIGNTO);
>      char *p = ofpbuf_put_uninit(msg, size + pad);
>      if (pad) {
>          memset(p + size, 0, pad);
> @@ -197,7 +197,7 @@ nl_msg_push(struct ofpbuf *msg, const void *data,
> size_t size)
>  void *
>  nl_msg_push_uninit(struct ofpbuf *msg, size_t size)
>  {
> -    size_t pad = NLMSG_ALIGN(size) - size;
> +    size_t pad = PAD_SIZE(size, NLMSG_ALIGNTO);
>      char *p = ofpbuf_push_uninit(msg, size + pad);
>      if (pad) {
>          memset(p + size, 0, pad);
> diff --git a/lib/nx-match.c b/lib/nx-match.c
> index 437e85b..de79009 100644
> --- a/lib/nx-match.c
> +++ b/lib/nx-match.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2010, 2011, 2012, 2013 Nicira, Inc.
> + * Copyright (c) 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -730,7 +730,7 @@ nx_put_match(struct ofpbuf *b, const struct match
> *match,
>  {
>      int match_len = nx_put_raw(b, false, match, cookie, cookie_mask);
>
> -    ofpbuf_put_zeros(b, ROUND_UP(match_len, 8) - match_len);
> +    ofpbuf_put_zeros(b, PAD_SIZE(match_len, 8));
>      return match_len;
>  }
>
> @@ -753,7 +753,7 @@ oxm_put_match(struct ofpbuf *b, const struct match
> *match)
>
>      ofpbuf_put_uninit(b, sizeof *omh);
>      match_len = nx_put_raw(b, true, match, cookie, cookie_mask) + sizeof
> *omh;
> -    ofpbuf_put_zeros(b, ROUND_UP(match_len, 8) - match_len);
> +    ofpbuf_put_zeros(b, PAD_SIZE(match_len, 8));
>
>      omh = ofpbuf_at(b, start_len, sizeof *omh);
>      omh->type = htons(OFPMT_OXM);
> @@ -994,7 +994,7 @@ int
>  nx_match_from_string(const char *s, struct ofpbuf *b)
>  {
>      int match_len = nx_match_from_string_raw(s, b);
> -    ofpbuf_put_zeros(b, ROUND_UP(match_len, 8) - match_len);
> +    ofpbuf_put_zeros(b, PAD_SIZE(match_len, 8));
>      return match_len;
>  }
>
> @@ -1007,7 +1007,7 @@ oxm_match_from_string(const char *s, struct ofpbuf
> *b)
>
>      ofpbuf_put_uninit(b, sizeof *omh);
>      match_len = nx_match_from_string_raw(s, b) + sizeof *omh;
> -    ofpbuf_put_zeros(b, ROUND_UP(match_len, 8) - match_len);
> +    ofpbuf_put_zeros(b, PAD_SIZE(match_len, 8));
>
>      omh = ofpbuf_at(b, start_len, sizeof *omh);
>      omh->type = htons(OFPMT_OXM);
> diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
> index 3cd1e8b..273ceae 100644
> --- a/lib/ofp-actions.c
> +++ b/lib/ofp-actions.c
> @@ -3627,8 +3627,8 @@ ofpact_update_len(struct ofpbuf *ofpacts, struct
> ofpact *ofpact)
>  void
>  ofpact_pad(struct ofpbuf *ofpacts)
>  {
> -    unsigned int rem = ofpacts->size % OFPACT_ALIGNTO;
> -    if (rem) {
> -        ofpbuf_put_zeros(ofpacts, OFPACT_ALIGNTO - rem);
> +    unsigned int pad = PAD_SIZE(ofpacts->size, OFPACT_ALIGNTO);
> +    if (pad) {
> +        ofpbuf_put_zeros(ofpacts, pad);
>
May be we can drop the "if" ?

>      }
>  }
> diff --git a/lib/ofp-actions.h b/lib/ofp-actions.h
> index 0f6bf70..0a1b46d 100644
> --- a/lib/ofp-actions.h
> +++ b/lib/ofp-actions.h
> @@ -436,7 +436,7 @@ struct ofpact_meter {
>   * Used for OFPIT11_WRITE_ACTIONS. */
>  struct ofpact_nest {
>      struct ofpact ofpact;
> -    uint8_t pad[OFPACT_ALIGN(sizeof(struct ofpact)) - sizeof(struct
> ofpact)];
> +    uint8_t pad[PAD_SIZE(sizeof(struct ofpact), OFPACT_ALIGNTO)];
>      struct ofpact actions[];
>  };
>  BUILD_ASSERT_DECL(offsetof(struct ofpact_nest, actions) ==
> OFPACT_ALIGNTO);
> diff --git a/lib/util.h b/lib/util.h
> index 9afe10e..41fd51d 100644
> --- a/lib/util.h
> +++ b/lib/util.h
> @@ -111,6 +111,9 @@ extern const char *program_name;
>  /* Returns X rounded up to the nearest multiple of Y. */
>  #define ROUND_UP(X, Y) (DIV_ROUND_UP(X, Y) * (Y))
>
> +/* Returns the least number that, when added to X, yields a multiple of
> Y. */
> +#define PAD_SIZE(X, Y) (ROUND_UP(X, Y) - (X))
> +
>  /* Returns X rounded down to the nearest multiple of Y. */
>  #define ROUND_DOWN(X, Y) ((X) / (Y) * (Y))
>
> --
> 1.7.10.4
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to