ReactOS 0.4.16-dev-2298-gcac013a
__vcrt_init.c File Reference
#include <internal_shared.h>
Include dependency graph for __vcrt_init.c:

Go to the source code of this file.

Functions

void msvcrt_init_exception (HINSTANCE hinstDLL)
 
BOOL msvcrt_init_tls (void)
 
void msvcrt_free_tls_mem (void)
 
BOOL msvcrt_free_tls (void)
 
__vcrt_bool __cdecl __vcrt_initialize (void)
 
__vcrt_bool __cdecl __vcrt_uninitialize (_In_ __vcrt_bool _Terminating)
 
__vcrt_bool __cdecl __vcrt_uninitialize_critical (void)
 
__vcrt_bool __cdecl __vcrt_thread_attach (void)
 
__vcrt_bool __cdecl __vcrt_thread_detach (void)
 
static VOID WINAPI wine_tls_cleanup_callback (PVOID hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
 

Variables

const IMAGE_TLS_DIRECTORY__p_tls_used = &_tls_used
 

Function Documentation

◆ __vcrt_initialize()

__vcrt_bool __cdecl __vcrt_initialize ( void  )

Definition at line 18 of file __vcrt_init.c.

19{
21
22 if (!msvcrt_init_tls())
23 return FALSE;
24
25 return TRUE;
26}
void msvcrt_init_exception(HINSTANCE hinstDLL)
BOOL msvcrt_init_tls(void)
Definition: ucrt_tls_sup.c:17
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define GetModuleHandle
Definition: winbase.h:3576

◆ __vcrt_thread_attach()

__vcrt_bool __cdecl __vcrt_thread_attach ( void  )

Definition at line 41 of file __vcrt_init.c.

42{
43 // Not called by UCRT
44 return TRUE;
45}

◆ __vcrt_thread_detach()

__vcrt_bool __cdecl __vcrt_thread_detach ( void  )

Definition at line 47 of file __vcrt_init.c.

48{
49 // Not called by UCRT
50 return TRUE;
51}

◆ __vcrt_uninitialize()

__vcrt_bool __cdecl __vcrt_uninitialize ( _In_ __vcrt_bool  _Terminating)

Definition at line 28 of file __vcrt_init.c.

29{
30 if (!msvcrt_free_tls())
31 return FALSE;
32
33 return TRUE;
34}
BOOL msvcrt_free_tls(void)
Definition: ucrt_tls_sup.c:29

◆ __vcrt_uninitialize_critical()

__vcrt_bool __cdecl __vcrt_uninitialize_critical ( void  )

Definition at line 36 of file __vcrt_init.c.

37{
38 return TRUE;
39}

◆ msvcrt_free_tls()

BOOL msvcrt_free_tls ( void  )

Definition at line 29 of file ucrt_tls_sup.c.

30{
32 {
33 ERR("TlsFree() failed!\n");
34 return FALSE;
35 }
36
37 return TRUE;
38}
#define ERR(fmt,...)
Definition: precomp.h:57
BOOL WINAPI TlsFree(IN DWORD Index)
Definition: thread.c:1166
DWORD msvcrt_tls_index
Definition: ucrt_tls_sup.c:15

Referenced by __vcrt_uninitialize().

◆ msvcrt_free_tls_mem()

void msvcrt_free_tls_mem ( void  )

Definition at line 40 of file ucrt_tls_sup.c.

41{
43 if (tls)
44 {
45 free(tls->efcvt_buffer);
46 assert(tls->asctime_buffer == NULL);
47 assert(tls->wasctime_buffer == NULL);
48 assert(tls->strerror_buffer == NULL);
49 assert(tls->wcserror_buffer == NULL);
50 assert(tls->time_buffer == NULL);
51 assert(tls->tmpnam_buffer == NULL);
52 assert(tls->wtmpnam_buffer == NULL);
53 assert(tls->locinfo == NULL);
54 assert(tls->mbcinfo == NULL);
56 }
57}
#define free
Definition: debug_ros.c:5
#define GetProcessHeap()
Definition: compat.h:736
#define HeapFree(x, y, z)
Definition: compat.h:735
LPVOID WINAPI TlsGetValue(IN DWORD Index)
Definition: thread.c:1240
#define assert(_expr)
Definition: assert.h:32
static DWORD tls
Definition: sock.c:229

Referenced by wine_tls_cleanup_callback().

◆ msvcrt_init_exception()

void msvcrt_init_exception ( HINSTANCE  hinstDLL)

Referenced by __vcrt_initialize().

◆ msvcrt_init_tls()

BOOL msvcrt_init_tls ( void  )

Definition at line 17 of file ucrt_tls_sup.c.

18{
21 {
22 ERR("TlsAlloc() failed!\n");
23 return FALSE;
24 }
25
26 return TRUE;
27}
DWORD WINAPI DECLSPEC_HOTPATCH TlsAlloc(void)
Definition: thread.c:657
#define TLS_OUT_OF_INDEXES
Definition: winbase.h:529

Referenced by __vcrt_initialize().

◆ wine_tls_cleanup_callback()

static VOID WINAPI wine_tls_cleanup_callback ( PVOID  hinstDLL,
DWORD  fdwReason,
LPVOID  lpvReserved 
)
static

Definition at line 61 of file __vcrt_init.c.

62{
63 // For the last thread, only DLL_PROCESS_DETACH is called
66 {
68 }
69}
void msvcrt_free_tls_mem(void)
Definition: ucrt_tls_sup.c:40
static DWORD const fdwReason
#define DLL_THREAD_DETACH
Definition: compat.h:133
#define DLL_PROCESS_DETACH
Definition: compat.h:130

Variable Documentation

◆ __p_tls_used

Definition at line 56 of file __vcrt_init.c.