Retain older message APIs since existing GPU drivers depend on them.

Change-Id: Ic5425fafb7971b6094108d79346d067785b91735
diff --git a/driver/rsdRuntimeStubs.cpp b/driver/rsdRuntimeStubs.cpp
index f0cd726..8431410 100644
--- a/driver/rsdRuntimeStubs.cpp
+++ b/driver/rsdRuntimeStubs.cpp
@@ -546,7 +546,7 @@
 
 static uint32_t SC_ToClient(int cmdID) {
     Context *rsc = RsdCpuReference::getTlsContext();
-    return rsrToClient(rsc, cmdID, NULL, 0);
+    return rsrToClient(rsc, cmdID, (const void *)NULL, 0);
 }
 
 static uint32_t SC_ToClientBlocking2(int cmdID, const void *data, uint32_t len) {
@@ -556,7 +556,7 @@
 
 static uint32_t SC_ToClientBlocking(int cmdID) {
     Context *rsc = RsdCpuReference::getTlsContext();
-    return rsrToClientBlocking(rsc, cmdID, NULL, 0);
+    return rsrToClientBlocking(rsc, cmdID, (const void *)NULL, 0);
 }
 
 
diff --git a/rsRuntime.h b/rsRuntime.h
index da1a29f..73cfefb 100644
--- a/rsRuntime.h
+++ b/rsRuntime.h
@@ -128,6 +128,10 @@
 // Message routines
 //////////////////////////////////////////////////////////////////////////////
 
+// Keep existing routines to not break current GPU drivers.
+uint32_t __attribute((used)) rsrToClient(Context *, int cmdID, void *data, int len);
+uint32_t __attribute((used)) rsrToClientBlocking(Context *, int cmdID, void *data, int len);
+
 uint32_t rsrToClient(Context *, int cmdID, const void *data, int len);
 uint32_t rsrToClientBlocking(Context *, int cmdID, const void *data, int len);
 
diff --git a/rsScriptC_Lib.cpp b/rsScriptC_Lib.cpp
index 4434394..9435a4a 100644
--- a/rsScriptC_Lib.cpp
+++ b/rsScriptC_Lib.cpp
@@ -171,6 +171,16 @@
     return rsc->sendMessageToClient(data, RS_MESSAGE_TO_CLIENT_USER, cmdID, len, true);
 }
 
+// Keep these two routines (using non-const void pointers) so that we can
+// still use existing GPU drivers.
+uint32_t rsrToClient(Context *rsc, int cmdID, void *data, int len) {
+    return rsrToClient(rsc, cmdID, (const void *)data, len);
+}
+
+uint32_t rsrToClientBlocking(Context *rsc, int cmdID, void *data, int len) {
+    return rsrToClientBlocking(rsc, cmdID, (const void *)data, len);
+}
+
 void rsrAllocationIoSend(Context *rsc, Allocation *src) {
     src->ioSend(rsc);
 }