diff options
Diffstat (limited to 'lib/ktl/include/cwchar')
| -rw-r--r-- | lib/ktl/include/cwchar | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/lib/ktl/include/cwchar b/lib/ktl/include/cwchar deleted file mode 100644 index 4f24c73..0000000 --- a/lib/ktl/include/cwchar +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2020 The Fuchsia Authors -// -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT - -#ifndef ZIRCON_KERNEL_LIB_KTL_INCLUDE_CWCHAR -#define ZIRCON_KERNEL_LIB_KTL_INCLUDE_CWCHAR - -// The kernel doesn't want this file but some libc++ headers we need -// wind up including it and they need these declarations. - -#include <wchar.h> - -#include <__config> - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::wmemcpy; -using ::wmemmove; -using ::wmemset; - -// These are called by libc++ header code. The first two should never actually -// be called by anything that really gets instantiated in kernel code since -// wchar_t is never used. However, __constexpr_wmemchr is used by places like -// std::find not just for wchar_t per se but for any trivial type of the same -// size, e.g. uint32_t. So its code must be correct. The other two are filled -// out just in case of an unexpected use. - -constexpr size_t __constexpr_wcslen(const wchar_t* str) { - size_t len = 0; - while (*str++ != L'\0') { - ++len; - } - return len; -} - -constexpr int __constexpr_wmemcmp(const wchar_t* lhs, const wchar_t* rhs, size_t count) { - while (count-- > 0) { - if (*lhs != *rhs) { - return static_cast<int>(*lhs - *rhs); - } - ++lhs; - ++rhs; - } - return 0; -} - -template <class Tp, class Up> -constexpr Tp* __constexpr_wmemchr(Tp* str, Up wc, size_t count) { - while (count-- > 0) { - if (*str == wc) { - return str; - } - ++str; - } - return nullptr; -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // ZIRCON_KERNEL_LIB_KTL_INCLUDE_CWCHAR |
