Sane C++ Libraries
C++ Platform Abstraction Libraries
Loading...
Searching...
No Matches
LibC.h
1
// Copyright (c) Stefano Cristiano
2
// SPDX-License-Identifier: MIT
3
#pragma once
4
#include "../Foundation/PrimitiveTypes.h"
5
#if SC_COMPILER_ENABLE_STD_CPP || SC_LANGUAGE_EXCEPTIONS || \
6
(SC_PLATFORM_WINDOWS && not SC_COMPILER_MSVC and not SC_COMPILER_CLANG_CL)
7
#include <memory.h>
8
#include <string.h>
9
#else
10
#if SC_PLATFORM_WINDOWS
11
extern
"C"
12
{
13
void
* __cdecl memmove(
void
* dst,
const
void
* src,
SC::size_t
n);
14
void
* __cdecl memcpy(
void
* dst,
const
void
* src,
SC::size_t
n);
15
int
__cdecl memcmp(
const
void
* s1,
const
void
* s2,
SC::size_t
n);
16
void
* __cdecl memset(
void
* dst,
SC::int32_t
c,
SC::size_t
len);
17
[[nodiscard]]
void
const
* __cdecl memchr(
const
void
* ptr,
SC::int32_t
c,
SC::size_t
count);
18
19
SC::size_t
strlen(
const
char
* s);
20
SC::size_t
__cdecl wcslen(
wchar_t
const
*);
21
}
22
#elif SC_PLATFORM_APPLE
23
extern
"C"
24
{
25
void
* memmove(
void
* dst,
const
void
* src,
SC::size_t
n);
26
void
* memcpy(
void
* dst,
const
void
* src,
SC::size_t
n);
27
int
memcmp(
const
void
* s1,
const
void
* s2,
SC::size_t
n);
28
void
* memset(
void
* dst,
SC::int32_t
c,
SC::size_t
len);
29
void
* memchr(
const
void
* ptr,
SC::int32_t
c,
SC::size_t
count);
30
31
SC::size_t
strlen(
const
char
* s);
32
}
33
#elif SC_PLATFORM_LINUX
34
extern
"C"
35
{
36
void
* memmove(
void
* dst,
const
void
* src,
SC::size_t
n);
37
void
* memcpy(
void
* dst,
const
void
* src,
SC::size_t
n);
38
int
memcmp(
const
void
* s1,
const
void
* s2,
SC::size_t
n);
39
void
* memset(
void
* dst,
SC::int32_t
c,
SC::size_t
len);
40
41
SC::size_t
strlen(
const
char
* s);
42
}
43
extern
"C++"
44
{
45
extern
const
void
* memchr(
const
void
* __s,
int
__c,
SC::size_t
__n) __asm(
"memchr"
);
46
}
47
#elif SC_PLATFORM_EMSCRIPTEN
48
#else
49
#error "Unsupported platform"
50
#endif
51
#endif
// SC_SAFE_INCLUDES
SC::size_t
decltype(sizeof(0)) size_t
Platform independent unsigned size type.
Definition
PrimitiveTypes.h:45
SC::int32_t
int int32_t
Platform independent (4) bytes signed int.
Definition
PrimitiveTypes.h:37
Libraries
Foundation
LibC.h
Generated by
1.12.0