blob: 43d0d0dfea7a7aa0d30dbb7856d337d1e2e16de0 [file] [log] [blame]
/*
* Copyright 2020, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <lk/compiler.h>
#include <trusty_ipc.h>
__BEGIN_CDECLS
struct secure_dpu_buf_info {
void* addr;
size_t len;
};
/**
* add_secure_dpu_service() - Add secure_dpu service.
* @hset: pointer to the tipc hset.
* @chan: the pointer to the handle provided by the caller
* for calling secure_dpu_* APIs. The handle will be updated
* when the port is connected / disconnected.
*
* After the service is added successfully, the service will be started to
* handle requests.
*
* Return: 0 on success, or an error code < 0 on failure.
*/
int add_secure_dpu_service(struct tipc_hset* hset, handle_t* chan);
/**
* secure_dpu_allocate_buffer() - Allocate framebuffer.
* @chan: channel handle
* @buffer_len: requested length of the buffer
* @buf_info: information of the allocated buffer.
*
* Return: 0 on success, or an error code < 0 on failure.
*/
int secure_dpu_allocate_buffer(handle_t chan,
size_t buffer_len,
struct secure_dpu_buf_info* buf_info);
/**
* secure_dpu_release_buffer() - release framebuffer.
* @buf_info: information of the buffer to be freed
*
* Return: 0 on success, or an error code < 0 on failure.
*/
int secure_dpu_release_buffer(struct secure_dpu_buf_info* buf_info);
/**
* secure_dpu_start_secure_display() - notify DPU driver to start secure display
* @chan: channel handle
*
* Return: 0 on success, or an error code < 0 on failure.
*/
int secure_dpu_start_secure_display(handle_t chan);
/**
* secure_dpu_start_secure_display() - notify DPU driver to stop secure display
* @chan: channel handle
*
* Return: 0 on success, or an error code < 0 on failure.
*/
int secure_dpu_stop_secure_display(handle_t chan);
__END_CDECLS