FreeBSD kernel /amd64 XEN device code
xbb_xen_reqlist Struct Reference
Collaboration diagram for xbb_xen_reqlist:

Data Fields

struct xbb_softcxbb
 
int operation
 
int status
 
int residual_512b_sectors
 
off_t starting_sector_number
 
off_t next_contig_sector
 
int num_children
 
int pendcnt
 
int nr_segments
 
xbb_reqlist_flags flags
 
uint8_t * kva
 
uint64_t gnt_base
 
uint8_t * bounce
 
grant_handle_t * gnt_handles
 
devstat_tag_type ds_tag_type
 
devstat_trans_flags ds_trans_type
 
struct bintime ds_t0
 
struct xbb_xen_req_list contig_req_list
 

Detailed Description

Definition at line 188 of file blkback.c.

Field Documentation

◆ bounce

uint8_t* xbb_xen_reqlist::bounce

Pre-allocated domain local memory used to proxy remote domain memory during I/O operations.

Definition at line 265 of file blkback.c.

Referenced by xbb_alloc_request_lists(), xbb_bio_done(), xbb_disconnect(), xbb_dispatch_dev(), and xbb_reqlist_bounce_addr().

◆ contig_req_list

struct xbb_xen_req_list xbb_xen_reqlist::contig_req_list

Linked list of contiguous requests with the same operation type.

Definition at line 291 of file blkback.c.

Referenced by xbb_complete_reqlist(), xbb_dispatch_io(), xbb_get_reqlist(), and xbb_release_reqlist().

◆ ds_t0

struct bintime xbb_xen_reqlist::ds_t0

The start time for this request.

Definition at line 286 of file blkback.c.

Referenced by xbb_complete_reqlist(), and xbb_dispatch_io().

◆ ds_tag_type

devstat_tag_type xbb_xen_reqlist::ds_tag_type

Device statistics request ordering type (ordered or simple).

Definition at line 276 of file blkback.c.

Referenced by xbb_complete_reqlist(), and xbb_dispatch_io().

◆ ds_trans_type

devstat_trans_flags xbb_xen_reqlist::ds_trans_type

Device statistics request type (read, write, no_data).

Definition at line 281 of file blkback.c.

Referenced by xbb_complete_reqlist(), and xbb_dispatch_io().

◆ flags

xbb_reqlist_flags xbb_xen_reqlist::flags

Flags for this particular request list.

Definition at line 245 of file blkback.c.

Referenced by xbb_complete_reqlist(), xbb_dispatch_io(), and xbb_get_reqlist().

◆ gnt_base

uint64_t xbb_xen_reqlist::gnt_base

Base, pseudo-physical address, corresponding to the start of this request's kva region.

Definition at line 258 of file blkback.c.

◆ gnt_handles

grant_handle_t* xbb_xen_reqlist::gnt_handles

Array of grant handles (one per page) used to map this request.

Definition at line 271 of file blkback.c.

Referenced by xbb_alloc_request_lists(), xbb_disconnect(), xbb_dispatch_io(), and xbb_unmap_reqlist().

◆ kva

uint8_t* xbb_xen_reqlist::kva

Kernel virtual address space reserved for this request list structure and used to map the remote domain's pages for this I/O, into our domain's address space.

Definition at line 252 of file blkback.c.

Referenced by xbb_bio_done(), xbb_dispatch_dev(), xbb_dispatch_io(), xbb_get_gntaddr(), xbb_get_reqlist(), xbb_release_reqlist(), and xbb_reqlist_vaddr().

◆ next_contig_sector

off_t xbb_xen_reqlist::next_contig_sector

If we're going to coalesce, the next contiguous sector would be this one.

Definition at line 225 of file blkback.c.

Referenced by xbb_run_queue().

◆ nr_segments

int xbb_xen_reqlist::nr_segments

Total number of segments for requests in the list.

Definition at line 240 of file blkback.c.

Referenced by xbb_dispatch_dev(), xbb_dispatch_file(), xbb_dispatch_io(), xbb_get_reqlist(), xbb_release_reqlist(), xbb_run_queue(), and xbb_unmap_reqlist().

◆ num_children

int xbb_xen_reqlist::num_children

Number of child requests in the list.

Definition at line 230 of file blkback.c.

Referenced by xbb_get_reqlist(), and xbb_release_reqlist().

◆ operation

int xbb_xen_reqlist::operation

BLKIF_OP code for this request.

Definition at line 198 of file blkback.c.

Referenced by xbb_dispatch_io(), xbb_get_resources(), and xbb_run_queue().

◆ pendcnt

int xbb_xen_reqlist::pendcnt

Number of I/O requests still pending on the backend.

Definition at line 235 of file blkback.c.

Referenced by xbb_bio_done(), and xbb_dispatch_dev().

◆ residual_512b_sectors

int xbb_xen_reqlist::residual_512b_sectors

Number of 512 byte sectors not transferred.

Definition at line 214 of file blkback.c.

Referenced by xbb_bio_done(), xbb_complete_reqlist(), and xbb_get_reqlist().

◆ starting_sector_number

off_t xbb_xen_reqlist::starting_sector_number

Starting sector number of the first request in the list.

Definition at line 219 of file blkback.c.

Referenced by xbb_dispatch_dev(), xbb_dispatch_file(), xbb_dispatch_io(), and xbb_get_resources().

◆ status

int xbb_xen_reqlist::status

Set to BLKIF_RSP_* to indicate request status.

This field allows an error status to be recorded even if the delivery of this status must be deferred. Deferred reporting is necessary, for example, when an error is detected during completion processing of one bio when other bios for this request are still outstanding.

Definition at line 209 of file blkback.c.

Referenced by xbb_bio_done(), xbb_complete_reqlist(), xbb_dispatch_file(), xbb_dispatch_io(), and xbb_get_reqlist().

◆ xbb

struct xbb_softc* xbb_xen_reqlist::xbb

Back reference to the parent block back instance for this request. Used during bio_done handling.

Definition at line 193 of file blkback.c.

Referenced by xbb_alloc_request_lists(), xbb_bio_done(), xbb_disconnect(), xbb_dispatch_io(), xbb_get_gntaddr(), xbb_get_reqlist(), xbb_release_reqlist(), and xbb_run_queue().


The documentation for this struct was generated from the following file: