Add missing rsForEach()/rsSendToClient*() functions and API tests.
These were missing from the support library.
Change-Id: I53dd062fc0f1d9a6f0ce06d148c4047ebb338b71
diff --git a/driver/rsdRuntimeStubs.cpp b/driver/rsdRuntimeStubs.cpp
index 2a3ebc9..f0cd726 100644
--- a/driver/rsdRuntimeStubs.cpp
+++ b/driver/rsdRuntimeStubs.cpp
@@ -539,7 +539,7 @@
// Message routines
//////////////////////////////////////////////////////////////////////////////
-static uint32_t SC_ToClient2(int cmdID, void *data, int len) {
+static uint32_t SC_ToClient2(int cmdID, const void *data, uint32_t len) {
Context *rsc = RsdCpuReference::getTlsContext();
return rsrToClient(rsc, cmdID, data, len);
}
@@ -549,7 +549,7 @@
return rsrToClient(rsc, cmdID, NULL, 0);
}
-static uint32_t SC_ToClientBlocking2(int cmdID, void *data, int len) {
+static uint32_t SC_ToClientBlocking2(int cmdID, const void *data, uint32_t len) {
Context *rsc = RsdCpuReference::getTlsContext();
return rsrToClientBlocking(rsc, cmdID, data, len);
}
@@ -1289,6 +1289,20 @@
void __attribute__((overloadable)) rsForEach(rs_script script,
rs_allocation in,
+ rs_allocation out) {
+ return SC_ForEach_SAA((Script *)script.p, (Allocation*)in.p, (Allocation*)out.p);
+}
+
+void __attribute__((overloadable)) rsForEach(rs_script script,
+ rs_allocation in,
+ rs_allocation out,
+ const void *usr,
+ uint32_t usrLen) {
+ return SC_ForEach_SAAUL((Script *)script.p, (Allocation*)in.p, (Allocation*)out.p, usr, usrLen);
+}
+
+void __attribute__((overloadable)) rsForEach(rs_script script,
+ rs_allocation in,
rs_allocation out,
const void *usr,
uint32_t usrLen,
@@ -1309,14 +1323,20 @@
return rsrUptimeMillis(rsc);
}
-uint32_t rsSendToClientBlocking2(int cmdID, void *data, int len) {
- Context *rsc = RsdCpuReference::getTlsContext();
- return rsrToClientBlocking(rsc, cmdID, data, len);
+uint32_t rsSendToClient(int cmdID) {
+ return SC_ToClient(cmdID);
+}
+
+uint32_t rsSendToClient(int cmdID, const void *data, uint32_t len) {
+ return SC_ToClient2(cmdID, data, len);
}
uint32_t rsSendToClientBlocking(int cmdID) {
- Context *rsc = RsdCpuReference::getTlsContext();
- return rsrToClientBlocking(rsc, cmdID, NULL, 0);
+ return SC_ToClientBlocking(cmdID);
+}
+
+uint32_t rsSendToClientBlocking(int cmdID, const void *data, uint32_t len) {
+ return SC_ToClientBlocking2(cmdID, data, len);
}
static void SC_debugF(const char *s, float f) {