lib: Rename string.x to sbi_string.x

All string functions are part of libsbi. It makes more sense
to rename them to sbi_string.x as the libsbi can be linked
with external libraries that can have similar implementation.

Signed-off-by: Atish Patra <atish.patra@wdc.com>
Acked-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
Atish Patra
2019-06-18 14:54:04 -07:00
committed by Anup Patel
parent 793e5e1184
commit 200ed7c1bd
11 changed files with 82 additions and 85 deletions

39
include/sbi/sbi_string.h Normal file
View File

@@ -0,0 +1,39 @@
/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
*
* Authors:
* Atish Patra <atish.patra@wdc.com>
*/
#ifndef __STRING_H__
#define __STRING_H__
#include <sbi/sbi_types.h>
int sbi_strcmp(const char *a, const char *b);
size_t sbi_strlen(const char *str);
size_t sbi_strnlen(const char *str, size_t count);
char *sbi_strcpy(char *dest, const char *src);
char *sbi_strncpy(char *dest, const char *src, size_t count);
char *sbi_strchr(const char *s, int c);
char *sbi_strrchr(const char *s, int c);
void *sbi_memset(void *s, int c, size_t count);
void *sbi_memcpy(void *dest, const void *src, size_t count);
void *sbi_memmove(void *dest, const void *src, size_t count);
int sbi_memcmp(const void *s1, const void *s2, size_t count);
void *sbi_memchr(const void *s, int c, size_t count);
#endif

View File

@@ -1,39 +0,0 @@
/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
*
* Authors:
* Atish Patra <atish.patra@wdc.com>
*/
#ifndef __STRING_H__
#define __STRING_H__
#include <sbi/sbi_types.h>
int strcmp(const char *a, const char *b);
size_t strlen(const char *str);
size_t strnlen(const char *str, size_t count);
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t count);
char *strchr(const char *s, int c);
char *strrchr(const char *s, int c);
void *memset(void *s, int c, size_t count);
void *memcpy(void *dest, const void *src, size_t count);
void *memmove(void *dest, const void *src, size_t count);
int memcmp(const void *s1, const void *s2, size_t count);
void *memchr(const void *s, int c, size_t count);
#endif

View File

@@ -1,15 +0,0 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
# Copyright (c) 2019 Western Digital Corporation or its affiliates.
#
# Authors:
# Atish Patra<atish.patra@wdc.com>
#
libc_files = string.o
$(foreach file, $(libc_files), \
$(eval CFLAGS_$(file) = -I$(src)/../../sbi/libc))
libsbi-objs-y += $(addprefix libc/,$(libc_files))

View File

@@ -27,3 +27,4 @@ libsbi-objs-y += sbi_system.o
libsbi-objs-y += sbi_timer.o libsbi-objs-y += sbi_timer.o
libsbi-objs-y += sbi_tlb.o libsbi-objs-y += sbi_tlb.o
libsbi-objs-y += sbi_trap.o libsbi-objs-y += sbi_trap.o
libsbi-objs-y += sbi_string.o

View File

