1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 #include <stddef.h>
4 #include <string.h>
5 #include <console/console.h>
6
7 /* FIXME(dhendrix): prototypes added for assembler */
8 int raise(int signum) __attribute__((used));
raise(int signum)9 int raise(int signum)
10 {
11 printk(BIOS_CRIT, "%s: Signal # %d caught\n", __func__, signum);
12 return 0;
13 }
14
15 /* Dummy function to avoid linker complaints */
16 void __aeabi_unwind_cpp_pr0(void) __attribute__((used));
__aeabi_unwind_cpp_pr0(void)17 void __aeabi_unwind_cpp_pr0(void)
18 {
19 }
20
21 void __aeabi_unwind_cpp_pr1(void) __attribute__((used));
__aeabi_unwind_cpp_pr1(void)22 void __aeabi_unwind_cpp_pr1(void)
23 {
24 }
25
26 /* Support the alias for the __aeabi_memcpy which may
27 assume memory alignment. */
28 void __aeabi_memcpy4(void *dest, const void *src, size_t n)
29 __attribute((alias("__aeabi_memcpy")));
30
31 void __aeabi_memcpy8(void *dest, const void *src, size_t n)
32 __attribute((alias("__aeabi_memcpy")));
33
34 void __aeabi_memcpy(void *dest, const void *src, size_t n);
__aeabi_memcpy(void * dest,const void * src,size_t n)35 void __aeabi_memcpy(void *dest, const void *src, size_t n)
36 {
37 (void)memcpy(dest, src, n);
38 }
39
40 void __aeabi_memset(void *dest, size_t n, int c);
__aeabi_memset(void * dest,size_t n,int c)41 void __aeabi_memset(void *dest, size_t n, int c)
42 {
43 (void)memset(dest, c, n);
44 }
45
46 /* Support the alias for the __aeabi_memclr which may
47 assume memory alignment. */
48 void __aeabi_memclr4(void *dest, size_t n)
49 __attribute((alias("__aeabi_memclr")));
50
51 void __aeabi_memclr8(void *dest, size_t n)
52 __attribute((alias("__aeabi_memclr")));
53
54 /* Support the routine __aeabi_memclr. */
55 void __aeabi_memclr(void *dest, size_t n);
__aeabi_memclr(void * dest,size_t n)56 void __aeabi_memclr(void *dest, size_t n)
57 {
58 __aeabi_memset(dest, n, 0);
59 }
60