mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2024-12-01 05:40:27 +00:00
libc: Introduce cdefs.h, assert.h and strlen.c
Change-Id: I76091d52571f1950111c4b1670d5fc3883607715 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
This commit is contained in:
parent
4661abc7c4
commit
8bb6de1518
39
include/lib/libc/assert.h
Normal file
39
include/lib/libc/assert.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef ASSERT_H
|
||||
#define ASSERT_H
|
||||
|
||||
#include <cdefs.h>
|
||||
#include <debug.h>
|
||||
#include <platform_def.h>
|
||||
|
||||
#ifndef PLAT_LOG_LEVEL_ASSERT
|
||||
#define PLAT_LOG_LEVEL_ASSERT LOG_LEVEL
|
||||
#endif
|
||||
|
||||
#if ENABLE_ASSERTIONS
|
||||
# if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE
|
||||
# define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__, #e))
|
||||
# elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO
|
||||
# define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__))
|
||||
# else
|
||||
# define assert(e) ((e) ? (void)0 : __assert())
|
||||
# endif
|
||||
#else
|
||||
#define assert(e) ((void)0)
|
||||
#endif /* ENABLE_ASSERTIONS */
|
||||
|
||||
#if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE
|
||||
__dead2 void __assert(const char *file, unsigned int line,
|
||||
const char *assertion);
|
||||
#elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO
|
||||
__dead2 void __assert(const char *file, unsigned int line);
|
||||
#else
|
||||
__dead2 void __assert(void);
|
||||
#endif
|
||||
|
||||
#endif /* ASSERT_H */
|
28
include/lib/libc/cdefs.h
Normal file
28
include/lib/libc/cdefs.h
Normal file
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef CDEFS_H
|
||||
#define CDEFS_H
|
||||
|
||||
#define __dead2 __attribute__((__noreturn__))
|
||||
#define __deprecated __attribute__((__deprecated__))
|
||||
#define __packed __attribute__((__packed__))
|
||||
#define __used __attribute__((__used__))
|
||||
#define __unused __attribute__((__unused__))
|
||||
#define __aligned(x) __attribute__((__aligned__(x)))
|
||||
#define __section(x) __attribute__((__section__(x)))
|
||||
|
||||
#define __printflike(fmtarg, firstvararg) \
|
||||
__attribute__((__format__ (__printf__, fmtarg, firstvararg)))
|
||||
|
||||
#define __weak_reference(sym, alias) \
|
||||
__asm__(".weak alias"); \
|
||||
__asm__(".equ alias, sym")
|
||||
|
||||
#define __STRING(x) #x
|
||||
#define __XSTRING(x) __STRING(x)
|
||||
|
||||
#endif /* CDEFS_H */
|
17
lib/libc/strlen.c
Normal file
17
lib/libc/strlen.c
Normal file
@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
size_t strlen(const char *s)
|
||||
{
|
||||
const char *cursor = s;
|
||||
|
||||
while (*cursor)
|
||||
cursor++;
|
||||
|
||||
return cursor - s;
|
||||
}
|
Loading…
Reference in New Issue
Block a user