@@ -10,7 +10,7 @@
#include <sbi/riscv_locks.h> #include <sbi/riscv_locks.h>
#include <sbi/sbi_error.h> #include <sbi/sbi_error.h>
#include <sbi/sbi_fifo.h> #include <sbi/sbi_fifo.h>
#include <sbi/string.h> #include <sbi/sbi_string.h>
void sbi_fifo_init(struct sbi_fifo *fifo, void *queue_mem, u16 entries, void sbi_fifo_init(struct sbi_fifo *fifo, void *queue_mem, u16 entries,
u16 entry_size) u16 entry_size)
@@ -20,7 +20,7 @@ void sbi_fifo_init(struct sbi_fifo *fifo, void *queue_mem, u16 entries,
fifo->entry_size = entry_size; fifo->entry_size = entry_size;
SPIN_LOCK_INIT(&fifo->qlock); SPIN_LOCK_INIT(&fifo->qlock);
fifo->avail = fifo->tail = 0; fifo->avail = fifo->tail = 0;
memset(fifo->queue, 0, entries * entry_size); sbi_memset(fifo->queue, 0, entries * entry_size);
} }
/* Note: must be called with fifo->qlock held */ /* Note: must be called with fifo->qlock held */
@@ -76,7 +76,7 @@ static inline void __sbi_fifo_reset(struct sbi_fifo *fifo)
{ {
fifo->avail = 0; fifo->avail = 0;
fifo->tail = 0; fifo->tail = 0;
memset(fifo->queue, 0, fifo->num_entries * fifo->entry_size); sbi_memset(fifo->queue, 0, fifo->num_entries * fifo->entry_size);
} }
bool sbi_fifo_reset(struct sbi_fifo *fifo) bool sbi_fifo_reset(struct sbi_fifo *fifo)
@@ -149,7 +149,7 @@ int sbi_fifo_enqueue(struct sbi_fifo *fifo, void *data)
if (head >= fifo->num_entries) if (head >= fifo->num_entries)
head = head - fifo->num_entries; head = head - fifo->num_entries;
memcpy(fifo->queue + head * fifo->entry_size, data, fifo->entry_size); sbi_memcpy(fifo->queue + head * fifo->entry_size, data, fifo->entry_size);
fifo->avail++; fifo->avail++;
@@ -170,7 +170,7 @@ int sbi_fifo_dequeue(struct sbi_fifo *fifo, void *data)
return SBI_ENOENT; return SBI_ENOENT;
} }
memcpy(data, fifo->queue + (u32)fifo->tail * fifo->entry_size, sbi_memcpy(data, fifo->queue + (u32)fifo->tail * fifo->entry_size,
fifo->entry_size); fifo->entry_size);
fifo->avail--; fifo->avail--;

View File

@@ -19,7 +19,6 @@
#include <sbi/sbi_platform.h> #include <sbi/sbi_platform.h>
#include <sbi/sbi_timer.h> #include <sbi/sbi_timer.h>
#include <sbi/sbi_tlb.h> #include <sbi/sbi_tlb.h>
#include <sbi/string.h>
static unsigned long ipi_data_off; static unsigned long ipi_data_off;

View File

@@ -12,9 +12,9 @@
* bugs as well. Use any optimized routines from newlib or glibc if required. * bugs as well. Use any optimized routines from newlib or glibc if required.
*/ */
#include <sbi/string.h> #include <sbi/sbi_string.h>
int strcmp(const char *a, const char *b) int sbi_strcmp(const char *a, const char *b)
{ {
/* search first diff or end of string */ /* search first diff or end of string */
for (; *a == *b && *a != '\0'; a++, b++) for (; *a == *b && *a != '\0'; a++, b++)
@@ -23,7 +23,7 @@ int strcmp(const char *a, const char *b)
return *a - *b; return *a - *b;
} }
size_t strlen(const char *str) size_t sbi_strlen(const char *str)
{ {
unsigned long ret = 0; unsigned long ret = 0;
@@ -35,7 +35,7 @@ size_t strlen(const char *str)
return ret; return ret;
} }
size_t strnlen(const char *str, size_t count) size_t sbi_strnlen(const char *str, size_t count)
{ {
unsigned long ret = 0; unsigned long ret = 0;
@@ -48,7 +48,7 @@ size_t strnlen(const char *str, size_t count)
return ret; return ret;
} }
char *strcpy(char *dest, const char *src) char *sbi_strcpy(char *dest, const char *src)
{ {
char *ret = dest; char *ret = dest;
@@ -59,7 +59,7 @@ char *strcpy(char *dest, const char *src)
return ret; return ret;
} }
char *strncpy(char *dest, const char *src, size_t count) char *sbi_strncpy(char *dest, const char *src, size_t count)
{ {
char *ret = dest; char *ret = dest;
@@ -70,7 +70,7 @@ char *strncpy(char *dest, const char *src, size_t count)
return ret; return ret;
} }
char *strchr(const char *s, int c) char *sbi_strchr(const char *s, int c)
{ {
while (*s != '\0' && *s != (char)c) while (*s != '\0' && *s != (char)c)
s++; s++;
@@ -81,9 +81,9 @@ char *strchr(const char *s, int c)
return (char *)s; return (char *)s;
} }
char *strrchr(const char *s, int c) char *sbi_strrchr(const char *s, int c)
{ {
const char *last = s + strlen(s); const char *last = s + sbi_strlen(s);
while (last > s && *last != (char)c) while (last > s && *last != (char)c)
last--; last--;
@@ -93,7 +93,7 @@ char *strrchr(const char *s, int c)
else else
return (char *)last; return (char *)last;
} }
void *memset(void *s, int c, size_t count) void *sbi_memset(void *s, int c, size_t count)
{ {
char *temp = s; char *temp = s;
@@ -105,7 +105,7 @@ void *memset(void *s, int c, size_t count)
return s; return s;
} }
void *memcpy(void *dest, const void *src, size_t count) void *sbi_memcpy(void *dest, const void *src, size_t count)
{ {
char *temp1 = dest; char *temp1 = dest;
const char *temp2 = src; const char *temp2 = src;
@@ -118,7 +118,7 @@ void *memcpy(void *dest, const void *src, size_t count)
return dest; return dest;
} }
void *memmove(void *dest, const void *src, size_t count) void *sbi_memmove(void *dest, const void *src, size_t count)
{ {
char *temp1 = (char *)dest; char *temp1 = (char *)dest;
const char *temp2 = (char *)src; const char *temp2 = (char *)src;
@@ -144,7 +144,7 @@ void *memmove(void *dest, const void *src, size_t count)
return dest; return dest;
} }
int memcmp(const void *s1, const void *s2, size_t count) int sbi_memcmp(const void *s1, const void *s2, size_t count)
{ {
const char *temp1 = s1; const char *temp1 = s1;
const char *temp2 = s2; const char *temp2 = s2;
@@ -160,7 +160,7 @@ int memcmp(const void *s1, const void *s2, size_t count)
return 0; return 0;
} }
void *memchr(const void *s, int c, size_t count) void *sbi_memchr(const void *s, int c, size_t count)
{ {
const unsigned char *temp = s; const unsigned char *temp = s;

View File

@@ -16,7 +16,7 @@
#include <sbi/sbi_bitops.h> #include <sbi/sbi_bitops.h>
#include <sbi/sbi_scratch.h> #include <sbi/sbi_scratch.h>
#include <sbi/sbi_tlb.h> #include <sbi/sbi_tlb.h>
#include <sbi/string.h> #include <sbi/sbi_string.h>
static unsigned long ipi_tlb_fifo_off; static unsigned long ipi_tlb_fifo_off;
static unsigned long ipi_tlb_fifo_mem_off; static unsigned long ipi_tlb_fifo_mem_off;
@@ -190,7 +190,7 @@ void sbi_tlb_fifo_process(struct sbi_scratch *scratch, u32 event)
sbi_tlb_fifo_sfence_vma(&tinfo); sbi_tlb_fifo_sfence_vma(&tinfo);
else if (tinfo.type == SBI_TLB_FLUSH_VMA_ASID) else if (tinfo.type == SBI_TLB_FLUSH_VMA_ASID)
sbi_tlb_fifo_sfence_vma_asid(&tinfo); sbi_tlb_fifo_sfence_vma_asid(&tinfo);
memset(&tinfo, 0, SBI_TLB_INFO_SIZE); sbi_memset(&tinfo, 0, SBI_TLB_INFO_SIZE);
} }
} }

View File

@@ -10,7 +10,7 @@
#include <sbi/riscv_io.h> #include <sbi/riscv_io.h>
#include <sbi/riscv_encoding.h> #include <sbi/riscv_encoding.h>
#include <sbi/sbi_console.h> #include <sbi/sbi_console.h>
#include <sbi/string.h> #include <sbi/sbi_string.h>
#include <sbi_utils/tinyfdt.h> #include <sbi_utils/tinyfdt.h>
#include <sbi_utils/irqchip/plic.h> #include <sbi_utils/irqchip/plic.h>
@@ -54,7 +54,7 @@ static void plic_fdt_fixup_prop(const struct fdt_node *node,
if (!prop) if (!prop)
return; return;
if (strcmp(prop->name, "interrupts-extended")) if (sbi_strcmp(prop->name, "interrupts-extended"))
return; return;
cells = prop->value; cells = prop->value;

View File

@@ -52,7 +52,7 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sbi/string.h> #include <sbi/sbi_string.h>
#include <sbi/sbi_types.h> #include <sbi/sbi_types.h>
#define INT_MAX ((int)(~0U >> 1)) #define INT_MAX ((int)(~0U >> 1))
@@ -66,6 +66,18 @@
#define FDT_BITWISE #define FDT_BITWISE
#endif #endif
#define memmove sbi_memmove
#define memcpy sbi_memcpy
#define memcmp sbi_memcmp
#define memchr sbi_memchr
#define memset sbi_memset
#define strchr sbi_strchr
#define strrchr sbi_strrchr
#define strcpy sbi_strcpy
#define strcmp sbi_strcmp
#define strlen sbi_strlen
#define strnlen sbi_strnlen
typedef uint16_t FDT_BITWISE fdt16_t; typedef uint16_t FDT_BITWISE fdt16_t;
typedef uint32_t FDT_BITWISE fdt32_t; typedef uint32_t FDT_BITWISE fdt32_t;
typedef uint64_t FDT_BITWISE fdt64_t; typedef uint64_t FDT_BITWISE fdt64_t;

View File

@@ -7,7 +7,7 @@
* Anup Patel <anup.patel@wdc.com> * Anup Patel <anup.patel@wdc.com>
*/ */
#include <sbi/string.h> #include <sbi/sbi_string.h>
#include <sbi_utils/tinyfdt.h> #include <sbi_utils/tinyfdt.h>
#define FDT_MAGIC 0xd00dfeed #define FDT_MAGIC 0xd00dfeed
@@ -48,10 +48,10 @@ int fdt_prop_string_index(const struct fdt_prop *prop, const char *str)
end = p + prop->len; end = p + prop->len;
for (i = 0; p < end; i++, p += l) { for (i = 0; p < end; i++, p += l) {
l = strlen(p) + 1; l = sbi_strlen(p) + 1;
if (p + l > end) if (p + l > end)
return -1; return -1;
if (strcmp(str, p) == 0) if (sbi_strcmp(str, p) == 0)
return i; /* Found it; return index */ return i; /* Found it; return index */
} }
@@ -83,7 +83,7 @@ static void recursive_iter(char **data, struct recursive_iter_info *info,
node.parent = parent; node.parent = parent;
node.name = *data; node.name = *data;
*data += strlen(*data) + 1; *data += sbi_strlen(*data) + 1;
while ((ulong)(*data) % sizeof(u32) != 0) while ((ulong)(*data) % sizeof(u32) != 0)
(*data)++; (*data)++;
@@ -154,7 +154,7 @@ static void match_iter(const struct fdt_node *node, const struct fdt_prop *prop,
data += sizeof(u32); data += sizeof(u32);
/* Skip node name */ /* Skip node name */
data += strlen(data) + 1; data += sbi_strlen(data) + 1;
while ((ulong)(data) % sizeof(u32) != 0) while ((ulong)(data) % sizeof(u32) != 0)
data++; data++;
@@ -228,7 +228,7 @@ static int match_compat(const struct fdt_node *node,
if (!prop) if (!prop)
return 0; return 0;
if (strcmp(prop->name, "compatible")) if (sbi_strcmp(prop->name, "compatible"))
return 0; return 0;
if (fdt_prop_string_index(prop, cinfo->compat) < 0) if (fdt_prop_string_index(prop, cinfo->compat) < 0)