Commit 90092a57 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by James Bottomley

[PATCH] misc cleanups for sr

bring it back in line with sd:
* get rid of typedefs where possible
* tab-align all credits entries
* line-wrap after 80 characters
* use C99-initializers
parent 018bcdc5
...@@ -7,34 +7,34 @@ ...@@ -7,34 +7,34 @@
* Linux scsi disk driver by * Linux scsi disk driver by
* Drew Eckhardt <drew@colorado.edu> * Drew Eckhardt <drew@colorado.edu>
* *
* Modified by Eric Youngdale ericy@andante.org to * Modified by Eric Youngdale ericy@andante.org to
* add scatter-gather, multiple outstanding request, and other * add scatter-gather, multiple outstanding request, and other
* enhancements. * enhancements.
* *
* Modified by Eric Youngdale eric@andante.org to support loadable * Modified by Eric Youngdale eric@andante.org to support loadable
* low-level scsi drivers. * low-level scsi drivers.
* *
* Modified by Thomas Quinot thomas@melchior.cuivre.fdn.fr to * Modified by Thomas Quinot thomas@melchior.cuivre.fdn.fr to
* provide auto-eject. * provide auto-eject.
* *
* Modified by Gerd Knorr <kraxel@cs.tu-berlin.de> to support the * Modified by Gerd Knorr <kraxel@cs.tu-berlin.de> to support the
* generic cdrom interface * generic cdrom interface
* *
* Modified by Jens Axboe <axboe@suse.de> - Uniform sr_packet() * Modified by Jens Axboe <axboe@suse.de> - Uniform sr_packet()
* interface, capabilities probe additions, ioctl cleanups, etc. * interface, capabilities probe additions, ioctl cleanups, etc.
* *
* Modified by Richard Gooch <rgooch@atnf.csiro.au> to support devfs * Modified by Richard Gooch <rgooch@atnf.csiro.au> to support devfs
* *
* Modified by Jens Axboe <axboe@suse.de> - support DVD-RAM * Modified by Jens Axboe <axboe@suse.de> - support DVD-RAM
* transparently and loose the GHOST hack * transparently and loose the GHOST hack
*
* Modified by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
* check resource allocation in sr_init and some cleanups
* *
* Modified by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
* check resource allocation in sr_init and some cleanups
*/ */
#include <linux/module.h> #define MAJOR_NR SCSI_CDROM_MAJOR
#include <linux/module.h>
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/sched.h> #include <linux/sched.h>
...@@ -45,29 +45,32 @@ ...@@ -45,29 +45,32 @@
#include <linux/cdrom.h> #include <linux/cdrom.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/system.h> #include <linux/blk.h>
#include <asm/io.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#define MAJOR_NR SCSI_CDROM_MAJOR
#define LOCAL_END_REQUEST
#include <linux/blk.h>
#include "scsi.h" #include "scsi.h"
#include "hosts.h" #include "hosts.h"
#include "sr.h"
#include <scsi/scsi_ioctl.h> /* For the door lock/unlock commands */ #include <scsi/scsi_ioctl.h> /* For the door lock/unlock commands */
#include "sr.h"
MODULE_PARM(xa_test, "i"); /* see sr_ioctl.c */ MODULE_PARM(xa_test, "i"); /* see sr_ioctl.c */
#define MAX_RETRIES 3 #define MAX_RETRIES 3
#define SR_TIMEOUT (30 * HZ) #define SR_TIMEOUT (30 * HZ)
#define SR_CAPABILITIES \
(CDC_CLOSE_TRAY|CDC_OPEN_TRAY|CDC_LOCK|CDC_SELECT_SPEED| \
CDC_SELECT_DISC|CDC_MULTI_SESSION|CDC_MCN|CDC_MEDIA_CHANGED| \
CDC_PLAY_AUDIO|CDC_RESET|CDC_IOCTLS|CDC_DRIVE_STATUS| \
CDC_CD_R|CDC_CD_RW|CDC_DVD|CDC_DVD_R|CDC_GENERIC_PACKET)
static int sr_init(void); static int sr_init(void);
static int sr_attach(Scsi_Device *); static int sr_attach(struct scsi_device *);
static int sr_detect(Scsi_Device *); static int sr_detect(struct scsi_device *);
static void sr_detach(Scsi_Device *); static void sr_detach(struct scsi_device *);
static int sr_init_command(Scsi_Cmnd *); static int sr_init_command(struct scsi_cmnd *);
static struct Scsi_Device_Template sr_template = { static struct Scsi_Device_Template sr_template = {
.module = THIS_MODULE, .module = THIS_MODULE,
...@@ -83,19 +86,19 @@ static struct Scsi_Device_Template sr_template = { ...@@ -83,19 +86,19 @@ static struct Scsi_Device_Template sr_template = {
.init_command = sr_init_command .init_command = sr_init_command
}; };
static Scsi_CD *scsi_CDs; static struct scsi_cd *scsi_CDs;
static int sr_open(struct cdrom_device_info *, int); static int sr_open(struct cdrom_device_info *, int);
static void get_sectorsize(Scsi_CD *); static void get_sectorsize(struct scsi_cd *);
static void get_capabilities(Scsi_CD *); static void get_capabilities(struct scsi_cd *);
static int sr_init_one(Scsi_CD *, int); static int sr_init_one(struct scsi_cd *, int);
static int sr_media_change(struct cdrom_device_info *, int); static int sr_media_change(struct cdrom_device_info *, int);
static int sr_packet(struct cdrom_device_info *, struct cdrom_generic_command *); static int sr_packet(struct cdrom_device_info *, struct cdrom_generic_command *);
static void sr_release(struct cdrom_device_info *cdi) static void sr_release(struct cdrom_device_info *cdi)
{ {
Scsi_CD *cd = cdi->handle; struct scsi_cd *cd = cdi->handle;
if (cd->device->sector_size > 2048) if (cd->device->sector_size > 2048)
sr_set_blocklength(cd, 2048); sr_set_blocklength(cd, 2048);
...@@ -106,28 +109,21 @@ static void sr_release(struct cdrom_device_info *cdi) ...@@ -106,28 +109,21 @@ static void sr_release(struct cdrom_device_info *cdi)
__MOD_DEC_USE_COUNT(sr_template.module); __MOD_DEC_USE_COUNT(sr_template.module);
} }
static struct cdrom_device_ops sr_dops = static struct cdrom_device_ops sr_dops = {
{ .open = sr_open,
open: sr_open, .release = sr_release,
release: sr_release, .drive_status = sr_drive_status,
drive_status: sr_drive_status, .media_changed = sr_media_change,
media_changed: sr_media_change, .tray_move = sr_tray_move,
tray_move: sr_tray_move, .lock_door = sr_lock_door,
lock_door: sr_lock_door, .select_speed = sr_select_speed,
select_speed: sr_select_speed, .get_last_session = sr_get_last_session,
get_last_session: sr_get_last_session, .get_mcn = sr_get_mcn,
get_mcn: sr_get_mcn, .reset = sr_reset,
reset: sr_reset, .audio_ioctl = sr_audio_ioctl,
audio_ioctl: sr_audio_ioctl, .dev_ioctl = sr_dev_ioctl,
dev_ioctl: sr_dev_ioctl, .capability = SR_CAPABILITIES,
capability: CDC_CLOSE_TRAY | CDC_OPEN_TRAY | CDC_LOCK | .generic_packet = sr_packet,
CDC_SELECT_SPEED | CDC_SELECT_DISC |
CDC_MULTI_SESSION | CDC_MCN |
CDC_MEDIA_CHANGED | CDC_PLAY_AUDIO |
CDC_RESET | CDC_IOCTLS | CDC_DRIVE_STATUS |
CDC_CD_R | CDC_CD_RW | CDC_DVD | CDC_DVD_R |
CDC_DVD_RAM | CDC_GENERIC_PACKET,
generic_packet: sr_packet,
}; };
/* /*
...@@ -142,7 +138,7 @@ static struct cdrom_device_ops sr_dops = ...@@ -142,7 +138,7 @@ static struct cdrom_device_ops sr_dops =
int sr_media_change(struct cdrom_device_info *cdi, int slot) int sr_media_change(struct cdrom_device_info *cdi, int slot)
{ {
Scsi_CD *cd = cdi->handle; struct scsi_cd *cd = cdi->handle;
int retval; int retval;
if (CDSL_CURRENT != slot) { if (CDSL_CURRENT != slot) {
...@@ -183,28 +179,29 @@ int sr_media_change(struct cdrom_device_info *cdi, int slot) ...@@ -183,28 +179,29 @@ int sr_media_change(struct cdrom_device_info *cdi, int slot)
} }
/* /*
* rw_intr is the interrupt routine for the device driver. It will be notified on the * rw_intr is the interrupt routine for the device driver.
* end of a SCSI read / write, and will take on of several actions based on success or failure. *
* It will be notified on the end of a SCSI read / write, and will take on
* of several actions based on success or failure.
*/ */
static void rw_intr(struct scsi_cmnd * SCpnt)
static void rw_intr(Scsi_Cmnd * SCpnt)
{ {
int result = SCpnt->result; int result = SCpnt->result;
int this_count = SCpnt->bufflen >> 9; int this_count = SCpnt->bufflen >> 9;
int good_sectors = (result == 0 ? this_count : 0); int good_sectors = (result == 0 ? this_count : 0);
int block_sectors = 0; int block_sectors = 0;
Scsi_CD *cd = SCpnt->request->rq_disk->private_data; struct scsi_cd *cd = SCpnt->request->rq_disk->private_data;
#ifdef DEBUG #ifdef DEBUG
printk("sr.c done: %x %p\n", result, SCpnt->request->bh->b_data); printk("sr.c done: %x %p\n", result, SCpnt->request->bh->b_data);
#endif #endif
/* /*
Handle MEDIUM ERRORs or VOLUME OVERFLOWs that indicate partial success. * Handle MEDIUM ERRORs or VOLUME OVERFLOWs that indicate partial
Since this is a relatively rare error condition, no care is taken to * success. Since this is a relatively rare error condition, no
avoid unnecessary additional work such as memcpy's that could be avoided. * care is taken to avoid unnecessary additional work such as
* memcpy's that could be avoided.
*/ */
if (driver_byte(result) != 0 && /* An error occurred */ if (driver_byte(result) != 0 && /* An error occurred */
SCpnt->sense_buffer[0] == 0xF0 && /* Sense data is valid */ SCpnt->sense_buffer[0] == 0xF0 && /* Sense data is valid */
(SCpnt->sense_buffer[2] == MEDIUM_ERROR || (SCpnt->sense_buffer[2] == MEDIUM_ERROR ||
...@@ -243,15 +240,17 @@ static void rw_intr(Scsi_Cmnd * SCpnt) ...@@ -243,15 +240,17 @@ static void rw_intr(Scsi_Cmnd * SCpnt)
scsi_io_completion(SCpnt, good_sectors, block_sectors); scsi_io_completion(SCpnt, good_sectors, block_sectors);
} }
static int sr_init_command(Scsi_Cmnd * SCpnt) static int sr_init_command(struct scsi_cmnd * SCpnt)
{ {
int block=0, this_count, s_size, timeout = SR_TIMEOUT; int block=0, this_count, s_size, timeout = SR_TIMEOUT;
Scsi_CD *cd = SCpnt->request->rq_disk->private_data; struct scsi_cd *cd = SCpnt->request->rq_disk->private_data;
SCSI_LOG_HLQUEUE(1, printk("Doing sr request, dev = %s, block = %d\n", cd->disk->disk_name, block)); SCSI_LOG_HLQUEUE(1, printk("Doing sr request, dev = %s, block = %d\n",
cd->disk->disk_name, block));
if (!cd->device || !cd->device->online) { if (!cd->device || !cd->device->online) {
SCSI_LOG_HLQUEUE(2, printk("Finishing %ld sectors\n", SCpnt->request->nr_sectors)); SCSI_LOG_HLQUEUE(2, printk("Finishing %ld sectors\n",
SCpnt->request->nr_sectors));
SCSI_LOG_HLQUEUE(2, printk("Retry with 0x%p\n", SCpnt)); SCSI_LOG_HLQUEUE(2, printk("Retry with 0x%p\n", SCpnt));
return 0; return 0;
} }
...@@ -326,7 +325,8 @@ static int sr_init_command(Scsi_Cmnd * SCpnt) ...@@ -326,7 +325,8 @@ static int sr_init_command(Scsi_Cmnd * SCpnt)
/* /*
* request doesn't start on hw block boundary, add scatter pads * request doesn't start on hw block boundary, add scatter pads
*/ */
if (((unsigned int)SCpnt->request->sector % (s_size >> 9)) || (SCpnt->request_bufflen % s_size)) { if (((unsigned int)SCpnt->request->sector % (s_size >> 9)) ||
(SCpnt->request_bufflen % s_size)) {
printk("sr: unaligned transfer\n"); printk("sr: unaligned transfer\n");
return 0; return 0;
} }
...@@ -335,9 +335,10 @@ static int sr_init_command(Scsi_Cmnd * SCpnt) ...@@ -335,9 +335,10 @@ static int sr_init_command(Scsi_Cmnd * SCpnt)
SCSI_LOG_HLQUEUE(2, printk("%s : %s %d/%ld 512 byte blocks.\n", SCSI_LOG_HLQUEUE(2, printk("%s : %s %d/%ld 512 byte blocks.\n",
cd->cdi.name, cd->cdi.name,
(rq_data_dir(SCpnt->request) == WRITE) ? "writing" : "reading", (rq_data_dir(SCpnt->request) == WRITE) ?
this_count, SCpnt->request->nr_sectors)); "writing" : "reading",
this_count, SCpnt->request->nr_sectors));
SCpnt->cmnd[1] = 0; SCpnt->cmnd[1] = 0;
block = (unsigned int)SCpnt->request->sector / (s_size >> 9); block = (unsigned int)SCpnt->request->sector / (s_size >> 9);
...@@ -392,26 +393,26 @@ static int sr_init_command(Scsi_Cmnd * SCpnt) ...@@ -392,26 +393,26 @@ static int sr_init_command(Scsi_Cmnd * SCpnt)
static int sr_block_open(struct inode *inode, struct file *file) static int sr_block_open(struct inode *inode, struct file *file)
{ {
Scsi_CD *cd = inode->i_bdev->bd_disk->private_data; struct scsi_cd *cd = inode->i_bdev->bd_disk->private_data;
return cdrom_open(&cd->cdi, inode, file); return cdrom_open(&cd->cdi, inode, file);
} }
static int sr_block_release(struct inode *inode, struct file *file) static int sr_block_release(struct inode *inode, struct file *file)
{ {
Scsi_CD *cd = inode->i_bdev->bd_disk->private_data; struct scsi_cd *cd = inode->i_bdev->bd_disk->private_data;
return cdrom_release(&cd->cdi, file); return cdrom_release(&cd->cdi, file);
} }
static int sr_block_ioctl(struct inode *inode, struct file *file, unsigned cmd, static int sr_block_ioctl(struct inode *inode, struct file *file, unsigned cmd,
unsigned long arg) unsigned long arg)
{ {
Scsi_CD *cd = inode->i_bdev->bd_disk->private_data; struct scsi_cd *cd = inode->i_bdev->bd_disk->private_data;
return cdrom_ioctl(&cd->cdi, inode, cmd, arg); return cdrom_ioctl(&cd->cdi, inode, cmd, arg);
} }
static int sr_block_media_changed(struct gendisk *disk) static int sr_block_media_changed(struct gendisk *disk)
{ {
Scsi_CD *cd = disk->private_data; struct scsi_cd *cd = disk->private_data;
return cdrom_media_changed(&cd->cdi); return cdrom_media_changed(&cd->cdi);
} }
...@@ -426,7 +427,7 @@ struct block_device_operations sr_bdops = ...@@ -426,7 +427,7 @@ struct block_device_operations sr_bdops =
static int sr_open(struct cdrom_device_info *cdi, int purpose) static int sr_open(struct cdrom_device_info *cdi, int purpose)
{ {
Scsi_CD *cd = cdi->handle; struct scsi_cd *cd = cdi->handle;
if (!cd->device) if (!cd->device)
return -ENXIO; /* No such device */ return -ENXIO; /* No such device */
...@@ -454,7 +455,7 @@ static int sr_open(struct cdrom_device_info *cdi, int purpose) ...@@ -454,7 +455,7 @@ static int sr_open(struct cdrom_device_info *cdi, int purpose)
return 0; return 0;
} }
static int sr_detect(Scsi_Device * SDp) static int sr_detect(struct scsi_device * SDp)
{ {
if (SDp->type != TYPE_ROM && SDp->type != TYPE_WORM) if (SDp->type != TYPE_ROM && SDp->type != TYPE_WORM)
...@@ -463,9 +464,9 @@ static int sr_detect(Scsi_Device * SDp) ...@@ -463,9 +464,9 @@ static int sr_detect(Scsi_Device * SDp)
return 1; return 1;
} }
static int sr_attach(Scsi_Device * SDp) static int sr_attach(struct scsi_device * SDp)
{ {
Scsi_CD *cpnt; struct scsi_cd *cpnt;
int i; int i;
if (SDp->type != TYPE_ROM && SDp->type != TYPE_WORM) if (SDp->type != TYPE_ROM && SDp->type != TYPE_WORM)
...@@ -491,7 +492,8 @@ static int sr_attach(Scsi_Device * SDp) ...@@ -491,7 +492,8 @@ static int sr_attach(Scsi_Device * SDp)
panic("scsi_devices corrupt (sr)"); panic("scsi_devices corrupt (sr)");
printk("Attached scsi CD-ROM %s at scsi%d, channel %d, id %d, lun %d\n", printk("Attached scsi CD-ROM %s at scsi%d, channel %d, id %d, lun %d\n",
scsi_CDs[i].cdi.name, SDp->host->host_no, SDp->channel, SDp->id, SDp->lun); scsi_CDs[i].cdi.name, SDp->host->host_no, SDp->channel,
SDp->id, SDp->lun);
return 0; return 0;
fail: fail:
...@@ -500,13 +502,13 @@ static int sr_attach(Scsi_Device * SDp) ...@@ -500,13 +502,13 @@ static int sr_attach(Scsi_Device * SDp)
} }
static void get_sectorsize(Scsi_CD *cd) static void get_sectorsize(struct scsi_cd *cd)
{ {
unsigned char cmd[10]; unsigned char cmd[10];
unsigned char *buffer; unsigned char *buffer;
int the_result, retries = 3; int the_result, retries = 3;
int sector_size; int sector_size;
Scsi_Request *SRpnt = NULL; struct scsi_request *SRpnt = NULL;
request_queue_t *queue; request_queue_t *queue;
buffer = kmalloc(512, GFP_DMA); buffer = kmalloc(512, GFP_DMA);
...@@ -519,13 +521,13 @@ static void get_sectorsize(Scsi_CD *cd) ...@@ -519,13 +521,13 @@ static void get_sectorsize(Scsi_CD *cd)
do { do {
cmd[0] = READ_CAPACITY; cmd[0] = READ_CAPACITY;
memset((void *) &cmd[1], 0, 9); memset((void *) &cmd[1], 0, 9);
SRpnt->sr_request->rq_status = RQ_SCSI_BUSY; /* Mark as really busy */ /* Mark as really busy */
SRpnt->sr_request->rq_status = RQ_SCSI_BUSY;
SRpnt->sr_cmd_len = 0; SRpnt->sr_cmd_len = 0;
memset(buffer, 0, 8); memset(buffer, 0, 8);
/* Do the command and wait.. */ /* Do the command and wait.. */
SRpnt->sr_data_direction = SCSI_DATA_READ; SRpnt->sr_data_direction = SCSI_DATA_READ;
scsi_wait_req(SRpnt, (void *) cmd, (void *) buffer, scsi_wait_req(SRpnt, (void *) cmd, (void *) buffer,
8, SR_TIMEOUT, MAX_RETRIES); 8, SR_TIMEOUT, MAX_RETRIES);
...@@ -603,7 +605,7 @@ static void get_sectorsize(Scsi_CD *cd) ...@@ -603,7 +605,7 @@ static void get_sectorsize(Scsi_CD *cd)
goto out; goto out;
} }
void get_capabilities(Scsi_CD *cd) void get_capabilities(struct scsi_cd *cd)
{ {
struct cdrom_generic_command cgc; struct cdrom_generic_command cgc;
unsigned char *buffer; unsigned char *buffer;
...@@ -656,11 +658,11 @@ void get_capabilities(Scsi_CD *cd) ...@@ -656,11 +658,11 @@ void get_capabilities(Scsi_CD *cd)
printk("%s: scsi3-mmc drive: %dx/%dx %s%s%s%s%s%s\n", cd->cdi.name, printk("%s: scsi3-mmc drive: %dx/%dx %s%s%s%s%s%s\n", cd->cdi.name,
((buffer[n + 14] << 8) + buffer[n + 15]) / 176, ((buffer[n + 14] << 8) + buffer[n + 15]) / 176,
cd->cdi.speed, cd->cdi.speed,
buffer[n + 3] & 0x01 ? "writer " : "", /* CD Writer */ buffer[n + 3] & 0x01 ? "writer " : "", /* CD Writer */
buffer[n + 3] & 0x20 ? "dvd-ram " : "", buffer[n + 3] & 0x20 ? "dvd-ram " : "",
buffer[n + 2] & 0x02 ? "cd/rw " : "", /* can read rewriteable */ buffer[n + 2] & 0x02 ? "cd/rw " : "", /* can read rewriteable */
buffer[n + 4] & 0x20 ? "xa/form2 " : "", /* can read xa/from2 */ buffer[n + 4] & 0x20 ? "xa/form2 " : "", /* can read xa/from2 */
buffer[n + 5] & 0x01 ? "cdda " : "", /* can read audio data */ buffer[n + 5] & 0x01 ? "cdda " : "", /* can read audio data */
loadmech[buffer[n + 6] >> 5]); loadmech[buffer[n + 6] >> 5]);
if ((buffer[n + 6] >> 5) == 0) if ((buffer[n + 6] >> 5) == 0)
/* caddy drives can't close tray... */ /* caddy drives can't close tray... */
...@@ -704,7 +706,8 @@ void get_capabilities(Scsi_CD *cd) ...@@ -704,7 +706,8 @@ void get_capabilities(Scsi_CD *cd)
* sr_packet() is the entry point for the generic commands generated * sr_packet() is the entry point for the generic commands generated
* by the Uniform CD-ROM layer. * by the Uniform CD-ROM layer.
*/ */
static int sr_packet(struct cdrom_device_info *cdi, struct cdrom_generic_command *cgc) static int sr_packet(struct cdrom_device_info *cdi,
struct cdrom_generic_command *cgc)
{ {
if (cgc->timeout <= 0) if (cgc->timeout <= 0)
cgc->timeout = IOCTL_TIMEOUT; cgc->timeout = IOCTL_TIMEOUT;
...@@ -724,7 +727,8 @@ static int sr_init() ...@@ -724,7 +727,8 @@ static int sr_init()
if (!sr_registered) { if (!sr_registered) {
if (register_blkdev(MAJOR_NR, "sr", &sr_bdops)) { if (register_blkdev(MAJOR_NR, "sr", &sr_bdops)) {
printk("Unable to get major %d for SCSI-CD\n", MAJOR_NR); printk("Unable to get major %d for SCSI-CD\n",
MAJOR_NR);
return 1; return 1;
} }
sr_registered++; sr_registered++;
...@@ -733,10 +737,10 @@ static int sr_init() ...@@ -733,10 +737,10 @@ static int sr_init()
return 0; return 0;
sr_template.dev_max = sr_template.dev_noticed + SR_EXTRA_DEVS; sr_template.dev_max = sr_template.dev_noticed + SR_EXTRA_DEVS;
scsi_CDs = kmalloc(sr_template.dev_max * sizeof(Scsi_CD), GFP_ATOMIC); scsi_CDs = kmalloc(sr_template.dev_max * sizeof(struct scsi_cd), GFP_ATOMIC);
if (!scsi_CDs) if (!scsi_CDs)
goto cleanup_dev; goto cleanup_dev;
memset(scsi_CDs, 0, sr_template.dev_max * sizeof(Scsi_CD)); memset(scsi_CDs, 0, sr_template.dev_max * sizeof(struct scsi_cd));
for (i = 0; i < sr_template.dev_max; i++) for (i = 0; i < sr_template.dev_max; i++)
sprintf(scsi_CDs[i].cdi.name, "sr%d", i); sprintf(scsi_CDs[i].cdi.name, "sr%d", i);
return 0; return 0;
...@@ -747,7 +751,7 @@ static int sr_init() ...@@ -747,7 +751,7 @@ static int sr_init()
return 1; return 1;
} }
static int sr_init_one(Scsi_CD *cd, int first_minor) static int sr_init_one(struct scsi_cd *cd, int first_minor)
{ {
struct gendisk *disk; struct gendisk *disk;
...@@ -799,9 +803,9 @@ static int sr_init_one(Scsi_CD *cd, int first_minor) ...@@ -799,9 +803,9 @@ static int sr_init_one(Scsi_CD *cd, int first_minor)
return 0; return 0;
} }
static void sr_detach(Scsi_Device * SDp) static void sr_detach(struct scsi_device * SDp)
{ {
Scsi_CD *cpnt; struct scsi_cd *cpnt;
int i; int i;
for (cpnt = scsi_CDs, i = 0; i < sr_template.dev_max; i++, cpnt++) { for (cpnt = scsi_CDs, i = 0; i < sr_template.dev_max; i++, cpnt++) {
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
/* In fact, it is very slow if it has to spin up first */ /* In fact, it is very slow if it has to spin up first */
#define IOCTL_TIMEOUT 30*HZ #define IOCTL_TIMEOUT 30*HZ
typedef struct { typedef struct scsi_cd {
unsigned capacity; /* size in blocks */ unsigned capacity; /* size in blocks */
Scsi_Device *device; Scsi_Device *device;
unsigned int vendor; /* vendor code, see sr_vendor.c */ unsigned int vendor; /* vendor code, see sr_vendor.c */
......
...@@ -5,15 +5,14 @@ ...@@ -5,15 +5,14 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/buffer_head.h> /* for invalidate_buffers() */
#include <linux/blk.h> #include <linux/blk.h>
#include <linux/blkpg.h> #include <linux/blkpg.h>
#include <linux/cdrom.h>
#include "scsi.h" #include "scsi.h"
#include "hosts.h" #include "hosts.h"
#include <scsi/scsi_ioctl.h> #include <scsi/scsi_ioctl.h>
#include <linux/cdrom.h>
#include "sr.h" #include "sr.h"
#if 0 #if 0
...@@ -76,8 +75,8 @@ static int sr_fake_playtrkind(struct cdrom_device_info *cdi, struct cdrom_ti *ti ...@@ -76,8 +75,8 @@ static int sr_fake_playtrkind(struct cdrom_device_info *cdi, struct cdrom_ti *ti
int sr_do_ioctl(Scsi_CD *cd, struct cdrom_generic_command *cgc) int sr_do_ioctl(Scsi_CD *cd, struct cdrom_generic_command *cgc)
{ {
Scsi_Request *SRpnt; struct scsi_request *SRpnt;
Scsi_Device *SDev; struct scsi_device *SDev;
struct request *req; struct request *req;
int result, err = 0, retries = 0; int result, err = 0, retries = 0;
char *bounce_buffer; char *bounce_buffer;
...@@ -555,21 +554,3 @@ int sr_dev_ioctl(struct cdrom_device_info *cdi, ...@@ -555,21 +554,3 @@ int sr_dev_ioctl(struct cdrom_device_info *cdi,
Scsi_CD *cd = cdi->handle; Scsi_CD *cd = cdi->handle;
return scsi_ioctl(cd->device, cmd, (void *)arg); return scsi_ioctl(cd->device, cmd, (void *)arg);
} }
/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
* adjust the settings for this buffer only. This must remain at the end
* of the file.
* ---------------------------------------------------------------------------
* Local variables:
* c-indent-level: 4
* c-brace-imaginary-offset: 0
* c-brace-offset: -4
* c-argdecl-indent: 4
* c-label-offset: -4
* c-continued-statement-offset: 4
* c-continued-brace-offset: 0
* tab-width: 8
* End:
*/
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment