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