mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Revert 24875:a59c1dcfe968 "blkif.h: Define and document the request number/size/segments extension"
Breaks the build. Signed-off-by: Keir Fraser <keir@xen.org>
This commit is contained in:
1 parent
a8078b0235
commit
f20e5f80da
2 files changed
+4
-116
No files matched your search
@@ -145,32 +145,6 @@
|
||||
* The maximum supported size of the request ring buffer in units of
|
||||
* machine pages. The value must be a power of 2.
|
||||
*
|
||||
* max-requests <uint32_t>
|
||||
* Default Value: BLKIF_MAX_RING_REQUESTS(PAGE_SIZE)
|
||||
* Maximum Value: BLKIF_MAX_RING_REQUESTS(PAGE_SIZE * max-ring-pages)
|
||||
*
|
||||
* The maximum number of concurrent, logical requests that will be
|
||||
* issued by the backend.
|
||||
*
|
||||
* Note: A logical request may span multiple ring entries.
|
||||
*
|
||||
* max-request-segments
|
||||
* Values: <uint8_t>
|
||||
* Default Value: BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK
|
||||
* Maximum Value: BLKIF_MAX_SEGMENTS_PER_REQUEST
|
||||
*
|
||||
* The maximum value of blkif_request.nr_segments supported by
|
||||
* the backend.
|
||||
*
|
||||
* max-request-size
|
||||
* Values: <uint32_t>
|
||||
* Default Value: BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK * PAGE_SIZE
|
||||
* Maximum Value: BLKIF_MAX_SEGMENTS_PER_REQUEST * PAGE_SIZE
|
||||
*
|
||||
* The maximum amount of data, in bytes, that can be referenced by a
|
||||
* request type that accesses frontend memory (currently BLKIF_OP_READ,
|
||||
* BLKIF_OP_WRITE, or BLKIF_OP_WRITE_BARRIER).
|
||||
*
|
||||
*------------------------- Backend Device Properties -------------------------
|
||||
*
|
||||
* discard-aligment
|
||||
@@ -268,33 +242,6 @@
|
||||
* The size of the frontend allocated request ring buffer in units of
|
||||
* machine pages. The value must be a power of 2.
|
||||
*
|
||||
* max-requests
|
||||
* Values: <uint32_t>
|
||||
* Default Value: BLKIF_MAX_RING_REQUESTS(PAGE_SIZE)
|
||||
* Maximum Value: BLKIF_MAX_RING_REQUESTS(PAGE_SIZE * max-ring-pages)
|
||||
*
|
||||
* The maximum number of concurrent, logical requests that will be
|
||||
* issued by the frontend.
|
||||
*
|
||||
* Note: A logical request may span multiple ring entries.
|
||||
*
|
||||
* max-request-segments
|
||||
* Values: <uint8_t>
|
||||
* Default Value: BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK
|
||||
* Maximum Value: MIN(255, backend/max-request-segments)
|
||||
*
|
||||
* The maximum value the frontend will set in the
|
||||
* blkif_request.nr_segments field.
|
||||
*
|
||||
* max-request-size
|
||||
* Values: <uint32_t>
|
||||
* Default Value: BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK * PAGE_SIZE
|
||||
* Maximum Value: max-request-segments * PAGE_SIZE
|
||||
*
|
||||
* The maximum amount of data, in bytes, that can be referenced by
|
||||
* a request type that accesses frontend memory (currently BLKIF_OP_READ,
|
||||
* BLKIF_OP_WRITE, or BLKIF_OP_WRITE_BARRIER).
|
||||
*
|
||||
*------------------------- Virtual Device Properties -------------------------
|
||||
*
|
||||
* device-type
|
||||
@@ -456,28 +403,11 @@
|
||||
#define BLKIF_OP_DISCARD 5
|
||||
|
||||
/*
|
||||
* Maximum scatter/gather segments associated with a request header block.
|
||||
* Maximum scatter/gather segments per request.
|
||||
* This is carefully chosen so that sizeof(blkif_ring_t) <= PAGE_SIZE.
|
||||
* NB. This could be 12 if the ring indexes weren't stored in the same page.
|
||||
*/
|
||||
#define BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK 11
|
||||
|
||||
/*
|
||||
* Maximum scatter/gather segments associated with a segment block.
|
||||
*/
|
||||
#define BLKIF_MAX_SEGMENTS_PER_SEGMENT_BLOCK 14
|
||||
|
||||
#if __XEN_INTERFACE_VERSION__ >= 0x00040201
|
||||
/*
|
||||
* Maximum scatter/gather segments per request (header + segment blocks).
|
||||
*/
|
||||
#define BLKIF_MAX_SEGMENTS_PER_REQUEST 255
|
||||
#else
|
||||
/*
|
||||
* Maximum scatter/gather segments per request (header block only).
|
||||
*/
|
||||
#define BLKIF_MAX_SEGMENTS_PER_REQUEST BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK
|
||||
#endif
|
||||
#define BLKIF_MAX_SEGMENTS_PER_REQUEST 11
|
||||
|
||||
/*
|
||||
* NB. first_sect and last_sect in blkif_request_segment, as well as
|
||||
@@ -492,25 +422,9 @@ struct blkif_request_segment {
|
||||
/* @last_sect: last sector in frame to transfer (inclusive). */
|
||||
uint8_t first_sect, last_sect;
|
||||
};
|
||||
typedef struct blkif_request_segment blkif_request_segment_t;
|
||||
|
||||
/*
|
||||
* Starting ring element for any I/O request.
|
||||
*
|
||||
* One or more segment blocks can be inserted into the request ring
|
||||
* just after a blkif_request_t, allowing requests to operate on
|
||||
* up to BLKIF_MAX_SEGMENTS_PER_REQUEST.
|
||||
*
|
||||
* BLKIF_SEGS_TO_BLOCKS() can be used on blkif_requst.nr_segments
|
||||
* to determine the number of contiguous ring entries associated
|
||||
* with this request.
|
||||
*
|
||||
* Note: Due to the way Xen request rings operate, the producer and
|
||||
* consumer indices of the ring must be incremented by the
|
||||
* BLKIF_SEGS_TO_BLOCKS() value of the associated request.
|
||||
* (e.g. a response to a 3 ring entry request must also consume
|
||||
* 3 entries in the ring, even though only the first ring entry
|
||||
* in the response has any data.)
|
||||
*/
|
||||
struct blkif_request {
|
||||
uint8_t operation; /* BLKIF_OP_??? */
|
||||
@@ -518,21 +432,10 @@ struct blkif_request {
|
||||
blkif_vdev_t handle; /* only for read/write requests */
|
||||
uint64_t id; /* private guest value, echoed in resp */
|
||||
blkif_sector_t sector_number;/* start sector idx on disk (r/w only) */
|
||||
blkif_request_segment_t seg[BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK];
|
||||
struct blkif_request_segment seg[BLKIF_MAX_SEGMENTS_PER_REQUEST];
|
||||
};
|
||||
typedef struct blkif_request blkif_request_t;
|
||||
|
||||
/*
|
||||
* A segment block is a ring request structure that contains only
|
||||
* segment data.
|
||||
*
|
||||
* sizeof(struct blkif_segment_block) <= sizeof(struct blkif_request)
|
||||
*/
|
||||
struct blkif_segment_block {
|
||||
blkif_request_segment_t seg[BLKIF_MAX_SEGMENTS_PER_SEGMENT_BLOCK];
|
||||
};
|
||||
typedef struct blkif_segment_block blkif_segment_block_t;
|
||||
|
||||
/*
|
||||
* Cast to this structure when blkif_request.operation == BLKIF_OP_DISCARD
|
||||
* sizeof(struct blkif_request_discard) <= sizeof(struct blkif_request)
|
||||
@@ -570,21 +473,6 @@ typedef struct blkif_response blkif_response_t;
|
||||
*/
|
||||
DEFINE_RING_TYPES(blkif, struct blkif_request, struct blkif_response);
|
||||
|
||||
/*
|
||||
* Index to, and treat as a segment block, an entry in the ring.
|
||||
*/
|
||||
#define BLKRING_GET_SEG_BLOCK(_r, _idx) \
|
||||
(((blkif_segment_block_t *)RING_GET_REQUEST(_r, _idx))->seg)
|
||||
|
||||
/*
|
||||
* The number of ring request blocks required to handle an I/O
|
||||
* request containing _segs segments.
|
||||
*/
|
||||
#define BLKIF_SEGS_TO_BLOCKS(_segs) \
|
||||
((((_segs - BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK) \
|
||||
+ (BLKIF_MAX_SEGMENTS_PER_SEGMENT_BLOCK - 1)) \
|
||||
/ BLKIF_MAX_SEGMENTS_PER_SEGMENT_BLOCK) + /*header_block*/1)
|
||||
|
||||
#define VDISK_CDROM 0x1
|
||||
#define VDISK_REMOVABLE 0x2
|
||||
#define VDISK_READONLY 0x4
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#ifndef __XEN_PUBLIC_XEN_COMPAT_H__
|
||||
#define __XEN_PUBLIC_XEN_COMPAT_H__
|
||||
|
||||
#define __XEN_LATEST_INTERFACE_VERSION__ 0x00040201
|
||||
#define __XEN_LATEST_INTERFACE_VERSION__ 0x00040200
|
||||
|
||||
#if defined(__XEN__) || defined(__XEN_TOOLS__)
|
||||
/* Xen is built with matching headers and implements the latest interface. */
|
||||
|
||||