zephyr/tests/benchmarks/footprints/src/libc.c
Alberto Escolar Piedras 10060c8891 tests/benchmarks/footprints: Define required source standard macros
strnlen is not a C standard API, but an extension.
Instead of relaying that the SOURCE macro was set somewhere else
of that the C library provides a prototype anyhow
let's explicitly define it for this library.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2024-01-26 07:48:55 -05:00

36 lines
691 B
C

/*
* Copyright (c) 2020 Intel Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
#undef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200809L
#include <zephyr/kernel.h>
#include <ksched.h>
#include "footprint.h"
static const char const_string[] = "String!\n";
static char new_string[32];
void run_libc(void)
{
int len;
len = strlen(const_string);
len = strnlen(const_string, len);
memset(new_string, 0, sizeof(new_string));
if (memcmp(const_string, new_string, 0) != 0) {
/* avoid unused return error */
}
if (memcmp(const_string, new_string, len) != 0) {
/* avoid unused return error */
}
strcpy(new_string, const_string);
strncpy(new_string, const_string, len);
}