GNU Linux-libre 4.19.211-gnu1
[releases.git] / Documentation / block / request.txt
1
2 struct request documentation
3
4 Jens Axboe <jens.axboe@oracle.com> 27/05/02
5
6 1.0
7 Index
8
9 2.0 Struct request members classification
10
11         2.1 struct request members explanation
12
13 3.0
14
15
16 2.0
17 Short explanation of request members
18
19 Classification flags:
20
21         D       driver member
22         B       block layer member
23         I       I/O scheduler member
24
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).
28
29 <linux/blkdev.h>
30
31 2.1
32 Member                          Flag    Comment
33 ------                          ----    -------
34
35 struct list_head queuelist      BI      Organization on various internal
36                                         queues
37
38 void *elevator_private          I       I/O scheduler private data
39
40 unsigned char cmd[16]           D       Driver can use this for setting up
41                                         a cdb before execution, see
42                                         blk_queue_prep_rq
43
44 unsigned long flags             DBI     Contains info about data direction,
45                                         request type, etc.
46
47 int rq_status                   D       Request status bits
48
49 kdev_t rq_dev                   DBI     Target device
50
51 int errors                      DB      Error counts
52
53 sector_t sector                 DBI     Target location
54
55 unsigned long hard_nr_sectors   B       Used to keep sector sane
56
57 unsigned long nr_sectors        DBI     Total number of sectors in request
58
59 unsigned long hard_nr_sectors   B       Used to keep nr_sectors sane
60
61 unsigned short nr_phys_segments DB      Number of physical scatter gather
62                                         segments in a request
63
64 unsigned short nr_hw_segments   DB      Number of hardware scatter gather
65                                         segments in a request
66
67 unsigned int current_nr_sectors DB      Number of sectors in first segment
68                                         of request
69
70 unsigned int hard_cur_sectors   B       Used to keep current_nr_sectors sane
71
72 int tag                         DB      TCQ tag, if assigned
73
74 void *special                   D       Free to be used by driver
75
76 char *buffer                    D       Map of first segment, also see
77                                         section on bouncing SECTION
78
79 struct completion *waiting      D       Can be used by driver to get signalled
80                                         on request completion
81
82 struct bio *bio                 DBI     First bio in request
83
84 struct bio *biotail             DBI     Last bio in request
85
86 struct request_queue *q         DB      Request queue this request belongs to
87
88 struct request_list *rl         B       Request list this request came from