ReactOS 0.4.16-dev-852-gcfcc8d8
corecrt_internal_ptd_propagation.h File Reference
#include <corecrt_internal.h>
#include <stdlib.h>
Include dependency graph for corecrt_internal_ptd_propagation.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _UCRT_INVALID_PARAMETER(ptd, expr)   _invalid_parameter_internal(nullptr, nullptr, nullptr, 0, 0, ptd)
 
#define _UCRT_VALIDATE_CLEAR_OSSERR_RETURN(ptd, expr, errorcode, retexpr)
 
#define _UCRT_VALIDATE_CLEAR_OSSERR_RETURN_ERRCODE(ptd, expr, errorcode)
 
#define _UCRT_VALIDATE_RETURN(ptd, expr, errorcode, retexpr)
 
#define _UCRT_VALIDATE_RETURN_ERRCODE(ptd, expr, errorcode)
 
#define _UCRT_VALIDATE_RETURN_ERRCODE_NOEXC(ptd, expr, errorcode)
 
#define _UCRT_VALIDATE_RETURN_NOERRNO(ptd, expr, retexpr)
 
#define _UCRT_VALIDATE_RETURN_NOEXC(ptd, expr, errorcode, retexpr)
 
#define _UCRT_VALIDATE_RETURN_VOID(ptd, expr, errorcode)
 
#define _UCRT_VALIDATE_STREAM_ANSI_RETURN(ptd, stream, errorcode, retexpr)
 
#define _UCRT_CHECK_FH_RETURN(ptd, handle, errorcode, retexpr)
 
#define _UCRT_CHECK_FH_CLEAR_OSSERR_RETURN(ptd, handle, errorcode, retexpr)
 
#define _UCRT_CHECK_FH_CLEAR_OSSERR_RETURN_ERRCODE(ptd, handle, retexpr)
 
#define _UCRT_VALIDATE_CLEAR_OSSERR_RETURN(ptd, expr, errorcode, retexpr)
 

Functions

_CRT_BEGIN_C_HEADER __acrt_ptd *__cdecl __acrt_getptd_noexit_explicit (__crt_scoped_get_last_error_reset const &, size_t global_state_index)
 

Macro Definition Documentation

◆ _UCRT_CHECK_FH_CLEAR_OSSERR_RETURN

#define _UCRT_CHECK_FH_CLEAR_OSSERR_RETURN (   ptd,
  handle,
  errorcode,
  retexpr 
)
Value:
{ \
{ \
(ptd).get_doserrno().set(0L); \
(ptd).get_errno().set((errorcode)); \
return (retexpr); \
} \
}
_In_ size_t const _In_ int _In_ bool const _In_ unsigned const _In_ __acrt_rounding_mode const _Inout_ __crt_cached_ptd_host & ptd
Definition: cvt.cpp:355
#define L(x)
Definition: ntvdm.h:50
#define _NO_CONSOLE_FILENO
Definition: internal.h:92

Definition at line 537 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_CHECK_FH_CLEAR_OSSERR_RETURN_ERRCODE

#define _UCRT_CHECK_FH_CLEAR_OSSERR_RETURN_ERRCODE (   ptd,
  handle,
  retexpr 
)
Value:
{ \
{ \
(ptd).get_doserrno().set(0L); \
return (retexpr); \
} \
}

Definition at line 547 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_CHECK_FH_RETURN

#define _UCRT_CHECK_FH_RETURN (   ptd,
  handle,
  errorcode,
  retexpr 
)
Value:
{ \
{ \
(ptd).get_errno().set((errorcode)); \
return (retexpr); \
} \
}

Definition at line 528 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_INVALID_PARAMETER

#define _UCRT_INVALID_PARAMETER (   ptd,
  expr 
)    _invalid_parameter_internal(nullptr, nullptr, nullptr, 0, 0, ptd)

Definition at line 421 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_CLEAR_OSSERR_RETURN [1/2]

