[PATCH 02/13] alist: Allow inclusion from OS headers
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Wed May 27 20:36:45 CEST 2026
On 5/27/26 18:10, Simon Glass wrote:
> Sandbox needs to include system headers in some files, but also wants
> to use alist. Adjust the headers to permit this.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> include/alist.h | 16 +++++++++++-----
> lib/alist.c | 1 +
> 2 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/include/alist.h b/include/alist.h
> index b00d9ea97d6..69d7cdb722f 100644
> --- a/include/alist.h
> +++ b/include/alist.h
> @@ -10,8 +10,14 @@
> #define __ALIST_H
>
> #include <stdbool.h>
> -#include <linux/bitops.h>
> +
> +#ifdef USE_HOSTCC
> +#include <sys/types.h>
> +#include <stdint.h>
> +#else
> #include <linux/types.h>
> +#endif
> +#define BIT(nr) (1UL << (nr))
BIT(nr) is already defined in include/linux/bitops.h.
We must not assume that no module includes both alist.h and
linux/bitops.h. E.g. include/expo.h and include/lmb.h include both
alist.h and linux/bitops.h. We should avoid redefinitions.
The following is an abuse of the enum type:
enum alist_flags {
ALISTF_FAIL = BIT(0),
};
As this is the only use of BIT(), we could simply use the value "1" here.
#define ALISTF_FAIL (1)
But as ALISTF_FAIL is the only bit in flags used, the best solution
would be replacing flags by a boolean called fail.
Best regards
Heinrich
>
> /**
> * struct alist - object list that can be allocated and freed
> @@ -41,10 +47,10 @@
> */
> struct alist {
> void *data;
> - u16 obj_size;
> - u16 count;
> - u16 alloc;
> - u16 flags;
> + unsigned short obj_size;
> + unsigned short count;
> + unsigned short alloc;
> + unsigned short flags;
> };
>
> /**
> diff --git a/lib/alist.c b/lib/alist.c
> index 4ce651f5c45..0ae07f0f5c0 100644
> --- a/lib/alist.c
> +++ b/lib/alist.c
> @@ -8,6 +8,7 @@
>
> #include <alist.h>
> #include <display_options.h>
> +#include <log.h>
> #include <malloc.h>
> #include <stdio.h>
> #include <string.h>
More information about the U-Boot
mailing list