#include <asm/uaccess.h>
-#define MAJOR_NR FLOPPY_MAJOR
-#define FLOPPY_DMA 0
-#define DEVICE_NAME "floppy"
-#define DEVICE_NR(device) ( (minor(device) & 3) | ((minor(device) & 0x80 ) >> 5 ))
-#define QUEUE (&floppy_queue)
#include <linux/blk.h>
/* Note: FD_MAX_UNITS could be redefined to 2 for the Atari (with
static struct request_queue floppy_queue;
+#define MAJOR_NR FLOPPY_MAJOR
+#define FLOPPY_DMA 0
+#define DEVICE_NAME "floppy"
+#define QUEUE (&floppy_queue)
+#define CURRENT elv_next_request(&floppy_queue)
+
/* Disk types: DD */
static struct archy_disk_type {
const char *name;
#include <linux/major.h>
#include <linux/ioport.h>
#include <linux/delay.h>
-
-#define MAJOR_NR MFM_ACORN_MAJOR
-#define QUEUE (&mfm_queue)
#include <linux/blk.h>
#include <linux/blkpg.h>
static void (*do_mfm)(void) = NULL;
static struct request_queue mfm_queue;
static spinlock_t mfm_lock = SPIN_LOCK_UNLOCKED;
+
+#define MAJOR_NR MFM_ACORN_MAJOR
+#define QUEUE (&mfm_queue)
+#define CURRENT elv_next_request(&mfm_queue)
/*
* This sort of stuff should be in a header file shared with ide.c, hd.c, xd.c etc
*/
#include <linux/delay.h>
#include <linux/mm.h>
#include <linux/major.h>
-#define QUEUE (&acsi_queue)
#include <linux/blk.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
static void (*do_acsi)(void) = NULL;
static struct request_queue acsi_queue;
+#define QUEUE (&acsi_queue)
+#define CURRENT elv_next_request(&acsi_queue)
#define DEBUG
#undef DEBUG_DETECT
#include <asm/amigahw.h>
#include <asm/amigaints.h>
#include <asm/irq.h>
-
-#define MAJOR_NR FLOPPY_MAJOR
-#define DEVICE_NAME "floppy"
-#define QUEUE (&floppy_queue)
#include <linux/blk.h>
#undef DEBUG /* print _LOTS_ of infos */
static struct request_queue floppy_queue;
+#define MAJOR_NR FLOPPY_MAJOR
+#define DEVICE_NAME "floppy"
+#define QUEUE (&floppy_queue)
+#define CURRENT elv_next_request(&floppy_queue)
+
/*
* Macros
*/
#include <asm/atariints.h>
#include <asm/atari_stdma.h>
#include <asm/atari_stram.h>
-
-#define MAJOR_NR FLOPPY_MAJOR
-#define DEVICE_NAME "floppy"
-#define QUEUE (&floppy_queue)
#include <linux/blk.h>
#include <linux/blkpg.h>
static struct request_queue floppy_queue;
+#define MAJOR_NR FLOPPY_MAJOR
+#define DEVICE_NAME "floppy"
+#define QUEUE (&floppy_queue)
+#define CURRENT elv_next_request(&floppy_queue)
+
/* Disk types: DD, HD, ED */
static struct atari_disk_type {
const char *name;
static LIST_HEAD(blk_plug_list);
static spinlock_t blk_plug_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
-/* blk_dev_struct is:
- * request_queue
- * *queue
- */
-struct blk_dev_struct blk_dev[MAX_BLKDEV]; /* initialized by blk_dev_init() */
-
/*
* Number of requests per queue. This many for reads and for writes (twice
* this number, total).
atomic_dec(&nr_iowait_tasks);
}
-/**
- * bdev_get_queue: - return the queue that matches the given device
- * @bdev: device
- *
- * Description:
- * Given a specific device, return the queue that will hold I/O
- * for it. This is either a &struct blk_dev_struct lookup and a
- * call to the ->queue() function defined, or the default queue
- * stored in the same location.
- *
- **/
-inline request_queue_t *bdev_get_queue(struct block_device *bdev)
-{
- return bdev->bd_queue;
-}
-
/**
* blk_get_backing_dev_info - get the address of a queue's backing_dev_info
* @dev: device
EXPORT_SYMBOL(end_that_request_chunk);
EXPORT_SYMBOL(end_that_request_last);
EXPORT_SYMBOL(blk_init_queue);
-EXPORT_SYMBOL(bdev_get_queue);
EXPORT_SYMBOL(blk_cleanup_queue);
EXPORT_SYMBOL(blk_queue_make_request);
EXPORT_SYMBOL(blk_queue_bounce_limit);
* be sent.
*/
-/* This has to be defined before some of the #includes below */
-
-#define MAJOR_NR FLOPPY_MAJOR
-#define DEVICE_NAME "floppy"
-#define QUEUE (&swim_queue)
-
#include <linux/stddef.h>
#include <linux/kernel.h>
#include <linux/sched.h>
static struct floppy_state floppy_states[MAX_FLOPPIES];
static spinlock_t swim_iop_lock = SPIN_LOCK_UNLOCKED;
+#define MAJOR_NR FLOPPY_MAJOR
+#define DEVICE_NAME "floppy"
+#define QUEUE (&swim_queue)
+#define CURRENT elv_next_request(&swim_queue)
+
static char *drive_names[7] = {
"not installed", /* DRV_NONE */
"unknown (1)", /* DRV_UNKNOWN */
*/
#include <linux/version.h>
-
-#define MAJOR_NR AZTECH_CDROM_MAJOR
-#define QUEUE (&azt_queue)
#include <linux/blk.h>
#include "aztcd.h"
Defines
###########################################################################
*/
+
+#define MAJOR_NR AZTECH_CDROM_MAJOR
+#define QUEUE (&azt_queue)
+#define CURRENT elv_next_request(&azt_queue)
#define SET_TIMER(func, jifs) delay_timer.expires = jiffies + (jifs); \
delay_timer.function = (void *) (func); \
add_timer(&delay_timer);
#include <asm/system.h>
#include <asm/io.h>
#include <asm/uaccess.h>
-
-#define MAJOR_NR MITSUMI_CDROM_MAJOR
-#define QUEUE (&mcd_queue)
#include <linux/blk.h>
#define mcd_port mcd /* for compatible parameter passing with "insmod" */
static int mcdPresent;
static struct request_queue mcd_queue;
+#define MAJOR_NR MITSUMI_CDROM_MAJOR
+#define QUEUE (&mcd_queue)
+#define CURRENT elv_next_request(&mcd_queue)
+
#define QUICK_LOOP_DELAY udelay(45) /* use udelay */
#define QUICK_LOOP_COUNT 20
#include <linux/devfs_fs_kernel.h>
#include <asm/io.h>
-
-#define MAJOR_NR OPTICS_CDROM_MAJOR
-#define QUEUE (&opt_queue)
#include <linux/blk.h>
#include <linux/cdrom.h>
#include <asm/uaccess.h>
+#define MAJOR_NR OPTICS_CDROM_MAJOR
+#define QUEUE (&opt_queue)
+#define CURRENT elv_next_request(&opt_queue)
+
\f
/* Debug support */
#include <asm/system.h>
#include <asm/io.h>
#include <asm/uaccess.h>
-
-#define MAJOR_NR SANYO_CDROM_MAJOR
-#define QUEUE (&sjcd_queue)
#include <linux/blk.h>
#include "sjcd.h"
static int sjcd_present = 0;
static struct request_queue sjcd_queue;
+#define MAJOR_NR SANYO_CDROM_MAJOR
+#define QUEUE (&sjcd_queue)
+#define CURRENT elv_next_request(&sjcd_queue)
+
#define SJCD_BUF_SIZ 32 /* cdr-h94a has internal 64K buffer */
/*
#include <asm/system.h>
#include <asm/io.h>
#include <asm/uaccess.h>
-
-#define MAJOR_NR HD_MAJOR
-#define QUEUE (&hd_queue)
#include <linux/blk.h>
#ifdef __arm__
static spinlock_t hd_lock = SPIN_LOCK_UNLOCKED;
static struct request_queue hd_queue;
+#define MAJOR_NR HD_MAJOR
+#define QUEUE (&hd_queue)
+#define CURRENT elv_next_request(&hd_queue)
+
#define TIMEOUT_VALUE (6*HZ)
#define HD_DELAY 0
static int reset;
static int hd_error;
-#define SUBSECTOR(block) (CURRENT->current_nr_sectors > 0)
-
/*
* This struct defines the HD's and their types.
*/
}
}
if (bdev->bd_contains == bdev) {
- if (!bdev->bd_openers)
+ if (!bdev->bd_openers) {
bdev->bd_disk = disk;
- if (!bdev->bd_queue) {
- if (disk->queue)
- bdev->bd_queue = disk->queue;
- else {
- struct blk_dev_struct *p = blk_dev + major(dev);
- bdev->bd_queue = &p->request_queue;
- if (p->queue)
- bdev->bd_queue = p->queue(dev);
- }
+ bdev->bd_queue = disk->queue;
}
if (bdev->bd_op->open) {
ret = bdev->bd_op->open(inode, file);
elv_remove_request(req->q, req);
}
-#if defined(MAJOR_NR) || defined(IDE_DRIVER)
-#if (MAJOR_NR != SCSI_TAPE_MAJOR) && (MAJOR_NR != OSST_MAJOR)
-#if !defined(IDE_DRIVER)
-
-#ifndef QUEUE
-# define QUEUE (&blk_dev[MAJOR_NR].request_queue)
-#endif
-#ifndef CURRENT
-# define CURRENT elv_next_request(QUEUE)
-#endif
-
-#endif /* !defined(IDE_DRIVER) */
-
/*
* If we have our own end_request, we do not want to include this mess
*/
end_that_request_last(req);
}
#endif /* !LOCAL_END_REQUEST */
-#endif /* (MAJOR_NR != SCSI_TAPE_MAJOR) */
-#endif /* defined(MAJOR_NR) || defined(IDE_DRIVER) */
#endif /* _BLK_H */
if ((rq->bio)) \
for (bio = (rq)->bio; bio; bio = bio->bi_next)
-struct blk_dev_struct {
- /*
- * queue_proc has to be atomic
- */
- request_queue_t request_queue;
- queue_proc *queue;
- void *data;
-};
-
struct sec_size {
unsigned block_size;
unsigned block_size_bits;
};
-/*
- * Used to indicate the default queue for drivers that don't bother
- * to implement multiple queues. We have this access macro here
- * so as to eliminate the need for each and every block device
- * driver to know about the internal structure of blk_dev[].
- */
-#define BLK_DEFAULT_QUEUE(_MAJOR) &blk_dev[_MAJOR].request_queue
-
-extern struct sec_size * blk_sec[MAX_BLKDEV];
-extern struct blk_dev_struct blk_dev[MAX_BLKDEV];
extern void register_disk(struct gendisk *dev);
extern void generic_make_request(struct bio *bio);
-extern inline request_queue_t *bdev_get_queue(struct block_device *bdev);
extern void blk_put_request(struct request *);
extern void blk_attempt_remerge(request_queue_t *, struct request *);
extern void __blk_attempt_remerge(request_queue_t *, struct request *);
extern void blk_stop_queue(request_queue_t *q);
extern void __blk_stop_queue(request_queue_t *q);
+static inline request_queue_t *bdev_get_queue(struct block_device *bdev)
+{
+ return bdev->bd_queue;
+}
+
/*
* get ready for proper ref counting
*/
EXPORT_SYMBOL(tty_std_termios);
/* block device driver support */
-EXPORT_SYMBOL(blk_dev);
EXPORT_SYMBOL(bdev_read_only);
EXPORT_SYMBOL(set_device_ro);
EXPORT_SYMBOL(bmap);