summaryrefslogtreecommitdiff
path: root/cpu_ref/rsCpuScript.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpu_ref/rsCpuScript.cpp')
-rw-r--r--cpu_ref/rsCpuScript.cpp58
1 files changed, 30 insertions, 28 deletions
diff --git a/cpu_ref/rsCpuScript.cpp b/cpu_ref/rsCpuScript.cpp
index 6099cf4d..fb87dd1a 100644
--- a/cpu_ref/rsCpuScript.cpp
+++ b/cpu_ref/rsCpuScript.cpp
@@ -150,33 +150,6 @@ bool isChecksumNeeded() {
return (buf[0] == '1');
}
-bool addFileToChecksum(const char *fileName, uint32_t &checksum) {
- int FD = open(fileName, O_RDONLY);
- if (FD == -1) {
- ALOGE("Cannot open file \'%s\' to compute checksum", fileName);
- return false;
- }
-
- char buf[256];
- while (true) {
- ssize_t nread = read(FD, buf, sizeof(buf));
- if (nread < 0) { // bail out on failed read
- ALOGE("Error while computing checksum for file \'%s\'", fileName);
- return false;
- }
-
- checksum = adler32(checksum, (const unsigned char *) buf, nread);
- if (static_cast<size_t>(nread) < sizeof(buf)) // EOF
- break;
- }
-
- if (TEMP_FAILURE_RETRY(close(FD)) != 0) {
- ALOGE("Cannot close file \'%s\' after computing checksum", fileName);
- return false;
- }
- return true;
-}
-
char *constructBuildChecksum(uint8_t const *bitcode, size_t bitcodeSize,
const char *commandLine,
const std::vector<const char *> &bccFiles) {
@@ -191,7 +164,7 @@ char *constructBuildChecksum(uint8_t const *bitcode, size_t bitcodeSize,
// include checksum of bccFiles
for (auto bccFile : bccFiles) {
- if (!addFileToChecksum(bccFile, checksum)) {
+ if (!android::renderscript::addFileToChecksum(bccFile, checksum)) {
// return empty checksum instead of something partial/corrupt
return nullptr;
}
@@ -208,6 +181,35 @@ char *constructBuildChecksum(uint8_t const *bitcode, size_t bitcodeSize,
namespace android {
namespace renderscript {
+#ifndef RS_COMPATIBILITY_LIB
+bool addFileToChecksum(const char *fileName, uint32_t &checksum) {
+ int FD = open(fileName, O_RDONLY);
+ if (FD == -1) {
+ ALOGE("Cannot open file \'%s\' to compute checksum", fileName);
+ return false;
+ }
+
+ char buf[256];
+ while (true) {
+ ssize_t nread = read(FD, buf, sizeof(buf));
+ if (nread < 0) { // bail out on failed read
+ ALOGE("Error while computing checksum for file \'%s\'", fileName);
+ return false;
+ }
+
+ checksum = adler32(checksum, (const unsigned char *) buf, nread);
+ if (static_cast<size_t>(nread) < sizeof(buf)) // EOF
+ break;
+ }
+
+ if (TEMP_FAILURE_RETRY(close(FD)) != 0) {
+ ALOGE("Cannot close file \'%s\' after computing checksum", fileName);
+ return false;
+ }
+ return true;
+}
+#endif // !RS_COMPATIBILITY_LIB
+
RsdCpuScriptImpl::RsdCpuScriptImpl(RsdCpuReferenceImpl *ctx, const Script *s) {
mCtx = ctx;
mScript = s;