1============================ 2struct request documentation 3============================ 4 5Jens Axboe <jens.axboe@oracle.com> 27/05/02 6 7 8.. FIXME: 9 No idea about what does mean - seems just some noise, so comment it 10 11 1.0 12 Index 13 14 2.0 Struct request members classification 15 16 2.1 struct request members explanation 17 18 3.0 19 20 21 2.0 22 23 24 25Short explanation of request members 26==================================== 27 28Classification flags: 29 30 = ==================== 31 D driver member 32 B block layer member 33 I I/O scheduler member 34 = ==================== 35 36Unless an entry contains a D classification, a device driver must not access 37this member. Some members may contain D classifications, but should only be 38access through certain macros or functions (eg ->flags). 39 40<linux/blkdev.h> 41 42=============================== ======= ======================================= 43Member Flag Comment 44=============================== ======= ======================================= 45struct list_head queuelist BI Organization on various internal 46 queues 47 48``void *elevator_private`` I I/O scheduler private data 49 50unsigned char cmd[16] D Driver can use this for setting up 51 a cdb before execution, see 52 blk_queue_prep_rq 53 54unsigned long flags DBI Contains info about data direction, 55 request type, etc. 56 57int rq_status D Request status bits 58 59kdev_t rq_dev DBI Target device 60 61int errors DB Error counts 62 63sector_t sector DBI Target location 64 65unsigned long hard_nr_sectors B Used to keep sector sane 66 67unsigned long nr_sectors DBI Total number of sectors in request 68 69unsigned long hard_nr_sectors B Used to keep nr_sectors sane 70 71unsigned short nr_phys_segments DB Number of physical scatter gather 72 segments in a request 73 74unsigned short nr_hw_segments DB Number of hardware scatter gather 75 segments in a request 76 77unsigned int current_nr_sectors DB Number of sectors in first segment 78 of request 79 80unsigned int hard_cur_sectors B Used to keep current_nr_sectors sane 81 82int tag DB TCQ tag, if assigned 83 84``void *special`` D Free to be used by driver 85 86``char *buffer`` D Map of first segment, also see 87 section on bouncing SECTION 88 89``struct completion *waiting`` D Can be used by driver to get signalled 90 on request completion 91 92``struct bio *bio`` DBI First bio in request 93 94``struct bio *biotail`` DBI Last bio in request 95 96``struct request_queue *q`` DB Request queue this request belongs to 97 98``struct request_list *rl`` B Request list this request came from 99=============================== ======= ======================================= 100