[PATCH upstream 1/4] state: use packet attribute for on storage structs

Andrey Smirnov andrew.smirnov at gmail.com
Wed Nov 2 07:17:11 PDT 2016


On Wed, Nov 2, 2016 at 12:54 AM, Stefan Lengfeld <s.lengfeld at phytec.de> wrote:
> These structs are used for on-storage data layouts. They should be not
> affected by different integer precisions and alignment optimizations of
> 32bit or 64bit machines. Using the architecture independent integer data
> types, like uint32_t, achieves the former, using the packet attribute

 "packed" instead of "packet"?

> the later.
>
> Signed-off-by: Stefan Lengfeld <s.lengfeld at phytec.de>
> ---
>  common/state/backend_bucket_circular.c | 2 +-
>  common/state/backend_bucket_direct.c   | 2 +-
>  common/state/backend_format_raw.c      | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/common/state/backend_bucket_circular.c b/common/state/backend_bucket_circular.c
> index 72e165e..d8504e0 100644
> --- a/common/state/backend_bucket_circular.c
> +++ b/common/state/backend_bucket_circular.c
> @@ -47,7 +47,7 @@ struct state_backend_storage_bucket_circular {
>         struct device_d *dev;
>  };
>
> -struct state_backend_storage_bucket_circular_meta {
> +struct __attribute__((__packed__)) state_backend_storage_bucket_circular_meta {

#include <linux/compiler.h> defines "__packed" macro which might make
things less verbose. Ditto for the rest of the changes in this patch.

>         uint32_t magic;
>         uint32_t written_length;
>  };
> diff --git a/common/state/backend_bucket_direct.c b/common/state/backend_bucket_direct.c
> index 08892f0..5225433 100644
> --- a/common/state/backend_bucket_direct.c
> +++ b/common/state/backend_bucket_direct.c
> @@ -32,7 +32,7 @@ struct state_backend_storage_bucket_direct {
>         struct device_d *dev;
>  };
>
> -struct state_backend_storage_bucket_direct_meta {
> +struct __attribute__((__packed__)) state_backend_storage_bucket_direct_meta {
>         uint32_t magic;
>         uint32_t written_length;
>  };
> diff --git a/common/state/backend_format_raw.c b/common/state/backend_format_raw.c
> index 4209424..e028ea6 100644
> --- a/common/state/backend_format_raw.c
> +++ b/common/state/backend_format_raw.c
> @@ -37,7 +37,7 @@ struct state_backend_format_raw {
>         struct device_d *dev;
>  };
>
> -struct backend_raw_header {
> +struct __attribute__((__packed__)) backend_raw_header {
>         uint32_t magic;
>         uint16_t reserved;
>         uint16_t data_len;
> --
> 1.9.1
>
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox



More information about the barebox mailing list