mirror of
https://github.com/reactos/reactos.git
synced 2025-06-26 08:49:42 +00:00

Imported from https://www.nuget.org/packages/Microsoft.Windows.SDK.CRTSource/10.0.22621.3 License: MIT
34 lines
753 B
C++
34 lines
753 B
C++
//
|
|
// swab.cpp
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// Defines the _swab function, which copies a source buffer into a destination
|
|
// buffer, swapping the odd and even bytes of each word as it does so.
|
|
//
|
|
#include <corecrt_internal.h>
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
extern "C" void __cdecl _swab(
|
|
char* source,
|
|
char* destination,
|
|
int bytes
|
|
)
|
|
{
|
|
_VALIDATE_RETURN_VOID(source != nullptr, EINVAL);
|
|
_VALIDATE_RETURN_VOID(destination != nullptr, EINVAL);
|
|
_VALIDATE_RETURN_VOID(bytes >= 0, EINVAL);
|
|
|
|
while (bytes > 1)
|
|
{
|
|
char const b1 = *source++;
|
|
char const b2 = *source++;
|
|
|
|
*destination++ = b2;
|
|
*destination++ = b1;
|
|
|
|
bytes -= 2;
|
|
}
|
|
}
|