#define _UCRT_VALIDATE_CLEAR_OSSERR_RETURN (   ptd,
  expr,
  errorcode,
  retexpr 
)
Value:
{ \
int _Expr_val = !!(expr); \
_ASSERT_EXPR((_Expr_val), _CRT_WIDE(#expr)); \
if (!(_Expr_val)) \
{ \
(ptd).get_doserrno().set(0L); \
(ptd).get_errno().set((errorcode)); \
_UCRT_INVALID_PARAMETER((ptd), _CRT_WIDE(#expr)); \
return (retexpr); \
} \
}
Definition: query.h:86
#define _CRT_WIDE(_String)
Definition: vcruntime.h:20

Definition at line 556 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_CLEAR_OSSERR_RETURN [2/2]

#define _UCRT_VALIDATE_CLEAR_OSSERR_RETURN (   ptd,
  expr,
  errorcode,
  retexpr 
)
Value:
{ \
int _Expr_val = !!(expr); \
_ASSERT_EXPR((_Expr_val), _CRT_WIDE(#expr)); \
if (!(_Expr_val)) \
{ \
(ptd).get_doserrno().set(0L); \
(ptd).get_errno().set((errorcode)); \
_UCRT_INVALID_PARAMETER((ptd), _CRT_WIDE(#expr)); \
return (retexpr); \
} \
}

Definition at line 556 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_CLEAR_OSSERR_RETURN_ERRCODE

#define _UCRT_VALIDATE_CLEAR_OSSERR_RETURN_ERRCODE (   ptd,
  expr,
  errorcode 
)
Value:
{ \
int _Expr_val = !!(expr); \
_ASSERT_EXPR((_Expr_val), _CRT_WIDE(#expr)); \
if (!(_Expr_val)) \
{ \
(ptd).get_doserrno().set(0L); \
(ptd).get_errno().set((errorcode)); \
_UCRT_INVALID_PARAMETER((ptd), _CRT_WIDE(#expr)); \
return (errorcode); \
} \
}

Definition at line 437 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_RETURN

#define _UCRT_VALIDATE_RETURN (   ptd,
  expr,
  errorcode,
  retexpr 
)
Value:
{ \
int _Expr_val = !!(expr); \
_ASSERT_EXPR((_Expr_val), _CRT_WIDE(#expr)); \
if (!(_Expr_val)) \
{ \
(ptd).get_errno().set((errorcode)); \
_UCRT_INVALID_PARAMETER((ptd), _CRT_WIDE(#expr)); \
return (retexpr); \
} \
}

Definition at line 450 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_RETURN_ERRCODE

#define _UCRT_VALIDATE_RETURN_ERRCODE (   ptd,
  expr,
  errorcode 
)
Value:
{ \
int _Expr_val = !!(expr); \
_ASSERT_EXPR((_Expr_val), _CRT_WIDE(#expr)); \
if (!(_Expr_val)) \
{ \
(ptd).get_errno().set((errorcode)); \
_UCRT_INVALID_PARAMETER((ptd), _CRT_WIDE(#expr)); \
return (errorcode); \
} \
}

Definition at line 462 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_RETURN_ERRCODE_NOEXC

#define _UCRT_VALIDATE_RETURN_ERRCODE_NOEXC (   ptd,
  expr,
  errorcode 
)
Value:
{ \
if (!(expr)) \
{ \
return (ptd).get_errno().set((errorcode)); \
} \
}

Definition at line 474 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_RETURN_NOERRNO

#define _UCRT_VALIDATE_RETURN_NOERRNO (   ptd,
  expr,
  retexpr 
)
Value:
{ \
int _Expr_val = !!(expr); \
_ASSERT_EXPR((_Expr_val), _CRT_WIDE(#expr)); \
if (!(_Expr_val)) \
{ \
_UCRT_INVALID_PARAMETER((ptd), _CRT_WIDE(#expr)); \
return (retexpr); \
} \
}

Definition at line 482 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_RETURN_NOEXC

#define _UCRT_VALIDATE_RETURN_NOEXC (   ptd,
  expr,
  errorcode,
  retexpr 
)
Value:
{ \
if (!(expr)) \
{ \
(ptd).get_errno().set((errorcode)); \
return (retexpr); \
} \
}

Definition at line 493 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_RETURN_VOID

#define _UCRT_VALIDATE_RETURN_VOID (   ptd,
  expr,
  errorcode 
)
Value:
{ \
int _Expr_val = !!(expr); \
_ASSERT_EXPR((_Expr_val), _CRT_WIDE(#expr)); \
if (!(_Expr_val)) \
{ \
(ptd).get_errno().set((errorcode)); \
_UCRT_INVALID_PARAMETER((ptd), _CRT_WIDE(#expr)); \
return; \
} \
}

Definition at line 502 of file corecrt_internal_ptd_propagation.h.

◆ _UCRT_VALIDATE_STREAM_ANSI_RETURN

#define _UCRT_VALIDATE_STREAM_ANSI_RETURN (   ptd,
  stream,
  errorcode,
  retexpr 
)
Value:
{ \
int fn; \
_UCRT_VALIDATE_RETURN((ptd), ( \
(_Stream.is_string_backed()) || \
(fn = _fileno(_Stream.public_stream()), \
(errorcode), (retexpr)) \
}
_Inout_ FILE * _Stream
_Check_return_ _CRTIMP int __cdecl _fileno(_In_ FILE *_File)
#define _textmode_safe(i)
Definition: internal.h:81
#define _tm_unicode_safe(i)
Definition: internal.h:82
Definition: parse.h:23
static GLenum _GLUfuncptr fn
Definition: wgl_font.c:159

Definition at line 516 of file corecrt_internal_ptd_propagation.h.

Function Documentation

◆ __acrt_getptd_noexit_explicit()

_CRT_BEGIN_C_HEADER __acrt_ptd *__cdecl __acrt_getptd_noexit_explicit ( __crt_scoped_get_last_error_reset const last_error_reset,
size_t  global_state_index 
)

Definition at line 286 of file per_thread_data.cpp.

287{ // An extra function to grab the PTD while a GetLastError() reset guard is already in place
288 // and the global state index is already known.
289
290 return internal_getptd_noexit(last_error_reset, global_state_index);
291}
static __forceinline __acrt_ptd *__cdecl internal_getptd_noexit()