1ff2c7c87STimo Kreuzer 
2ff2c7c87STimo Kreuzer #pragma once
3ff2c7c87STimo Kreuzer 
4ff2c7c87STimo Kreuzer #include <vcruntime.h>
5*2955b1f0STimo Kreuzer 
6*2955b1f0STimo Kreuzer _CRT_BEGIN_C_HEADER
7*2955b1f0STimo Kreuzer 
8*2955b1f0STimo Kreuzer void*
9*2955b1f0STimo Kreuzer __cdecl
10*2955b1f0STimo Kreuzer memset(
11*2955b1f0STimo Kreuzer     _Out_writes_bytes_all_(_Size) void *_Dst,
12*2955b1f0STimo Kreuzer     _In_ int _Val,
13*2955b1f0STimo Kreuzer     _In_ size_t _Size);
14*2955b1f0STimo Kreuzer 
15*2955b1f0STimo Kreuzer _CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s)
16*2955b1f0STimo Kreuzer _Post_equal_to_(_Dst)
17*2955b1f0STimo Kreuzer _At_buffer_((unsigned char*)_Dst, _Iter_, _Size,
18*2955b1f0STimo Kreuzer   _Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == ((unsigned char*)_Src)[_Iter_]))
19*2955b1f0STimo Kreuzer void*
20*2955b1f0STimo Kreuzer __cdecl
21*2955b1f0STimo Kreuzer memcpy(
22*2955b1f0STimo Kreuzer     _Out_writes_bytes_all_(_Size) void *_Dst,
23*2955b1f0STimo Kreuzer     _In_reads_bytes_(_Size) void const *_Src,
24*2955b1f0STimo Kreuzer     _In_ size_t _Size);
25*2955b1f0STimo Kreuzer 
26*2955b1f0STimo Kreuzer _CRT_INSECURE_DEPRECATE_MEMORY(memmove_s)
27*2955b1f0STimo Kreuzer _VCRTIMP
28*2955b1f0STimo Kreuzer void*
29*2955b1f0STimo Kreuzer __cdecl
30*2955b1f0STimo Kreuzer memmove(
31*2955b1f0STimo Kreuzer     _Out_writes_bytes_all_opt_(_Size) void *_Dst,
32*2955b1f0STimo Kreuzer     _In_reads_bytes_opt_(_Size) void const *_Src,
33*2955b1f0STimo Kreuzer     _In_ size_t _Size);
34*2955b1f0STimo Kreuzer 
35*2955b1f0STimo Kreuzer _NODISCARD
36*2955b1f0STimo Kreuzer _Check_return_
37*2955b1f0STimo Kreuzer _VCRTIMP
38*2955b1f0STimo Kreuzer char _CONST_RETURN*
39*2955b1f0STimo Kreuzer __cdecl
40*2955b1f0STimo Kreuzer strchr(
41*2955b1f0STimo Kreuzer     _In_z_ const char *_Str,
42*2955b1f0STimo Kreuzer     _In_ int _Val);
43*2955b1f0STimo Kreuzer 
44*2955b1f0STimo Kreuzer _NODISCARD
45*2955b1f0STimo Kreuzer _Check_return_
46*2955b1f0STimo Kreuzer _When_(return != NULL, _Ret_range_(_Str, _Str + _String_length_(_Str) - 1))
47*2955b1f0STimo Kreuzer _VCRTIMP
48*2955b1f0STimo Kreuzer wchar_t _CONST_RETURN*
49*2955b1f0STimo Kreuzer __cdecl
50*2955b1f0STimo Kreuzer wcschr(
51*2955b1f0STimo Kreuzer     _In_z_ const wchar_t *_Str,
52*2955b1f0STimo Kreuzer     _In_ wchar_t _Ch);
53*2955b1f0STimo Kreuzer 
54*2955b1f0STimo Kreuzer _NODISCARD
55*2955b1f0STimo Kreuzer _Check_return_
56*2955b1f0STimo Kreuzer _VCRTIMP
57*2955b1f0STimo Kreuzer char _CONST_RETURN*
58*2955b1f0STimo Kreuzer __cdecl strrchr(
59*2955b1f0STimo Kreuzer     _In_z_ const char *_Str,
60*2955b1f0STimo Kreuzer     _In_ int _Ch);
61*2955b1f0STimo Kreuzer 
62*2955b1f0STimo Kreuzer _NODISCARD
63*2955b1f0STimo Kreuzer _Check_return_
64*2955b1f0STimo Kreuzer _Ret_maybenull_
65*2955b1f0STimo Kreuzer _VCRTIMP
66*2955b1f0STimo Kreuzer char _CONST_RETURN*
67*2955b1f0STimo Kreuzer __cdecl
68*2955b1f0STimo Kreuzer strstr(
69*2955b1f0STimo Kreuzer     _In_z_ const char *_Str,
70*2955b1f0STimo Kreuzer     _In_z_ const char *_SubStr);
71*2955b1f0STimo Kreuzer 
72*2955b1f0STimo Kreuzer _NODISCARD
73*2955b1f0STimo Kreuzer _Check_return_
74*2955b1f0STimo Kreuzer int
75*2955b1f0STimo Kreuzer __cdecl
76*2955b1f0STimo Kreuzer memcmp(
77*2955b1f0STimo Kreuzer     _In_reads_bytes_(_Size) const void *_Buf1,
78*2955b1f0STimo Kreuzer     _In_reads_bytes_(_Size) const void *_Buf2,
79*2955b1f0STimo Kreuzer     _In_ size_t _Size);
80*2955b1f0STimo Kreuzer 
81*2955b1f0STimo Kreuzer _NODISCARD
82*2955b1f0STimo Kreuzer _Check_return_
83*2955b1f0STimo Kreuzer _Ret_maybenull_
84*2955b1f0STimo Kreuzer _When_(return != NULL, _Ret_range_(_Str, _Str + _String_length_(_Str) - 1))
85*2955b1f0STimo Kreuzer _VCRTIMP
86*2955b1f0STimo Kreuzer wchar_t _CONST_RETURN*
87*2955b1f0STimo Kreuzer __cdecl
88*2955b1f0STimo Kreuzer wcsstr(
89*2955b1f0STimo Kreuzer     _In_z_ const wchar_t *_Str,
90*2955b1f0STimo Kreuzer     _In_z_ const wchar_t *_SubStr);
91*2955b1f0STimo Kreuzer 
92*2955b1f0STimo Kreuzer _NODISCARD
93*2955b1f0STimo Kreuzer _Check_return_
94*2955b1f0STimo Kreuzer _VCRTIMP
95*2955b1f0STimo Kreuzer void _CONST_RETURN*
96*2955b1f0STimo Kreuzer __cdecl
97*2955b1f0STimo Kreuzer memchr(
98*2955b1f0STimo Kreuzer     _In_reads_bytes_opt_(_MaxCount) const void *_Buf,
99*2955b1f0STimo Kreuzer     _In_ int _Val,
100*2955b1f0STimo Kreuzer     _In_ size_t _MaxCount);
101*2955b1f0STimo Kreuzer 
102*2955b1f0STimo Kreuzer _NODISCARD
103*2955b1f0STimo Kreuzer _Check_return_
104*2955b1f0STimo Kreuzer _VCRTIMP
105*2955b1f0STimo Kreuzer wchar_t _CONST_RETURN*
106*2955b1f0STimo Kreuzer __cdecl
107*2955b1f0STimo Kreuzer wcsrchr(
108*2955b1f0STimo Kreuzer     _In_z_ const wchar_t *_Str,
109*2955b1f0STimo Kreuzer     _In_ wchar_t _Ch);
110*2955b1f0STimo Kreuzer 
111*2955b1f0STimo Kreuzer _CRT_END_C_HEADER
112