Skip to content

Commit 23e98a1

Browse files
committed
Add the reset of the memory stuff from the default overrides.
1 parent 0022d80 commit 23e98a1

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

scripts/templates/mockddi.cpp.mako

+25
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,31 @@ namespace driver
7070
%else:
7171
*phNative${func_class} = reinterpret_cast<ur_native_handle_t>(h${func_class});
7272
%endif
73+
## These special cases handle memory stuff. Use verbose regex matching
74+
## to limit the possibility of unintentional stuff getting generated for
75+
## future entry points with similar names.
76+
%elif re.search(r"MemBufferCreate$", fname):
77+
if (pProperties && (pProperties)->pHost &&
78+
flags & UR_MEM_FLAG_USE_HOST_POINTER) {
79+
*phBuffer = mock::createDummyHandleWithData<ur_mem_handle_t>(
80+
reinterpret_cast<unsigned char *>((pProperties)->pHost),
81+
size);
82+
} else {
83+
*phBuffer =
84+
mock::createDummyHandle<ur_mem_handle_t>(size);
85+
}
86+
%elif re.search(r"EnqueueMemBufferMap$", fname):
87+
if(phEvent) {
88+
*phEvent = mock::createDummyHandle<ur_event_handle_t>();
89+
}
90+
91+
auto parentDummyHandle =
92+
reinterpret_cast<mock::dummy_handle_t>(hBuffer);
93+
*ppRetMap = (void *)(parentDummyHandle->MData);
94+
%elif re.search(r"USM(Host|Device|Shared)Alloc$", fname):
95+
*ppMem = mock::createDummyHandle<void *>(size);
96+
%elif re.search(r"USMPitchedAllocExp$", fname):
97+
*ppMem = mock::createDummyHandle<void *>(widthInBytes * height);
7398
%else:
7499
%if fname == 'urAdapterGet' or fname == 'urDeviceGet' or fname == 'urPlatformGet':
75100
<%

source/adapters/mock/ur_mockddi.cpp

+15-2
Original file line numberDiff line numberDiff line change
@@ -1446,7 +1446,13 @@ __urdlllocal ur_result_t UR_APICALL urMemBufferCreate(
14461446
result = replaceCallback(&params);
14471447
} else {
14481448

1449-
*phBuffer = mock::createDummyHandle<ur_mem_handle_t>();
1449+
if (pProperties && (pProperties)->pHost &&
1450+
flags & UR_MEM_FLAG_USE_HOST_POINTER) {
1451+
*phBuffer = mock::createDummyHandleWithData<ur_mem_handle_t>(
1452+
reinterpret_cast<unsigned char *>((pProperties)->pHost), size);
1453+
} else {
1454+
*phBuffer = mock::createDummyHandle<ur_mem_handle_t>(size);
1455+
}
14501456
result = UR_RESULT_SUCCESS;
14511457
}
14521458

@@ -2186,6 +2192,7 @@ __urdlllocal ur_result_t UR_APICALL urUSMHostAlloc(
21862192
result = replaceCallback(&params);
21872193
} else {
21882194

2195+
*ppMem = mock::createDummyHandle<void *>(size);
21892196
result = UR_RESULT_SUCCESS;
21902197
}
21912198

@@ -2237,6 +2244,7 @@ __urdlllocal ur_result_t UR_APICALL urUSMDeviceAlloc(
22372244
result = replaceCallback(&params);
22382245
} else {
22392246

2247+
*ppMem = mock::createDummyHandle<void *>(size);
22402248
result = UR_RESULT_SUCCESS;
22412249
}
22422250

@@ -2288,6 +2296,7 @@ __urdlllocal ur_result_t UR_APICALL urUSMSharedAlloc(
22882296
result = replaceCallback(&params);
22892297
} else {
22902298

2299+
*ppMem = mock::createDummyHandle<void *>(size);
22912300
result = UR_RESULT_SUCCESS;
22922301
}
22932302

@@ -6281,10 +6290,13 @@ __urdlllocal ur_result_t UR_APICALL urEnqueueMemBufferMap(
62816290
result = replaceCallback(&params);
62826291
} else {
62836292

6284-
// optional output handle
62856293
if (phEvent) {
62866294
*phEvent = mock::createDummyHandle<ur_event_handle_t>();
62876295
}
6296+
6297+
auto parentDummyHandle =
6298+
reinterpret_cast<mock::dummy_handle_t>(hBuffer);
6299+
*ppRetMap = (void *)(parentDummyHandle->MData);
62886300
result = UR_RESULT_SUCCESS;
62896301
}
62906302

@@ -7069,6 +7081,7 @@ __urdlllocal ur_result_t UR_APICALL urUSMPitchedAllocExp(
70697081
result = replaceCallback(&params);
70707082
} else {
70717083

7084+
*ppMem = mock::createDummyHandle<void *>(widthInBytes * height);
70727085
result = UR_RESULT_SUCCESS;
70737086
}
70747087

0 commit comments

Comments
 (0)