123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- ============================
- struct request documentation
- ============================
- Jens Axboe <[email protected]> 27/05/02
- .. FIXME:
- No idea about what does mean - seems just some noise, so comment it
- 1.0
- Index
- 2.0 Struct request members classification
- 2.1 struct request members explanation
- 3.0
- 2.0
- Short explanation of request members
- ====================================
- Classification flags:
- = ====================
- D driver member
- B block layer member
- I I/O scheduler member
- = ====================
- Unless an entry contains a D classification, a device driver must not access
- this member. Some members may contain D classifications, but should only be
- access through certain macros or functions (eg ->flags).
- <linux/blkdev.h>
- =============================== ======= =======================================
- Member Flag Comment
- =============================== ======= =======================================
- struct list_head queuelist BI Organization on various internal
- queues
- ``void *elevator_private`` I I/O scheduler private data
- unsigned char cmd[16] D Driver can use this for setting up
- a cdb before execution, see
- blk_queue_prep_rq
- unsigned long flags DBI Contains info about data direction,
- request type, etc.
- int rq_status D Request status bits
- kdev_t rq_dev DBI Target device
- int errors DB Error counts
- sector_t sector DBI Target location
- unsigned long hard_nr_sectors B Used to keep sector sane
- unsigned long nr_sectors DBI Total number of sectors in request
- unsigned long hard_nr_sectors B Used to keep nr_sectors sane
- unsigned short nr_phys_segments DB Number of physical scatter gather
- segments in a request
- unsigned short nr_hw_segments DB Number of hardware scatter gather
- segments in a request
- unsigned int current_nr_sectors DB Number of sectors in first segment
- of request
- unsigned int hard_cur_sectors B Used to keep current_nr_sectors sane
- int tag DB TCQ tag, if assigned
- ``void *special`` D Free to be used by driver
- ``char *buffer`` D Map of first segment, also see
- section on bouncing SECTION
- ``struct completion *waiting`` D Can be used by driver to get signalled
- on request completion
- ``struct bio *bio`` DBI First bio in request
- ``struct bio *biotail`` DBI Last bio in request
- ``struct request_queue *q`` DB Request queue this request belongs to
- ``struct request_list *rl`` B Request list this request came from
- =============================== ======= =======================================
|