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