summaryrefslogtreecommitdiff
path: root/arch/arm/lib/eabi_compat.c
blob: e6cafcc5f2b854925684397dad4300e3af92d6c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// SPDX-License-Identifier: GPL-2.0+
/*
 * Utility functions needed for (some) EABI conformant tool chains.
 *
 * (C) Copyright 2009 Wolfgang Denk <wd@denx.de>
 */

#include <stdio.h>
#include <linux/stddef.h>
#include <linux/string.h>

int raise (int signum)
{
	/* Even if printf() is available, it's large. Punt it for SPL builds */
#if !defined(CONFIG_XPL_BUILD)
	printf("raise: Signal # %d caught\n", signum);
#endif
	return 0;
}

/* Dummy function to avoid linker complaints */
void __aeabi_unwind_cpp_pr0(void)
{
}

void __aeabi_unwind_cpp_pr1(void)
{
}

/* Copy memory like memcpy, but no return value required.  */
void __aeabi_memcpy(void *dest, const void *src, size_t n)
{
	(void) memcpy(dest, src, n);
}

void __aeabi_memcpy4(void *dest, const void *src, size_t n) __alias(__aeabi_memcpy);

void __aeabi_memcpy8(void *dest, const void *src, size_t n) __alias(__aeabi_memcpy);

void __aeabi_memset(void *dest, size_t n, int c)
{
	(void) memset(dest, c, n);
}

void __aeabi_memset4(void *dest, size_t n, int c) __alias(__aeabi_memset);

void __aeabi_memset8(void *dest, size_t n, int c) __alias(__aeabi_memset);

void __aeabi_memclr(void *dest, size_t n)
{
	(void) memset(dest, 0, n);
}

void __aeabi_memclr4(void *dest, size_t n) __alias(__aeabi_memclr);

void __aeabi_memclr8(void *dest, size_t n) __alias(__aeabi_memclr);