~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/virtio_mmio.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Virtio platform device driver
  3  *
  4  * Copyright 2011, ARM Ltd.
  5  *
  6  * Based on Virtio PCI driver by Anthony Liguori, copyright IBM Corp. 2007
  7  *
  8  * This header is BSD licensed so anyone can use the definitions to implement
  9  * compatible drivers/servers.
 10  *
 11  * Redistribution and use in source and binary forms, with or without
 12  * modification, are permitted provided that the following conditions
 13  * are met:
 14  * 1. Redistributions of source code must retain the above copyright
 15  *    notice, this list of conditions and the following disclaimer.
 16  * 2. Redistributions in binary form must reproduce the above copyright
 17  *    notice, this list of conditions and the following disclaimer in the
 18  *    documentation and/or other materials provided with the distribution.
 19  * 3. Neither the name of IBM nor the names of its contributors
 20  *    may be used to endorse or promote products derived from this software
 21  *    without specific prior written permission.
 22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
 23  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 24  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 25  * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
 26  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 27  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 28  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 29  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 31  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 32  * SUCH DAMAGE.
 33  */
 34 
 35 #ifndef _LINUX_VIRTIO_MMIO_H
 36 #define _LINUX_VIRTIO_MMIO_H
 37 
 38 /*
 39  * Control registers
 40  */
 41 
 42 /* Magic value ("virt" string) - Read Only */
 43 #define VIRTIO_MMIO_MAGIC_VALUE         0x000
 44 
 45 /* Virtio device version - Read Only */
 46 #define VIRTIO_MMIO_VERSION             0x004
 47 
 48 /* Virtio device ID - Read Only */
 49 #define VIRTIO_MMIO_DEVICE_ID           0x008
 50 
 51 /* Virtio vendor ID - Read Only */
 52 #define VIRTIO_MMIO_VENDOR_ID           0x00c
 53 
 54 /* Bitmask of the features supported by the device (host)
 55  * (32 bits per set) - Read Only */
 56 #define VIRTIO_MMIO_DEVICE_FEATURES     0x010
 57 
 58 /* Device (host) features set selector - Write Only */
 59 #define VIRTIO_MMIO_DEVICE_FEATURES_SEL 0x014
 60 
 61 /* Bitmask of features activated by the driver (guest)
 62  * (32 bits per set) - Write Only */
 63 #define VIRTIO_MMIO_DRIVER_FEATURES     0x020
 64 
 65 /* Activated features set selector - Write Only */
 66 #define VIRTIO_MMIO_DRIVER_FEATURES_SEL 0x024
 67 
 68 
 69 #ifndef VIRTIO_MMIO_NO_LEGACY /* LEGACY DEVICES ONLY! */
 70 
 71 /* Guest's memory page size in bytes - Write Only */
 72 #define VIRTIO_MMIO_GUEST_PAGE_SIZE     0x028
 73 
 74 #endif
 75 
 76 
 77 /* Queue selector - Write Only */
 78 #define VIRTIO_MMIO_QUEUE_SEL           0x030
 79 
 80 /* Maximum size of the currently selected queue - Read Only */
 81 #define VIRTIO_MMIO_QUEUE_NUM_MAX       0x034
 82 
 83 /* Queue size for the currently selected queue - Write Only */
 84 #define VIRTIO_MMIO_QUEUE_NUM           0x038
 85 
 86 
 87 #ifndef VIRTIO_MMIO_NO_LEGACY /* LEGACY DEVICES ONLY! */
 88 
 89 /* Used Ring alignment for the currently selected queue - Write Only */
 90 #define VIRTIO_MMIO_QUEUE_ALIGN         0x03c
 91 
 92 /* Guest's PFN for the currently selected queue - Read Write */
 93 #define VIRTIO_MMIO_QUEUE_PFN           0x040
 94 
 95 #endif
 96 
 97 
 98 /* Ready bit for the currently selected queue - Read Write */
 99 #define VIRTIO_MMIO_QUEUE_READY         0x044
100 
101 /* Queue notifier - Write Only */
102 #define VIRTIO_MMIO_QUEUE_NOTIFY        0x050
103 
104 /* Interrupt status - Read Only */
105 #define VIRTIO_MMIO_INTERRUPT_STATUS    0x060
106 
107 /* Interrupt acknowledge - Write Only */
108 #define VIRTIO_MMIO_INTERRUPT_ACK       0x064
109 
110 /* Device status register - Read Write */
111 #define VIRTIO_MMIO_STATUS              0x070
112 
113 /* Selected queue's Descriptor Table address, 64 bits in two halves */
114 #define VIRTIO_MMIO_QUEUE_DESC_LOW      0x080
115 #define VIRTIO_MMIO_QUEUE_DESC_HIGH     0x084
116 
117 /* Selected queue's Available Ring address, 64 bits in two halves */
118 #define VIRTIO_MMIO_QUEUE_AVAIL_LOW     0x090
119 #define VIRTIO_MMIO_QUEUE_AVAIL_HIGH    0x094
120 
121 /* Selected queue's Used Ring address, 64 bits in two halves */
122 #define VIRTIO_MMIO_QUEUE_USED_LOW      0x0a0
123 #define VIRTIO_MMIO_QUEUE_USED_HIGH     0x0a4
124 
125 /* Shared memory region id */
126 #define VIRTIO_MMIO_SHM_SEL             0x0ac
127 
128 /* Shared memory region length, 64 bits in two halves */
129 #define VIRTIO_MMIO_SHM_LEN_LOW         0x0b0
130 #define VIRTIO_MMIO_SHM_LEN_HIGH        0x0b4
131 
132 /* Shared memory region base address, 64 bits in two halves */
133 #define VIRTIO_MMIO_SHM_BASE_LOW        0x0b8
134 #define VIRTIO_MMIO_SHM_BASE_HIGH       0x0bc
135 
136 /* Configuration atomicity value */
137 #define VIRTIO_MMIO_CONFIG_GENERATION   0x0fc
138 
139 /* The config space is defined by each driver as
140  * the per-driver configuration space - Read Write */
141 #define VIRTIO_MMIO_CONFIG              0x100
142 
143 
144 
145 /*
146  * Interrupt flags (re: interrupt status & acknowledge registers)
147  */
148 
149 #define VIRTIO_MMIO_INT_VRING           (1 << 0)
150 #define VIRTIO_MMIO_INT_CONFIG          (1 << 1)
151 
152 #endif
153 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php