summaryrefslogtreecommitdiff
path: root/cpu_ref/rsCpuExecutable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpu_ref/rsCpuExecutable.cpp')
-rw-r--r--cpu_ref/rsCpuExecutable.cpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/cpu_ref/rsCpuExecutable.cpp b/cpu_ref/rsCpuExecutable.cpp
index f229f523..e2c27b55 100644
--- a/cpu_ref/rsCpuExecutable.cpp
+++ b/cpu_ref/rsCpuExecutable.cpp
@@ -311,12 +311,13 @@ ScriptExecutable* ScriptExecutable::createFromSharedObject(
const char ** pragmaValues = nullptr;
uint32_t checksum = 0;
- const char *rsInfo = (const char *) dlsym(sharedObj, ".rs.info");
+ const char *rsInfo = (const char *) dlsym(sharedObj, kRsInfo);
int numEntries = 0;
- const int *rsGlobalEntries = (const int *) dlsym(sharedObj, ".rs.global_entries");
- const char **rsGlobalNames = (const char **) dlsym(sharedObj, ".rs.global_names");
- const void **rsGlobalAddresses = (const void **) dlsym(sharedObj, ".rs.global_addresses");
- const size_t *rsGlobalSizes = (const size_t *) dlsym(sharedObj, ".rs.global_sizes");
+ const int *rsGlobalEntries = (const int *) dlsym(sharedObj, kRsGlobalEntries);
+ const char **rsGlobalNames = (const char **) dlsym(sharedObj, kRsGlobalNames);
+ const void **rsGlobalAddresses = (const void **) dlsym(sharedObj, kRsGlobalAddresses);
+ const size_t *rsGlobalSizes = (const size_t *) dlsym(sharedObj, kRsGlobalSizes);
+ const uint32_t *rsGlobalProperties = (const uint32_t *) dlsym(sharedObj, kRsGlobalProperties);
if (strgets(line, MAXLINE, &rsInfo) == nullptr) {
return nullptr;
@@ -559,6 +560,7 @@ ScriptExecutable* ScriptExecutable::createFromSharedObject(
rsAssert(rsGlobalNames);
rsAssert(rsGlobalAddresses);
rsAssert(rsGlobalSizes);
+ rsAssert(rsGlobalProperties);
}
} else {
ALOGD("Missing .rs.global_entries from shared object");
@@ -569,8 +571,8 @@ ScriptExecutable* ScriptExecutable::createFromSharedObject(
invokeFunctions, funcCount,
forEachFunctions, forEachSignatures, forEachCount,
pragmaKeys, pragmaValues, pragmaCount,
- rsGlobalNames, rsGlobalAddresses, rsGlobalSizes, numEntries,
- isThreadable, checksum);
+ rsGlobalNames, rsGlobalAddresses, rsGlobalSizes, rsGlobalProperties,
+ numEntries, isThreadable, checksum);
error:
@@ -612,9 +614,18 @@ void* ScriptExecutable::getFieldAddress(const char* name) const {
bool ScriptExecutable::dumpGlobalInfo() const {
ALOGE("Globals: %p %p %p", mGlobalAddresses, mGlobalSizes, mGlobalNames);
+ ALOGE("P - Pointer");
+ ALOGE(" C - Constant");
+ ALOGE(" S - Static");
for (int i = 0; i < mGlobalEntries; i++) {
ALOGE("Global[%d]: %p %zu %s", i, mGlobalAddresses[i], mGlobalSizes[i],
mGlobalNames[i]);
+ uint32_t properties = mGlobalProperties[i];
+ ALOGE("%c%c%c Type: %u",
+ isGlobalPointer(properties) ? 'P' : ' ',
+ isGlobalConstant(properties) ? 'C' : ' ',
+ isGlobalStatic(properties) ? 'S' : ' ',
+ getGlobalRsType(properties));
}
return true;
}