ReactOS 0.4.16-dev-835-gd769f56
initialization.cpp File Reference
#include <corecrt_internal.h>
#include <corecrt_internal_stdio.h>
#include <stdlib.h>
#include <stdio.h>
Include dependency graph for initialization.cpp:

Go to the source code of this file.

Functions

static bool __cdecl initialize_global_variables ()
 
static bool __cdecl initialize_c ()
 
static bool __cdecl uninitialize_c (bool)
 
static bool __cdecl initialize_environment ()
 
static bool __cdecl uninitialize_environment (bool const terminating)
 
static bool __cdecl initialize_global_state_isolation ()
 
static bool __cdecl uninitialize_global_state_isolation (bool const)
 
static bool __cdecl initialize_pointers ()
 
static bool __cdecl uninitialize_vcruntime (const bool)
 
static bool __cdecl uninitialize_allocated_memory (bool const)
 
static bool __cdecl uninitialize_allocated_io_buffers (bool const)
 
static bool __cdecl report_memory_leaks (bool const)
 
__crt_bool __cdecl __acrt_initialize ()
 
__crt_bool __cdecl __acrt_uninitialize (__crt_bool const terminating)
 
__crt_bool __cdecl __acrt_uninitialize_critical (__crt_bool const terminating)
 
__crt_bool __cdecl __acrt_thread_attach ()
 
__crt_bool __cdecl __acrt_thread_detach ()
 

Variables

_onexit_table_t __acrt_atexit_table
 
_onexit_table_t __acrt_at_quick_exit_table
 
void__acrt_stdout_buffer
 
void__acrt_stderr_buffer
 
static __acrt_initializer const __acrt_initializers []
 

Function Documentation

◆ __acrt_initialize()

__crt_bool __cdecl __acrt_initialize ( )

Definition at line 281 of file initialization.cpp.

282{
283 #if defined CRTDLL
285 #endif
286
290 );
291}
bool __cdecl __acrt_execute_initializers(_In_reads_(last - first) _In_ __acrt_initializer const *first, _In_reads_(0) __acrt_initializer const *last)
static __acrt_initializer const __acrt_initializers[]
#define _countof(array)
Definition: sndvol32.h:70
int __cdecl __isa_available_init(void)

Referenced by __scrt_initialize(), and DllMainProcessAttach().

◆ __acrt_thread_attach()

__crt_bool __cdecl __acrt_thread_attach ( )

Definition at line 327 of file initialization.cpp.

328{
329 // Create a per-thread data structure for this thread (getptd will attempt
330 // to create a new per-thread data structure if one does not already exist
331 // for this thread):
332 if (__acrt_getptd_noexit() == nullptr)
333 return false;
334
335 return true;
336}
__acrt_ptd *__cdecl __acrt_getptd_noexit(void)

Referenced by switch().

◆ __acrt_thread_detach()

__crt_bool __cdecl __acrt_thread_detach ( )

Definition at line 338 of file initialization.cpp.

339{
340 // Free the per-thread data structure for this thread:
342 return true;
343}
void __cdecl __acrt_freeptd(void)

Referenced by switch().

◆ __acrt_uninitialize()

__crt_bool __cdecl __acrt_uninitialize ( __crt_bool const  terminating)

Definition at line 293 of file initialization.cpp.

294{
295 UNREFERENCED_PARAMETER(terminating);
296
297 // If the process is terminating, there's no point in cleaning up, except
298 // in debug builds.
299 #ifndef _DEBUG
300 if (terminating) {
301 #ifndef _UCRT_ENCLAVE_BUILD
303 _flushall();
304 }
305 #endif
306 return TRUE;
307 }
308 #endif
309
313 );
314}
bool __cdecl __acrt_execute_uninitializers(_In_reads_(last - first) __acrt_initializer const *first, _In_reads_(0) __acrt_initializer const *last)
bool __acrt_stdio_is_initialized()
#define TRUE
Definition: types.h:120
_Check_return_opt_ _CRTIMP int __cdecl _flushall(void)
Definition: file.c:893
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:325

Referenced by DllMainProcessDetach().

◆ __acrt_uninitialize_critical()

__crt_bool __cdecl __acrt_uninitialize_critical ( __crt_bool const  terminating)

Definition at line 316 of file initialization.cpp.

317{
318 __acrt_uninitialize_ptd(terminating);
319
320 #ifdef _CRT_GLOBAL_STATE_ISOLATION
322 #endif
323
324 return true;
325}
bool __cdecl __acrt_uninitialize_ptd(_In_ bool terminating)
static bool __cdecl uninitialize_global_state_isolation(bool const)

◆ initialize_c()

static bool __cdecl initialize_c ( )
static

Definition at line 82 of file initialization.cpp.

83 {
86 return true;
87 }
_ACRTIMP int __cdecl _initialize_onexit_table(_In_opt_ _onexit_table_t *_Table)
_onexit_table_t __acrt_at_quick_exit_table
Definition: exit.cpp:15
_onexit_table_t __acrt_atexit_table
Definition: exit.cpp:14

◆ initialize_environment()

static bool __cdecl initialize_environment ( )
static

Definition at line 96 of file initialization.cpp.

97 {
98 return true;
99 }

◆ initialize_global_state_isolation()

static bool __cdecl initialize_global_state_isolation ( )
static

Definition at line 137 of file initialization.cpp.

138 {
139 return true;
140 }

◆ initialize_global_variables()

static bool __cdecl initialize_global_variables ( )
static

Definition at line 27 of file initialization.cpp.

