cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dmabuf.h (2400B)


      1/*
      2 * Copyright(c) 2017 Intel Corporation. All rights reserved.
      3 *
      4 * Permission is hereby granted, free of charge, to any person obtaining a
      5 * copy of this software and associated documentation files (the "Software"),
      6 * to deal in the Software without restriction, including without limitation
      7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      8 * and/or sell copies of the Software, and to permit persons to whom the
      9 * Software is furnished to do so, subject to the following conditions:
     10 *
     11 * The above copyright notice and this permission notice (including the next
     12 * paragraph) shall be included in all copies or substantial portions of the
     13 * Software.
     14 *
     15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     21 * SOFTWARE.
     22 *
     23 * Authors:
     24 *    Zhiyuan Lv <zhiyuan.lv@intel.com>
     25 *
     26 * Contributors:
     27 *    Xiaoguang Chen
     28 *    Tina Zhang <tina.zhang@intel.com>
     29 */
     30
     31#ifndef _GVT_DMABUF_H_
     32#define _GVT_DMABUF_H_
     33#include <linux/vfio.h>
     34
     35struct intel_vgpu_fb_info {
     36	__u64 start;
     37	__u64 start_gpa;
     38	__u64 drm_format_mod;
     39	__u32 drm_format;	/* drm format of plane */
     40	__u32 width;	/* width of plane */
     41	__u32 height;	/* height of plane */
     42	__u32 stride;	/* stride of plane */
     43	__u32 size;	/* size of plane in bytes, align on page */
     44	__u32 x_pos;	/* horizontal position of cursor plane */
     45	__u32 y_pos;	/* vertical position of cursor plane */
     46	__u32 x_hot;    /* horizontal position of cursor hotspot */
     47	__u32 y_hot;    /* vertical position of cursor hotspot */
     48	struct intel_vgpu_dmabuf_obj *obj;
     49};
     50
     51/**
     52 * struct intel_vgpu_dmabuf_obj- Intel vGPU device buffer object
     53 */
     54struct intel_vgpu_dmabuf_obj {
     55	struct intel_vgpu *vgpu;
     56	struct intel_vgpu_fb_info *info;
     57	__u32 dmabuf_id;
     58	struct kref kref;
     59	bool initref;
     60	struct list_head list;
     61};
     62
     63int intel_vgpu_query_plane(struct intel_vgpu *vgpu, void *args);
     64int intel_vgpu_get_dmabuf(struct intel_vgpu *vgpu, unsigned int dmabuf_id);
     65void intel_vgpu_dmabuf_cleanup(struct intel_vgpu *vgpu);
     66
     67#endif