The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/vmware/vmci/vmci.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright (c) 2018 VMware, Inc.
    3  *
    4  * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
    5  *
    6  * $FreeBSD$
    7  */
    8 
    9 /* Driver for VMware Virtual Machine Communication Interface (VMCI) device. */
   10 
   11 #ifndef _VMCI_H_
   12 #define _VMCI_H_
   13 
   14 #include <sys/param.h>
   15 #include <sys/lock.h>
   16 #include <sys/mutex.h>
   17 #include <sys/systm.h>
   18 #include <sys/taskqueue.h>
   19 
   20 #include <machine/bus.h>
   21 
   22 #include "vmci_datagram.h"
   23 #include "vmci_kernel_if.h"
   24 
   25 /* VMCI device vendor and device ID */
   26 #define VMCI_VMWARE_VENDOR_ID   0x15AD
   27 #define VMCI_VMWARE_DEVICE_ID   0x0740
   28 
   29 #define VMCI_VERSION            1
   30 
   31 struct vmci_dma_alloc {
   32         bus_dma_tag_t   dma_tag;
   33         caddr_t         dma_vaddr;
   34         bus_addr_t      dma_paddr;
   35         bus_dmamap_t    dma_map;
   36         bus_size_t      dma_size;
   37 };
   38 
   39 struct vmci_interrupt {
   40         struct resource *vmci_irq;
   41         int             vmci_rid;
   42         void            *vmci_handler;
   43 };
   44 
   45 struct vmci_softc {
   46         device_t                vmci_dev;
   47 
   48         struct mtx              vmci_spinlock;
   49 
   50         struct resource         *vmci_res0;
   51         bus_space_tag_t         vmci_iot0;
   52         bus_space_handle_t      vmci_ioh0;
   53         unsigned int            vmci_ioaddr;
   54         struct resource         *vmci_res1;
   55         bus_space_tag_t         vmci_iot1;
   56         bus_space_handle_t      vmci_ioh1;
   57 
   58         struct vmci_dma_alloc   vmci_notifications_bitmap;
   59 
   60         int                     vmci_num_intr;
   61         vmci_intr_type          vmci_intr_type;
   62         struct vmci_interrupt   vmci_intrs[VMCI_MAX_INTRS];
   63         struct task             vmci_interrupt_dq_task;
   64         struct task             vmci_interrupt_bm_task;
   65 
   66         struct task             vmci_delayed_work_task;
   67         struct mtx              vmci_delayed_work_lock;
   68         vmci_list(vmci_delayed_work_info) vmci_delayed_work_infos;
   69 
   70         unsigned int            capabilities;
   71 };
   72 
   73 int     vmci_dma_malloc(bus_size_t size, bus_size_t align,
   74             struct vmci_dma_alloc *dma);
   75 void    vmci_dma_free(struct vmci_dma_alloc *);
   76 int     vmci_schedule_delayed_work_fn(vmci_work_fn *work_fn, void *data);
   77 
   78 #endif /* !_VMCI_H_ */

Cache object: 237103b36c7e37992f0f33d705e093da


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.