SWDEV-333073 - HIP_INIT_API to handle no return case
Change-Id: I78d43e88cc196047a4cb5d6fcf756339c0e46e80
[ROCm/clr commit: 1074b22c48]
This commit is contained in:
committed by
Sarbojit Sarkar
parent
32a73102ea
commit
86481e460d
@@ -75,10 +75,10 @@ typedef struct ihipIpcEventHandle_st {
|
||||
const char* ihipGetErrorName(hipError_t hip_error);
|
||||
|
||||
static amd::Monitor g_hipInitlock{"hipInit lock"};
|
||||
#define HIP_INIT() {\
|
||||
#define HIP_INIT(noReturn) {\
|
||||
amd::ScopedLock lock(g_hipInitlock); \
|
||||
if (!amd::Runtime::initialized()) { \
|
||||
if (!hip::init()) { \
|
||||
if (!hip::init() && !noReturn) { \
|
||||
HIP_RETURN(hipErrorInvalidDevice); \
|
||||
} \
|
||||
} \
|
||||
@@ -108,21 +108,21 @@ static amd::Monitor g_hipInitlock{"hipInit lock"};
|
||||
ClPrint(amd::LOG_INFO, amd::LOG_API, "%s: Returned %s : %s", \
|
||||
__func__, ihipGetErrorName(err), ToString( __VA_ARGS__ ).c_str());
|
||||
|
||||
#define HIP_INIT_API_NO_RETURN(cid, ...) \
|
||||
HIP_API_PRINT(__VA_ARGS__) \
|
||||
amd::Thread* thread = amd::Thread::current(); \
|
||||
VDI_CHECK_THREAD(thread); \
|
||||
HIP_INIT_VOID()
|
||||
#define HIP_INIT_API_INTERNAL(noReturn, cid, ...) \
|
||||
HIP_API_PRINT(__VA_ARGS__) \
|
||||
amd::Thread* thread = amd::Thread::current(); \
|
||||
if (!VDI_CHECK_THREAD(thread) && !noReturn) { \
|
||||
HIP_RETURN(hipErrorOutOfMemory); \
|
||||
} \
|
||||
HIP_INIT(noReturn) \
|
||||
HIP_CB_SPAWNER_OBJECT(cid);
|
||||
|
||||
// This macro should be called at the beginning of every HIP API.
|
||||
#define HIP_INIT_API(cid, ...) \
|
||||
HIP_API_PRINT(__VA_ARGS__) \
|
||||
amd::Thread* thread = amd::Thread::current(); \
|
||||
if (!VDI_CHECK_THREAD(thread)) { \
|
||||
HIP_RETURN(hipErrorOutOfMemory); \
|
||||
} \
|
||||
HIP_INIT() \
|
||||
HIP_CB_SPAWNER_OBJECT(cid);
|
||||
HIP_INIT_API_INTERNAL(0, cid, __VA_ARGS__)
|
||||
|
||||
#define HIP_INIT_API_NO_RETURN(cid, ...) \
|
||||
HIP_INIT_API_INTERNAL(1, cid, __VA_ARGS__)
|
||||
|
||||
#define HIP_RETURN_DURATION(ret, ...) \
|
||||
hip::g_lastError = ret; \
|
||||
|
||||
@@ -278,7 +278,6 @@ hipError_t hipGetSymbolSize(size_t* sizePtr, const void* symbol) {
|
||||
|
||||
hipError_t ihipCreateGlobalVarObj(const char* name, hipModule_t hmod, amd::Memory** amd_mem_obj,
|
||||
hipDeviceptr_t* dptr, size_t* bytes) {
|
||||
HIP_INIT();
|
||||
|
||||
/* Get Device Program pointer*/
|
||||
amd::Program* program = as_amd(reinterpret_cast<cl_program>(hmod));
|
||||
|
||||
Reference in New Issue
Block a user