18c2ecf20Sopenharmony_ci============================
28c2ecf20Sopenharmony_cistruct request documentation
38c2ecf20Sopenharmony_ci============================
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciJens Axboe <jens.axboe@oracle.com> 27/05/02
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci.. FIXME:
98c2ecf20Sopenharmony_ci   No idea about what does mean - seems just some noise, so comment it
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci   1.0
128c2ecf20Sopenharmony_ci   Index
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci   2.0 Struct request members classification
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci       2.1 struct request members explanation
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci   3.0
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci   2.0
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciShort explanation of request members
268c2ecf20Sopenharmony_ci====================================
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciClassification flags:
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci	=	====================
318c2ecf20Sopenharmony_ci	D	driver member
328c2ecf20Sopenharmony_ci	B	block layer member
338c2ecf20Sopenharmony_ci	I	I/O scheduler member
348c2ecf20Sopenharmony_ci	=	====================
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ciUnless an entry contains a D classification, a device driver must not access
378c2ecf20Sopenharmony_cithis member. Some members may contain D classifications, but should only be
388c2ecf20Sopenharmony_ciaccess through certain macros or functions (eg ->flags).
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci<linux/blkdev.h>
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci=============================== ======= =======================================
438c2ecf20Sopenharmony_ciMember				Flag	Comment
448c2ecf20Sopenharmony_ci=============================== ======= =======================================
458c2ecf20Sopenharmony_cistruct list_head queuelist	BI	Organization on various internal
468c2ecf20Sopenharmony_ci					queues
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci``void *elevator_private``	I	I/O scheduler private data
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciunsigned char cmd[16]		D	Driver can use this for setting up
518c2ecf20Sopenharmony_ci					a cdb before execution, see
528c2ecf20Sopenharmony_ci					blk_queue_prep_rq
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ciunsigned long flags		DBI	Contains info about data direction,
558c2ecf20Sopenharmony_ci					request type, etc.
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ciint rq_status			D	Request status bits
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_cikdev_t rq_dev			DBI	Target device
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ciint errors			DB	Error counts
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_cisector_t sector			DBI	Target location
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciunsigned long hard_nr_sectors	B	Used to keep sector sane
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ciunsigned long nr_sectors	DBI	Total number of sectors in request
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ciunsigned long hard_nr_sectors	B	Used to keep nr_sectors sane
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciunsigned short nr_phys_segments	DB	Number of physical scatter gather
728c2ecf20Sopenharmony_ci					segments in a request
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ciunsigned short nr_hw_segments	DB	Number of hardware scatter gather
758c2ecf20Sopenharmony_ci					segments in a request
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ciunsigned int current_nr_sectors	DB	Number of sectors in first segment
788c2ecf20Sopenharmony_ci					of request
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciunsigned int hard_cur_sectors	B	Used to keep current_nr_sectors sane
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciint tag				DB	TCQ tag, if assigned
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci``void *special``		D	Free to be used by driver
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci``char *buffer``		D	Map of first segment, also see
878c2ecf20Sopenharmony_ci					section on bouncing SECTION
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci``struct completion *waiting``	D	Can be used by driver to get signalled
908c2ecf20Sopenharmony_ci					on request completion
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci``struct bio *bio``		DBI	First bio in request
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci``struct bio *biotail``		DBI	Last bio in request
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci``struct request_queue *q``	DB	Request queue this request belongs to
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci``struct request_list *rl``	B	Request list this request came from
998c2ecf20Sopenharmony_ci=============================== ======= =======================================
100