Linux 4.3
[linux/fpc-iii.git] / Documentation / block / request.txt
blob754e104ed3699452f36f636bd234d425f87dbad7
2 struct request documentation
4 Jens Axboe <jens.axboe@oracle.com> 27/05/02
6 1.0
7 Index
9 2.0 Struct request members classification
11         2.1 struct request members explanation
13 3.0
16 2.0
17 Short explanation of request members
19 Classification flags:
21         D       driver member
22         B       block layer member
23         I       I/O scheduler member
25 Unless an entry contains a D classification, a device driver must not access
26 this member. Some members may contain D classifications, but should only be
27 access through certain macros or functions (eg ->flags).
29 <linux/blkdev.h>
31 2.1
32 Member                          Flag    Comment
33 ------                          ----    -------
35 struct list_head queuelist      BI      Organization on various internal
36                                         queues
38 void *elevator_private          I       I/O scheduler private data
40 unsigned char cmd[16]           D       Driver can use this for setting up
41                                         a cdb before execution, see
42                                         blk_queue_prep_rq
44 unsigned long flags             DBI     Contains info about data direction,
45                                         request type, etc.
47 int rq_status                   D       Request status bits
49 kdev_t rq_dev                   DBI     Target device
51 int errors                      DB      Error counts
53 sector_t sector                 DBI     Target location
55 unsigned long hard_nr_sectors   B       Used to keep sector sane
57 unsigned long nr_sectors        DBI     Total number of sectors in request
59 unsigned long hard_nr_sectors   B       Used to keep nr_sectors sane
61 unsigned short nr_phys_segments DB      Number of physical scatter gather
62                                         segments in a request
64 unsigned short nr_hw_segments   DB      Number of hardware scatter gather
65                                         segments in a request
67 unsigned int current_nr_sectors DB      Number of sectors in first segment
68                                         of request
70 unsigned int hard_cur_sectors   B       Used to keep current_nr_sectors sane
72 int tag                         DB      TCQ tag, if assigned
74 void *special                   D       Free to be used by driver
76 char *buffer                    D       Map of first segment, also see
77                                         section on bouncing SECTION
79 struct completion *waiting      D       Can be used by driver to get signalled
80                                         on request completion
82 struct bio *bio                 DBI     First bio in request
84 struct bio *biotail             DBI     Last bio in request
86 struct request_queue *q         DB      Request queue this request belongs to
88 struct request_list *rl         B       Request list this request came from