mirror of
https://github.com/intel/intel-graphics-compiler.git
synced 2025-11-04 08:21:06 +08:00
75 lines
1.9 KiB
C++
75 lines
1.9 KiB
C++
/*========================== begin_copyright_notice ============================
|
|
|
|
Copyright (C) 2019-2021 Intel Corporation
|
|
|
|
SPDX-License-Identifier: MIT
|
|
|
|
============================= end_copyright_notice ===========================*/
|
|
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
#ifdef _WIN32
|
|
|
|
#include <stdio.h>
|
|
|
|
#if defined ISTDLIB_KMD
|
|
# include <stdarg.h>
|
|
#endif
|
|
|
|
#if defined ISTDLIB_UMD && !defined UNIT_TESTING
|
|
# include <wtypes.h>
|
|
# include <winbase.h>
|
|
#endif
|
|
|
|
namespace iSTD
|
|
{
|
|
|
|
/*****************************************************************************\
|
|
Extern: EngDebugPrint
|
|
Defined in winddi.h
|
|
\*****************************************************************************/
|
|
#if defined(ISTDLIB_KMD)
|
|
extern "C" void APIENTRY EngDebugPrint( PCHAR, PCHAR, va_list );
|
|
#endif
|
|
|
|
/*****************************************************************************\
|
|
Inline Function: PrintMessage
|
|
PURPOSE: Prints a message for both debug and release drivers
|
|
\*****************************************************************************/
|
|
inline void __cdecl PrintMessage( char* str, ... )
|
|
{
|
|
if( str )
|
|
{
|
|
va_list args;
|
|
va_start( args, str );
|
|
|
|
const size_t length = ::_vscprintf( str, args ) + 1;
|
|
char* temp = new char[ length ];
|
|
|
|
if( temp )
|
|
{
|
|
#if defined(ISTDLIB_KMD)
|
|
// Send message to kernel debugger
|
|
::_vsnprintf( temp, length, str, args );
|
|
EngDebugPrint( "INTC: ", "%s", (PCHAR)&temp );
|
|
|
|
#elif defined(ISTDLIB_UMD)
|
|
#ifndef UNIT_TESTING
|
|
::_vsnprintf_s( temp, length, length, str, args );
|
|
OutputDebugStringA( "INTC: " );
|
|
OutputDebugStringA( temp );
|
|
#endif
|
|
#endif
|
|
delete[] temp;
|
|
}
|
|
|
|
va_end( args );
|
|
}
|
|
}
|
|
|
|
} // namespace iSTD
|
|
|
|
#endif // _WIN32
|
|
#endif // __cplusplus
|