[MemProf] Templatize CallStackRadixTreeBuilder (NFC) (#117014)
[llvm-project.git] / libc / src / unistd / swab.cpp
blob643079a40ab5cb6ee80f92af6201790b3ffb9eb1
1 //===-- Implementation of swab --------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
9 #include "src/unistd/swab.h"
11 #include "src/__support/common.h"
12 #include "src/__support/macros/config.h"
14 namespace LIBC_NAMESPACE_DECL {
16 LLVM_LIBC_FUNCTION(void, swab,
17 (const void *__restrict from, void *__restrict to,
18 ssize_t n)) {
19 const unsigned char *f = static_cast<const unsigned char *>(from);
20 unsigned char *t = static_cast<unsigned char *>(to);
21 for (ssize_t i = 1; i < n; i += 2) {
22 t[i - 1] = f[i];
23 t[i] = f[i - 1];
27 } // namespace LIBC_NAMESPACE_DECL