diff options
author | Junyan He <junyan.he@linux.intel.com> | 2016-01-18 16:49:25 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2016-01-19 15:23:35 +0800 |
commit | 13f504ce613b95282f1bbf0caa55c57bc54ece52 (patch) | |
tree | ee33f242c0ca2d99dad29e7207b03f595ade929b /backend | |
parent | 373614ee842fd525a2ac27e91e27e0d00472bb7f (diff) | |
download | beignet-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.cpp | 55 |
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); |