Re: [PATCH v2 2/5] ARM: import setjmp implementation from U-Boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 20, 2020 at 09:56:45AM +0100, Rouven Czerwinski wrote:
> Signed-off-by: Rouven Czerwinski <r.czerwinski@xxxxxxxxxxxxxx>
> ---
>  arch/arm/include/asm/setjmp.h | 29 ++++++++++++++++++++++++++++
>  arch/arm/lib32/setjmp.S       | 36 +++++++++++++++++++++++++++++++++++
>  2 files changed, 65 insertions(+)
>  create mode 100644 arch/arm/include/asm/setjmp.h
>  create mode 100644 arch/arm/lib32/setjmp.S
> 
> diff --git a/arch/arm/include/asm/setjmp.h b/arch/arm/include/asm/setjmp.h
> new file mode 100644
> index 0000000000..62bac613d6
> --- /dev/null
> +++ b/arch/arm/include/asm/setjmp.h
> @@ -0,0 +1,29 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
> + * (C) Copyright 2016 Alexander Graf <agraf@xxxxxxx>
> + */
> +
> +#ifndef _SETJMP_H_
> +#define _SETJMP_H_	1
> +
> +#include <asm/types.h>
> +
> +/*
> + * This really should be opaque, but the EFI implementation wrongly
> + * assumes that a 'struct jmp_buf_data' is defined.
> + */
> +struct jmp_buf_data {
> +#if defined(__aarch64__)
> +	u64  regs[13];
> +#else
> +	u32  regs[10];  /* r4-r9, sl, fp, sp, lr */
> +#endif
> +};
> +
> +typedef struct jmp_buf_data jmp_buf[1];
> +
> +int setjmp(jmp_buf jmp);
> +void longjmp(jmp_buf jmp, int ret);
> +
> +#endif /* _SETJMP_H_ */
> diff --git a/arch/arm/lib32/setjmp.S b/arch/arm/lib32/setjmp.S

While you are at it please add arch/arm/lib64/setjmp.S as well. You can
copy it directly from U-Boot.

This patch should also add setjmp.o to the Makefiles. In patch 3/5
you add:

pbl-$(CONFIG_PBL_OPTEE)        += setjmp.o

How does a potential second user select setjmp? You can instead either
add a CONFIG_SETJMP symbol which you select from CONFIG_PBL_OPTEE or
just do a obj-pbl-y += setjmp.o. In this case it's fine to not add a new
symbol for it.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux