blob: 5fb733dd3c38aa7a8af44057ea6df07c055384ea [file]
// Copyright 2026 The IREE Authors
//
// Licensed under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// <string.h> for wasm32.
#ifndef IREE_WASM_LIBC_STRING_H_
#define IREE_WASM_LIBC_STRING_H_
#include <stddef.h>
// Copying (memcpy/memset/memmove are wasm builtins via -mbulk-memory).
void* memcpy(void* dest, const void* src, size_t count);
void* memmove(void* dest, const void* src, size_t count);
void* memset(void* dest, int value, size_t count);
// Comparison.
int memcmp(const void* left, const void* right, size_t count);
// Search.
void* memchr(const void* pointer, int value, size_t count);
// String operations.
size_t strlen(const char* string);
size_t strnlen(const char* string, size_t max_length);
int strcmp(const char* left, const char* right);
int strncmp(const char* left, const char* right, size_t count);
char* strchr(const char* string, int character);
char* strrchr(const char* string, int character);
char* strstr(const char* haystack, const char* needle);
// String copying.
char* strcpy(char* dest, const char* src);
char* strncpy(char* dest, const char* src, size_t count);
char* strcat(char* dest, const char* src);
char* strncat(char* dest, const char* src, size_t count);
// Error string.
char* strerror(int error_number);
#endif // IREE_WASM_LIBC_STRING_H_