37 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only OR MIT */2/*3 * Copyright (C) 2020-2024 Intel Corporation4 */5#ifndef __IVPU_MS_H__6#define __IVPU_MS_H__7 8#include <linux/list.h>9 10struct drm_device;11struct drm_file;12struct ivpu_bo;13struct ivpu_device;14struct ivpu_file_priv;15 16struct ivpu_ms_instance {17 struct ivpu_bo *bo;18 struct list_head ms_instance_node;19 u64 mask;20 u64 buff_size;21 u64 active_buff_vpu_addr;22 u64 inactive_buff_vpu_addr;23 void *active_buff_ptr;24 void *inactive_buff_ptr;25 u64 leftover_bytes;26 void *leftover_addr;27};28 29int ivpu_ms_start_ioctl(struct drm_device *dev, void *data, struct drm_file *file);30int ivpu_ms_stop_ioctl(struct drm_device *dev, void *data, struct drm_file *file);31int ivpu_ms_get_data_ioctl(struct drm_device *dev, void *data, struct drm_file *file);32int ivpu_ms_get_info_ioctl(struct drm_device *dev, void *data, struct drm_file *file);33void ivpu_ms_cleanup(struct ivpu_file_priv *file_priv);34void ivpu_ms_cleanup_all(struct ivpu_device *vdev);35 36#endif /* __IVPU_MS_H__ */37