summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorJunyan He <junyan.he@linux.intel.com>2016-01-18 16:49:25 +0800
committerYang Rong <rong.r.yang@intel.com>2016-01-19 15:23:35 +0800
commit13f504ce613b95282f1bbf0caa55c57bc54ece52 (patch)
treeee33f242c0ca2d99dad29e7207b03f595ade929b /backend
parent373614ee842fd525a2ac27e91e27e0d00472bb7f (diff)
downloadbeignet-13f504ce613b95282f1bbf0caa55c57bc54ece52.tar.gz
Add the serializeToBin and deserializeFromBin for kernel arg info.
Signed-off-by: Junyan He <junyan.he@linux.intel.com> Reviewed-by: Yang Rong <rong.r.yang@intel.com>
Diffstat (limited to 'backend')
-rw-r--r--backend/src/backend/program.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp
index 383a10f9..7d12f73c 100644
--- a/backend/src/backend/program.cpp
+++ b/backend/src/backend/program.cpp
@@ -295,6 +295,24 @@ namespace gbe {
OUT_UPDATE_SZ(arg.size);
OUT_UPDATE_SZ(arg.align);
OUT_UPDATE_SZ(arg.bti);
+
+ OUT_UPDATE_SZ(arg.info.addrSpace);
+
+ OUT_UPDATE_SZ(arg.info.typeName.size());
+ outs.write(arg.info.typeName.c_str(), arg.info.typeName.size());
+ ret_size += sizeof(char)*arg.info.typeName.size();
+
+ OUT_UPDATE_SZ(arg.info.accessQual.size());
+ outs.write(arg.info.accessQual.c_str(), arg.info.accessQual.size());
+ ret_size += sizeof(char)*arg.info.accessQual.size();
+
+ OUT_UPDATE_SZ(arg.info.typeQual.size());
+ outs.write(arg.info.typeQual.c_str(), arg.info.typeQual.size());
+ ret_size += sizeof(char)*arg.info.typeQual.size();
+
+ OUT_UPDATE_SZ(arg.info.argName.size());
+ outs.write(arg.info.argName.c_str(), arg.info.argName.size());
+ ret_size += sizeof(char)*arg.info.argName.size();
}
OUT_UPDATE_SZ(patches.size());
@@ -385,6 +403,43 @@ namespace gbe {
IN_UPDATE_SZ(arg.size);
IN_UPDATE_SZ(arg.align);
IN_UPDATE_SZ(arg.bti);
+
+ IN_UPDATE_SZ(arg.info.addrSpace);
+
+ size_t len;
+ char* a_name = NULL;
+
+ IN_UPDATE_SZ(len);
+ a_name = new char[len+1];
+ ins.read(a_name, len*sizeof(char));
+ total_size += sizeof(char)*len;
+ a_name[len] = 0;
+ arg.info.typeName = a_name;
+ delete[] a_name;
+
+ IN_UPDATE_SZ(len);
+ a_name = new char[len+1];
+ ins.read(a_name, len*sizeof(char));
+ total_size += sizeof(char)*len;
+ a_name[len] = 0;
+ arg.info.accessQual = a_name;
+ delete[] a_name;
+
+ IN_UPDATE_SZ(len);
+ a_name = new char[len+1];
+ ins.read(a_name, len*sizeof(char));
+ total_size += sizeof(char)*len;
+ a_name[len] = 0;
+ arg.info.typeQual = a_name;
+ delete[] a_name;
+
+ IN_UPDATE_SZ(len);
+ a_name = new char[len+1];
+ ins.read(a_name, len*sizeof(char));
+ total_size += sizeof(char)*len;
+ a_name[len] = 0;
+ arg.info.argName = a_name;
+ delete[] a_name;
}
IN_UPDATE_SZ(patch_num);