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

sync_file.h (1606B)


      1/*
      2 * include/linux/sync_file.h
      3 *
      4 * Copyright (C) 2012 Google, Inc.
      5 *
      6 * This program is distributed in the hope that it will be useful,
      7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
      8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      9 * GNU General Public License for more details.
     10 *
     11 */
     12
     13#ifndef _LINUX_SYNC_FILE_H
     14#define _LINUX_SYNC_FILE_H
     15
     16#include <linux/types.h>
     17#include <linux/ktime.h>
     18#include <linux/list.h>
     19#include <linux/spinlock.h>
     20#include <linux/dma-fence.h>
     21#include <linux/dma-fence-array.h>
     22
     23/**
     24 * struct sync_file - sync file to export to the userspace
     25 * @file:		file representing this fence
     26 * @sync_file_list:	membership in global file list
     27 * @wq:			wait queue for fence signaling
     28 * @flags:		flags for the sync_file
     29 * @fence:		fence with the fences in the sync_file
     30 * @cb:			fence callback information
     31 *
     32 * flags:
     33 * POLL_ENABLED: whether userspace is currently poll()'ing or not
     34 */
     35struct sync_file {
     36	struct file		*file;
     37	/**
     38	 * @user_name:
     39	 *
     40	 * Name of the sync file provided by userspace, for merged fences.
     41	 * Otherwise generated through driver callbacks (in which case the
     42	 * entire array is 0).
     43	 */
     44	char			user_name[32];
     45#ifdef CONFIG_DEBUG_FS
     46	struct list_head	sync_file_list;
     47#endif
     48
     49	wait_queue_head_t	wq;
     50	unsigned long		flags;
     51
     52	struct dma_fence	*fence;
     53	struct dma_fence_cb cb;
     54};
     55
     56#define POLL_ENABLED 0
     57
     58struct sync_file *sync_file_create(struct dma_fence *fence);
     59struct dma_fence *sync_file_get_fence(int fd);
     60char *sync_file_get_name(struct sync_file *sync_file, char *buf, int len);
     61
     62#endif /* _LINUX_SYNC_H */