]> xenbits.xensource.com Git - legacy/linux-2.6.18-xen.git/commitdiff
Sync public i/o header files with Xen.
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 10 Dec 2007 13:51:57 +0000 (13:51 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 10 Dec 2007 13:51:57 +0000 (13:51 +0000)
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
include/xen/interface/io/blkif.h
include/xen/interface/io/kbdif.h
include/xen/interface/io/netif.h

index 548ba95299a55d6143ab69e795d322c7197ca416..2380066b8cb53aa8b106fb8bbe2176c644d49a19 100644 (file)
@@ -54,7 +54,7 @@
 #define BLKIF_OP_WRITE             1
 /*
  * Recognised only if "feature-barrier" is present in backend xenbus info.
- * The "feature_barrier" node contains a boolean indicating whether barrier
+ * The "feature-barrier" node contains a boolean indicating whether barrier
  * requests are likely to succeed or fail. Either way, a barrier request
  * may fail at any time with BLKIF_RSP_EOPNOTSUPP if it is unsupported by
  * the underlying block-device hardware. The boolean simply indicates whether
  * create the "feature-barrier" node!
  */
 #define BLKIF_OP_WRITE_BARRIER     2
+/*
+ * Recognised if "feature-flush-cache" is present in backend xenbus
+ * info.  A flush will ask the underlying storage hardware to flush its
+ * non-volatile caches as appropriate.  The "feature-flush-cache" node
+ * contains a boolean indicating whether flush requests are likely to
+ * succeed or fail. Either way, a flush request may fail at any time
+ * with BLKIF_RSP_EOPNOTSUPP if it is unsupported by the underlying
+ * block-device hardware. The boolean simply indicates whether or not it
+ * is worthwhile for the frontend to attempt flushes.  If a backend does
+ * not recognise BLKIF_OP_WRITE_FLUSH_CACHE, it should *not* create the
+ * "feature-flush-cache" node!
+ */
+#define BLKIF_OP_FLUSH_DISKCACHE   3
 
 /*
  * Maximum scatter/gather segments per request.
index 38193c8541701ae38a01837da13c85c3858438f7..7b4e404335999b92c84cb63f714bbc776ac74bd8 100644 (file)
@@ -50,6 +50,7 @@ struct xenkbd_motion
     uint8_t type;        /* XENKBD_TYPE_MOTION */
     int32_t rel_x;       /* relative X motion */
     int32_t rel_y;       /* relative Y motion */
+    int32_t rel_z;       /* relative Z motion (wheel) */
 };
 
 struct xenkbd_key
@@ -64,6 +65,7 @@ struct xenkbd_position
     uint8_t type;        /* XENKBD_TYPE_POS */
     int32_t abs_x;       /* absolute X position (in FB pixels) */
     int32_t abs_y;       /* absolute Y position (in FB pixels) */
+    int32_t abs_z;       /* absolute Z position (wheel) */
 };
 
 #define XENKBD_IN_EVENT_SIZE 40
index a2e885cae5301fbb171c93010ecb8521fdc98a94..fbb5c2723118cb6b9f906048064b92267c7e3b4d 100644 (file)
@@ -75,9 +75,11 @@ struct netif_tx_request {
 typedef struct netif_tx_request netif_tx_request_t;
 
 /* Types of netif_extra_info descriptors. */
-#define XEN_NETIF_EXTRA_TYPE_NONE  (0)  /* Never used - invalid */
-#define XEN_NETIF_EXTRA_TYPE_GSO   (1)  /* u.gso */
-#define XEN_NETIF_EXTRA_TYPE_MAX   (2)
+#define XEN_NETIF_EXTRA_TYPE_NONE      (0)  /* Never used - invalid */
+#define XEN_NETIF_EXTRA_TYPE_GSO       (1)  /* u.gso */
+#define XEN_NETIF_EXTRA_TYPE_MCAST_ADD (2)  /* u.mcast */
+#define XEN_NETIF_EXTRA_TYPE_MCAST_DEL (3)  /* u.mcast */
+#define XEN_NETIF_EXTRA_TYPE_MAX       (4)
 
 /* netif_extra_info flags. */
 #define _XEN_NETIF_EXTRA_FLAG_MORE (0)
@@ -95,6 +97,9 @@ struct netif_extra_info {
     uint8_t flags; /* XEN_NETIF_EXTRA_FLAG_* */
 
     union {
+        /*
+         * XEN_NETIF_EXTRA_TYPE_GSO:
+         */
         struct {
             /*
              * Maximum payload size of each segment. For example, for TCP this
@@ -118,9 +123,25 @@ struct netif_extra_info {
             uint16_t features; /* XEN_NETIF_GSO_FEAT_* */
         } gso;
 
+        /*
+         * XEN_NETIF_EXTRA_TYPE_MCAST_{ADD,DEL}:
+         * Backend advertises availability via 'feature-multicast-control'
+         * xenbus node containing value '1'.
+         * Frontend requests this feature by advertising
+         * 'request-multicast-control' xenbus node containing value '1'.
+         * If multicast control is requested then multicast flooding is
+         * disabled and the frontend must explicitly register its interest
+         * in multicast groups using dummy transmit requests containing
+         * MCAST_{ADD,DEL} extra-info fragments.
+         */
+        struct {
+            uint8_t addr[6]; /* Address to add/remove. */
+        } mcast;
+
         uint16_t pad[3];
     } u;
 };
+typedef struct netif_extra_info netif_extra_info_t;
 
 struct netif_tx_response {
     uint16_t id;