ReactOS 0.4.16-dev-2274-gc61d98f
purecall.cpp File Reference
#include <stdlib.h>
#include <intrin.h>
Include dependency graph for purecall.cpp:

Go to the source code of this file.

Functions

_purecall_handler _cdecl _get_purecall_handler (void)
 
_purecall_handler _cdecl _set_purecall_handler (_In_opt_ _purecall_handler _Handler)
 
int __cdecl _purecall (void)
 

Variables

static volatile _purecall_handler purecall_handler
 

Function Documentation

◆ _get_purecall_handler()

_purecall_handler _cdecl _get_purecall_handler ( void  )

Definition at line 14 of file purecall.cpp.

15{
16 return purecall_handler;
17}
static volatile _purecall_handler purecall_handler
Definition: purecall.cpp:11

◆ _purecall()

int __cdecl _purecall ( void  )

Definition at line 28 of file purecall.cpp.

29{
31 if (handler)
32 handler();
33 abort();
34}
UINT(* handler)(MSIPACKAGE *)
Definition: action.c:7512
void(__cdecl * _purecall_handler)(void)
Definition: stdlib.h:255
#define abort()
Definition: i386-dis.c:34

◆ _set_purecall_handler()

_purecall_handler _cdecl _set_purecall_handler ( _In_opt_ _purecall_handler  _Handler)

Definition at line 20 of file purecall.cpp.

21{
22 return reinterpret_cast<_purecall_handler>(
23 _InterlockedExchangePointer(reinterpret_cast<void* volatile*>(&purecall_handler),
24 reinterpret_cast<void*>(_Handler)));
25}
#define volatile
Definition: prototyp.h:117
void * _InterlockedExchangePointer(_Interlocked_operand_ void *volatile *_Target, void *_Value)

Variable Documentation

◆ purecall_handler

volatile _purecall_handler purecall_handler
static

Definition at line 11 of file purecall.cpp.

Referenced by _get_purecall_handler(), _purecall(), and _set_purecall_handler().