linux/Documentation/block/request.rst
<<
>>
Prefs
   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