Merge "commonsys-intf: qdMetaData: Add get/setMetaData variants that unmap metadata" into display-android-commonsys.lnx.1.0
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
b10dbf361a
@@ -64,6 +64,13 @@ static int validateAndMap(private_handle_t* handle) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void unmapAndReset(private_handle_t *handle) {
|
||||||
|
if (private_handle_t::validate(handle) == 0 && handle->base_metadata) {
|
||||||
|
munmap(reinterpret_cast<void *>(handle->base_metadata), getMetaDataSize());
|
||||||
|
handle->base_metadata = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int setMetaData(private_handle_t *handle, DispParamType paramType,
|
int setMetaData(private_handle_t *handle, DispParamType paramType,
|
||||||
void *param) {
|
void *param) {
|
||||||
auto err = validateAndMap(handle);
|
auto err = validateAndMap(handle);
|
||||||
@@ -349,3 +356,17 @@ int copyMetaDataVaToVa(MetaData_t *src_data, MetaData_t *dst_data) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int setMetaDataAndUnmap(struct private_handle_t *handle, enum DispParamType paramType,
|
||||||
|
void *param) {
|
||||||
|
auto ret = setMetaData(handle, paramType, param);
|
||||||
|
unmapAndReset(handle);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int getMetaDataAndUnmap(struct private_handle_t *handle,
|
||||||
|
enum DispFetchParamType paramType,
|
||||||
|
void *param) {
|
||||||
|
auto ret = getMetaData(handle, paramType, param);
|
||||||
|
unmapAndReset(handle);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|||||||
@@ -210,6 +210,14 @@ int clearMetaDataVa(struct MetaData_t *data, enum DispParamType paramType);
|
|||||||
|
|
||||||
unsigned long getMetaDataSize();
|
unsigned long getMetaDataSize();
|
||||||
|
|
||||||
|
// Map, access metadata and unmap. Used by clients that do not import/free but
|
||||||
|
// clone and delete native_handle
|
||||||
|
int setMetaDataAndUnmap(struct private_handle_t *handle, enum DispParamType paramType,
|
||||||
|
void *param);
|
||||||
|
int getMetaDataAndUnmap(struct private_handle_t *handle,
|
||||||
|
enum DispFetchParamType paramType,
|
||||||
|
void *param);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user