*参照元 [#a39af280]
#backlinks

*説明 [#iccd54e2]
-パス: [[linux-2.6.33/include/linux/blkdev.h]]

-FIXME: これは何?
--説明


**参考 [#qf759182]


*実装 [#w9560b92]
 struct request_queue
 {
 	/*
 	 * Together with queue_head for cacheline sharing
 	 */
 	struct list_head	queue_head;
 	struct request		*last_merge;
 	struct elevator_queue	*elevator;
 
-
--[[linux-2.6.33/list_head]]
-
--[[linux-2.6.33/request]]
-
--[[linux-2.6.33/elevator_queue]]

 	/*
 	 * the queue request freelist, one for reads and one for writes
 	 */
 	struct request_list	rq;
 
-
--[[linux-2.6.33/request_list]]

 	request_fn_proc		*request_fn;
 	make_request_fn		*make_request_fn;
 	prep_rq_fn		*prep_rq_fn;
 	unplug_fn		*unplug_fn;
-
--[[linux-2.6.33/request_fn_proc]]
-
--[[linux-2.6.33/make_request_fn]]
-
--[[linux-2.6.33/prep_rq_fn]]
-
--[[linux-2.6.33/unplug_fn]]

 	merge_bvec_fn		*merge_bvec_fn;
 	prepare_flush_fn	*prepare_flush_fn;
 	softirq_done_fn		*softirq_done_fn;
 	rq_timed_out_fn		*rq_timed_out_fn;
-
--[[linux-2.6.33/merge_bvec_fn]]
-
--[[linux-2.6.33/prepare_flush_fn]]
-
--[[linux-2.6.33/softirq_done_fn]]
-
--[[linux-2.6.33/rq_timed_out_fn]]

 	dma_drain_needed_fn	*dma_drain_needed;
 	lld_busy_fn		*lld_busy_fn;
 
-
--[[linux-2.6.33/dma_drain_needed_fn]]
-
--[[linux-2.6.33/lld_busy_fn]]

 	/*
 	 * Dispatch queue sorting
 	 */
 	sector_t		end_sector;
 	struct request		*boundary_rq;
 
-
--[[linux-2.6.33/sector_t]]
-
--[[linux-2.6.33/request]]

 	/*
 	 * Auto-unplugging state
 	 */
 	struct timer_list	unplug_timer;
 	int			unplug_thresh;	/* After this many requests */
 	unsigned long		unplug_delay;	/* After this many jiffies */
 	struct work_struct	unplug_work;
 
-
--[[linux-2.6.33/timer_list]]
-
--[[linux-2.6.33/work_struct]]

 	struct backing_dev_info	backing_dev_info;
 
-
--[[linux-2.6.33/backing_dev_info]]

 	/*
 	 * The queue owner gets to use this for whatever they like.
 	 * ll_rw_blk doesn't touch it.
 	 */
 	void			*queuedata;
 
 	/*
 	 * queue needs bounce pages for pages above this limit
 	 */
 	gfp_t			bounce_gfp;
 
-
--[[linux-2.6.33/gfp_t]]

 	/*
 	 * various queue flags, see QUEUE_* below
 	 */
 	unsigned long		queue_flags;
 
 	/*
 	 * protects queue structures from reentrancy. ->__queue_lock should
 	 * _never_ be used directly, it is queue private. always use
 	 * ->queue_lock.
 	 */
 	spinlock_t		__queue_lock;
 	spinlock_t		*queue_lock;
 
-
--[[linux-2.6.33/spinlock_t]]

 	/*
 	 * queue kobject
 	 */
 	struct kobject kobj;
 
-
--[[linux-2.6.33/kobject]]

 	/*
 	 * queue settings
 	 */
 	unsigned long		nr_requests;	/* Max # of requests */
 	unsigned int		nr_congestion_on;
 	unsigned int		nr_congestion_off;
 	unsigned int		nr_batching;
 
 	void			*dma_drain_buffer;
 	unsigned int		dma_drain_size;
 	unsigned int		dma_pad_mask;
 	unsigned int		dma_alignment;
 
 	struct blk_queue_tag	*queue_tags;
 	struct list_head	tag_busy_list;
 
-
--[[linux-2.6.33/blk_queue_tag]]

 	unsigned int		nr_sorted;
 	unsigned int		in_flight[2];
 
 	unsigned int		rq_timeout;
 	struct timer_list	timeout;
 	struct list_head	timeout_list;
 
 	struct queue_limits	limits;
 
-
--[[linux-2.6.33/queue_limits]]

 	/*
 	 * sg stuff
 	 */
 	unsigned int		sg_timeout;
 	unsigned int		sg_reserved_size;
 	int			node;
 #ifdef CONFIG_BLK_DEV_IO_TRACE
 	struct blk_trace	*blk_trace;
 #endif
-
--[[linux-2.6.33/blk_trace]]

 	/*
 	 * reserved for flush operations
 	 */
 	unsigned int		ordered, next_ordered, ordseq;
 	int			orderr, ordcolor;
 	struct request		pre_flush_rq, bar_rq, post_flush_rq;
 	struct request		*orig_bar_rq;
 
 	struct mutex		sysfs_lock;
 
-
--[[linux-2.6.33/mutex]]

 #if defined(CONFIG_BLK_DEV_BSG)
 	struct bsg_class_device bsg_dev;
 #endif
-
--[[linux-2.6.33/bsg_class_device]]

 };


*コメント [#u1598381]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS