virtio_config.h revision 267312
1198396Srdivacky/*- 2198396Srdivacky * This header is BSD licensed so anyone can use the definitions to implement 3353358Sdim * compatible drivers/servers. 4353358Sdim * 5353358Sdim * Redistribution and use in source and binary forms, with or without 6198396Srdivacky * modification, are permitted provided that the following conditions 7198396Srdivacky * are met: 8198396Srdivacky * 1. Redistributions of source code must retain the above copyright 9198396Srdivacky * notice, this list of conditions and the following disclaimer. 10198396Srdivacky * 2. Redistributions in binary form must reproduce the above copyright 11198396Srdivacky * notice, this list of conditions and the following disclaimer in the 12198396Srdivacky * documentation and/or other materials provided with the distribution. 13198396Srdivacky * 3. Neither the name of IBM nor the names of its contributors 14198396Srdivacky * may be used to endorse or promote products derived from this software 15198396Srdivacky * without specific prior written permission. 16198396Srdivacky * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17198396Srdivacky * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 18198396Srdivacky * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19198396Srdivacky * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE 20198396Srdivacky * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21202878Srdivacky * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22198396Srdivacky * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23198396Srdivacky * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24198396Srdivacky * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25198396Srdivacky * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26198396Srdivacky * SUCH DAMAGE. 27198396Srdivacky * 28198396Srdivacky * $FreeBSD: stable/10/sys/dev/virtio/virtio_config.h 267312 2014-06-10 03:23:35Z bryanv $ 29198396Srdivacky */ 30199989Srdivacky 31199989Srdivacky#ifndef _VIRTIO_CONFIG_H_ 32199989Srdivacky#define _VIRTIO_CONFIG_H_ 33199989Srdivacky 34199989Srdivacky/* Status byte for guest to report progress. */ 35198396Srdivacky#define VIRTIO_CONFIG_STATUS_RESET 0x00 36198396Srdivacky#define VIRTIO_CONFIG_STATUS_ACK 0x01 37198396Srdivacky#define VIRTIO_CONFIG_STATUS_DRIVER 0x03 38198396Srdivacky#define VIRTIO_CONFIG_STATUS_DRIVER_OK 0x04 39198396Srdivacky#define VIRTIO_CONFIG_STATUS_FAILED 0x80 40199989Srdivacky 41199989Srdivacky/* 42199989Srdivacky * Generate interrupt when the virtqueue ring is 43210299Sed * completely used, even if we've suppressed them. 44199989Srdivacky */ 45199989Srdivacky#define VIRTIO_F_NOTIFY_ON_EMPTY (1 << 24) 46210299Sed 47198396Srdivacky/* 48198396Srdivacky * The guest should never negotiate this feature; it 49198396Srdivacky * is used to detect faulty drivers. 50198396Srdivacky */ 51198396Srdivacky#define VIRTIO_F_BAD_FEATURE (1 << 30) 52198396Srdivacky 53199989Srdivacky/* 54199989Srdivacky * Some VirtIO feature bits (currently bits 28 through 31) are 55199989Srdivacky * reserved for the transport being used (eg. virtio_ring), the 56198396Srdivacky * rest are per-device feature bits. 57198396Srdivacky */ 58198396Srdivacky#define VIRTIO_TRANSPORT_F_START 28 59198396Srdivacky#define VIRTIO_TRANSPORT_F_END 32 60199989Srdivacky 61199989Srdivacky#endif /* _VIRTIO_CONFIG_H_ */ 62198396Srdivacky