cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

fuse_i.h (2336B)


      1/*
      2 * FUSE: Filesystem in Userspace
      3 * Copyright (C) 2001-2007  Miklos Szeredi <miklos@szeredi.hu>
      4 *
      5 * This program can be distributed under the terms of the GNU LGPLv2.
      6 * See the file COPYING.LIB
      7 */
      8
      9#ifndef FUSE_I_H
     10#define FUSE_I_H
     11
     12#define FUSE_USE_VERSION 31
     13#include "fuse_lowlevel.h"
     14
     15struct fv_VuDev;
     16struct fv_QueueInfo;
     17
     18struct fuse_req {
     19    struct fuse_session *se;
     20    uint64_t unique;
     21    int ctr;
     22    pthread_mutex_t lock;
     23    struct fuse_ctx ctx;
     24    struct fuse_chan *ch;
     25    int interrupted;
     26    unsigned int ioctl_64bit:1;
     27    union {
     28        struct {
     29            uint64_t unique;
     30        } i;
     31        struct {
     32            fuse_interrupt_func_t func;
     33            void *data;
     34        } ni;
     35    } u;
     36    struct fuse_req *next;
     37    struct fuse_req *prev;
     38};
     39
     40struct fuse_notify_req {
     41    uint64_t unique;
     42    void (*reply)(struct fuse_notify_req *, fuse_req_t, fuse_ino_t,
     43                  const void *, const struct fuse_buf *);
     44    struct fuse_notify_req *next;
     45    struct fuse_notify_req *prev;
     46};
     47
     48struct fuse_session {
     49    char *mountpoint;
     50    volatile int exited;
     51    int fd;
     52    int debug;
     53    int deny_others;
     54    struct fuse_lowlevel_ops op;
     55    int got_init;
     56    struct cuse_data *cuse_data;
     57    void *userdata;
     58    uid_t owner;
     59    struct fuse_conn_info conn;
     60    struct fuse_req list;
     61    struct fuse_req interrupts;
     62    pthread_mutex_t lock;
     63    pthread_rwlock_t init_rwlock;
     64    int got_destroy;
     65    int broken_splice_nonblock;
     66    uint64_t notify_ctr;
     67    struct fuse_notify_req notify_list;
     68    size_t bufsize;
     69    int error;
     70    char *vu_socket_path;
     71    char *vu_socket_group;
     72    int   vu_listen_fd;
     73    int   vu_socketfd;
     74    struct fv_VuDev *virtio_dev;
     75    int thread_pool_size;
     76};
     77
     78struct fuse_chan {
     79    pthread_mutex_t lock;
     80    int ctr;
     81    int fd;
     82    struct fv_QueueInfo *qi;
     83};
     84
     85int fuse_send_reply_iov_nofree(fuse_req_t req, int error, struct iovec *iov,
     86                               int count);
     87void fuse_free_req(fuse_req_t req);
     88
     89void fuse_session_process_buf_int(struct fuse_session *se,
     90                                  struct fuse_bufvec *bufv,
     91                                  struct fuse_chan *ch);
     92
     93
     94#define FUSE_MAX_MAX_PAGES 256
     95#define FUSE_DEFAULT_MAX_PAGES_PER_REQ 32
     96
     97/* room needed in buffer to accommodate header */
     98#define FUSE_BUFFER_HEADER_SIZE 0x1000
     99
    100#endif