qemu/include/standard-headers/asm-s390/kvm_virtio.h
<<
>>
Prefs
   1/*
   2 * definition for virtio for kvm on s390
   3 *
   4 * Copyright IBM Corp. 2008
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License (version 2 only)
   8 * as published by the Free Software Foundation.
   9 *
  10 *    Author(s): Christian Borntraeger <borntraeger@de.ibm.com>
  11 */
  12
  13#ifndef __KVM_S390_VIRTIO_H
  14#define __KVM_S390_VIRTIO_H
  15
  16#include "standard-headers/linux/types.h"
  17
  18struct kvm_device_desc {
  19        /* The device type: console, network, disk etc.  Type 0 terminates. */
  20        uint8_t type;
  21        /* The number of virtqueues (first in config array) */
  22        uint8_t num_vq;
  23        /*
  24         * The number of bytes of feature bits.  Multiply by 2: one for host
  25         * features and one for guest acknowledgements.
  26         */
  27        uint8_t feature_len;
  28        /* The number of bytes of the config array after virtqueues. */
  29        uint8_t config_len;
  30        /* A status byte, written by the Guest. */
  31        uint8_t status;
  32        uint8_t config[0];
  33};
  34
  35/*
  36 * This is how we expect the device configuration field for a virtqueue
  37 * to be laid out in config space.
  38 */
  39struct kvm_vqconfig {
  40        /* The token returned with an interrupt. Set by the guest */
  41        uint64_t token;
  42        /* The address of the virtio ring */
  43        uint64_t address;
  44        /* The number of entries in the virtio_ring */
  45        uint16_t num;
  46
  47};
  48
  49#define KVM_S390_VIRTIO_NOTIFY          0
  50#define KVM_S390_VIRTIO_RESET           1
  51#define KVM_S390_VIRTIO_SET_STATUS      2
  52
  53/* The alignment to use between consumer and producer parts of vring.
  54 * This is pagesize for historical reasons. */
  55#define KVM_S390_VIRTIO_RING_ALIGN      4096
  56
  57
  58/* These values are supposed to be in ext_params on an interrupt */
  59#define VIRTIO_PARAM_MASK               0xff
  60#define VIRTIO_PARAM_VRING_INTERRUPT    0x0
  61#define VIRTIO_PARAM_CONFIG_CHANGED     0x1
  62#define VIRTIO_PARAM_DEV_ADD            0x2
  63
  64#endif
  65