28{
30 return true;
31}
__crt_locale_data __acrt_initial_locale_data
Definition: nlsdata.cpp:92
__crt_state_management::dual_state_global< __crt_locale_data * > __acrt_current_locale_data
Definition: nlsdata.cpp:132

◆ initialize_pointers()

static bool __cdecl initialize_pointers ( )
static

Definition at line 151 of file initialization.cpp.

152{
153 void* const encoded_null = __crt_fast_encode_pointer(nullptr);
155 __acrt_initialize_new_handler(encoded_null);
157 __acrt_initialize_user_matherr(encoded_null);
159 return true;
160}
void __cdecl __acrt_initialize_invalid_parameter_handler(_In_opt_ void *encoded_null)
void __cdecl __acrt_initialize_user_matherr(void *encoded_null)
Definition: matherr.cpp:22
void __cdecl __acrt_initialize_signal_handlers(_In_opt_ void *encoded_null)
void __cdecl __acrt_initialize_thread_local_exit_callback(_In_opt_ void *encoded_null)
void __cdecl __acrt_initialize_new_handler(void *const encoded_null)
Definition: new_handler.cpp:18

◆ report_memory_leaks()

static bool __cdecl report_memory_leaks ( bool const  )
static

Definition at line 201 of file initialization.cpp.

202{
203 #ifdef _DEBUG
205 {
206 _CrtSetDumpClient(nullptr);
208 }
209 #endif
210
211 return true;
212}
#define _CrtDumpMemoryLeaks()
Definition: crtdbg.h:258
#define _CRTDBG_LEAK_CHECK_DF
Definition: crtdbg.h:53
#define _CRTDBG_REPORT_FLAG
Definition: crtdbg.h:61
#define _CrtSetDbgFlag(f)
Definition: crtdbg.h:246
#define _CrtSetDumpClient(f)
Definition: crtdbg.h:252

◆ uninitialize_allocated_io_buffers()

static bool __cdecl uninitialize_allocated_io_buffers ( bool const  )
static

Definition at line 184 of file initialization.cpp.

185{
187 __acrt_stdout_buffer = nullptr;
188
190 __acrt_stderr_buffer = nullptr;
191
193 __argv = nullptr;
194
196 __wargv = nullptr;
197
198 return true;
199}
#define __argv
Definition: stdlib.h:1154
#define __wargv
Definition: stdlib.h:1155
void * __acrt_stdout_buffer
Definition: _sftbuf.cpp:26
void * __acrt_stderr_buffer
Definition: _sftbuf.cpp:27
#define _free_crt

◆ uninitialize_allocated_memory()

static bool __cdecl uninitialize_allocated_memory ( bool const  )
static

Definition at line 167 of file initialization.cpp.

168{
169 __acrt_current_multibyte_data.uninitialize([](__crt_multibyte_data*& multibyte_data)
170 {
171 if (_InterlockedDecrement(&multibyte_data->refcount) == 0 &&
172 multibyte_data != &__acrt_initial_multibyte_data)
173 {
174 _free_crt(multibyte_data);
175 multibyte_data = &__acrt_initial_multibyte_data;
176 }
177 });
178
179 return true;
180}
__crt_multibyte_data __acrt_initial_multibyte_data
Definition: mbctype.cpp:42
long __cdecl _InterlockedDecrement(_Interlocked_operand_ long volatile *_Addend)
__crt_state_management::dual_state_global< __crt_multibyte_data * > __acrt_current_multibyte_data
Definition: mbctype.cpp:131

◆ uninitialize_c()

static bool __cdecl uninitialize_c ( bool  )
static

Definition at line 89 of file initialization.cpp.

90 {
91 return true;
92 }

◆ uninitialize_environment()

static bool __cdecl uninitialize_environment ( bool const  terminating)
static

Definition at line 105 of file initialization.cpp.

106{
107 UNREFERENCED_PARAMETER(terminating);
108
109 #ifdef _DEBUG
110 if (terminating)
111 {
112 return true;
113 }
114 #endif
115
117 return true;
118}
void __cdecl __dcrt_uninitialize_environments_nolock()

◆ uninitialize_global_state_isolation()

static bool __cdecl uninitialize_global_state_isolation ( bool const  )
static

Definition at line 142 of file initialization.cpp.

143 {
144 return true;
145 }

Referenced by __acrt_uninitialize_critical().

◆ uninitialize_vcruntime()

static bool __cdecl uninitialize_vcruntime ( const bool  )
static

Definition at line 162 of file initialization.cpp.

163{
164 return __vcrt_uninitialize(false);
165}
__vcrt_bool __cdecl __vcrt_uninitialize(_In_ __vcrt_bool _Terminating)
Definition: __vcrt_init.c:28

Variable Documentation

◆ __acrt_at_quick_exit_table

_onexit_table_t __acrt_at_quick_exit_table
extern

Definition at line 15 of file exit.cpp.

Referenced by _crt_at_quick_exit(), common_exit(), and initialize_c().

◆ __acrt_atexit_table

_onexit_table_t __acrt_atexit_table
extern

Definition at line 14 of file exit.cpp.

Referenced by _crt_atexit(), common_exit(), and initialize_c().

◆ __acrt_initializers

__acrt_initializer const __acrt_initializers[]
static

Definition at line 219 of file initialization.cpp.

Referenced by __acrt_initialize(), and __acrt_uninitialize().

◆ __acrt_stderr_buffer

void* __acrt_stderr_buffer
extern

◆ __acrt_stdout_buffer

void* __acrt_stdout_buffer
extern