132a6e48fSopenharmony_ci/*
232a6e48fSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
332a6e48fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
432a6e48fSopenharmony_ci * you may not use this file except in compliance with the License.
532a6e48fSopenharmony_ci * You may obtain a copy of the License at
632a6e48fSopenharmony_ci *
732a6e48fSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
832a6e48fSopenharmony_ci *
932a6e48fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1032a6e48fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1132a6e48fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1232a6e48fSopenharmony_ci * See the License for the specific language governing permissions and
1332a6e48fSopenharmony_ci * limitations under the License.
1432a6e48fSopenharmony_ci */
1532a6e48fSopenharmony_ci
1632a6e48fSopenharmony_ci#ifndef FRAMEWORKS_SURFACE_INCLUDE_BUFFER_UTILS_H
1732a6e48fSopenharmony_ci#define FRAMEWORKS_SURFACE_INCLUDE_BUFFER_UTILS_H
1832a6e48fSopenharmony_ci
1932a6e48fSopenharmony_ci#include <errno.h>
2032a6e48fSopenharmony_ci#include <message_parcel.h>
2132a6e48fSopenharmony_ci#include "surface_type.h"
2232a6e48fSopenharmony_ci#include <surface_tunnel_handle.h>
2332a6e48fSopenharmony_ci
2432a6e48fSopenharmony_ci#include "surface_buffer.h"
2532a6e48fSopenharmony_ci
2632a6e48fSopenharmony_cinamespace OHOS {
2732a6e48fSopenharmony_civoid ReadFileDescriptor(MessageParcel &parcel, int32_t &fd);
2832a6e48fSopenharmony_ciGSError WriteFileDescriptor(MessageParcel &parcel, int32_t fd);
2932a6e48fSopenharmony_ci
3032a6e48fSopenharmony_civoid ReadRequestConfig(MessageParcel &parcel, BufferRequestConfig &config);
3132a6e48fSopenharmony_ciGSError WriteRequestConfig(MessageParcel &parcel, const BufferRequestConfig  &config);
3232a6e48fSopenharmony_ci
3332a6e48fSopenharmony_ciGSError ReadFlushConfig(MessageParcel &parcel, BufferFlushConfigWithDamages &config);
3432a6e48fSopenharmony_ciGSError WriteFlushConfig(MessageParcel &parcel, const BufferFlushConfigWithDamages &config);
3532a6e48fSopenharmony_ci
3632a6e48fSopenharmony_ciGSError ReadSurfaceBufferImpl(MessageParcel &parcel, uint32_t &sequence, sptr<SurfaceBuffer> &buffer);
3732a6e48fSopenharmony_ciGSError WriteSurfaceBufferImpl(MessageParcel &parcel, uint32_t sequence, const sptr<SurfaceBuffer> &buffer);
3832a6e48fSopenharmony_ci
3932a6e48fSopenharmony_civoid ReadVerifyAllocInfo(MessageParcel &parcel, std::vector<BufferVerifyAllocInfo> &infos);
4032a6e48fSopenharmony_ciGSError WriteVerifyAllocInfo(MessageParcel &parcel, const std::vector<BufferVerifyAllocInfo> &infos);
4132a6e48fSopenharmony_ci
4232a6e48fSopenharmony_ciGSError ReadHDRMetaData(MessageParcel &parcel, std::vector<GraphicHDRMetaData> &metaData);
4332a6e48fSopenharmony_ciGSError WriteHDRMetaData(MessageParcel &parcel, const std::vector<GraphicHDRMetaData> &metaData);
4432a6e48fSopenharmony_ci
4532a6e48fSopenharmony_ciGSError ReadHDRMetaDataSet(MessageParcel &parcel, std::vector<uint8_t> &metaData);
4632a6e48fSopenharmony_ciGSError WriteHDRMetaDataSet(MessageParcel &parcel, const std::vector<uint8_t> &metaData);
4732a6e48fSopenharmony_ci
4832a6e48fSopenharmony_ciGSError ReadExtDataHandle(MessageParcel &parcel, sptr<SurfaceTunnelHandle> &handle);
4932a6e48fSopenharmony_ciGSError WriteExtDataHandle(MessageParcel &parcel, const GraphicExtDataHandle *handle);
5032a6e48fSopenharmony_ci
5132a6e48fSopenharmony_ciGSError DumpToFileAsync(pid_t pid, std::string name, sptr<SurfaceBuffer> &buffer);
5232a6e48fSopenharmony_ci} // namespace OHOS
5332a6e48fSopenharmony_ci
5432a6e48fSopenharmony_ci#endif // FRAMEWORKS_SURFACE_INCLUDE_BUFFER_UTILS_H
55