Loading drivers/scsi/atari_NCR5380.c +60 −85 Original line number Original line Diff line number Diff line Loading @@ -719,119 +719,94 @@ static void __init NCR5380_print_options(struct Scsi_Host *instance) * Inputs : instance, pointer to this instance. * Inputs : instance, pointer to this instance. */ */ static void NCR5380_print_status(struct Scsi_Host *instance) static void lprint_Scsi_Cmnd(Scsi_Cmnd *cmd) { { char *pr_bfr; int i, s; char *start; unsigned char *command; int len; printk("scsi%d: destination target %d, lun %d\n", H_NO(cmd), cmd->device->id, cmd->device->lun); NCR_PRINT(NDEBUG_ANY); printk(KERN_CONT " command = "); NCR_PRINT_PHASE(NDEBUG_ANY); command = cmd->cmnd; printk(KERN_CONT "%2d (0x%02x)", command[0], command[0]); pr_bfr = (char *)__get_free_page(GFP_ATOMIC); for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i) if (!pr_bfr) { printk(KERN_CONT " %02x", command[i]); printk("NCR5380_print_status: no memory for print buffer\n"); printk("\n"); return; } len = NCR5380_proc_info(instance, pr_bfr, &start, 0, PAGE_SIZE, 0); pr_bfr[len] = 0; printk("\n%s\n", pr_bfr); free_page((unsigned long)pr_bfr); } } static void NCR5380_print_status(struct Scsi_Host *instance) /******************************************/ /* * /proc/scsi/[dtc pas16 t128 generic]/[0-ASC_NUM_BOARD_SUPPORTED] * * *buffer: I/O buffer * **start: if inout == FALSE pointer into buffer where user read should start * offset: current offset * length: length of buffer * hostno: Scsi_Host host_no * inout: TRUE - user is writing; FALSE - user is reading * * Return the number of bytes read from or written */ #undef SPRINTF #define SPRINTF(fmt,args...) \ do { \ if (pos + strlen(fmt) + 20 /* slop */ < buffer + length) \ pos += sprintf(pos, fmt , ## args); \ } while(0) static char *lprint_Scsi_Cmnd(Scsi_Cmnd *cmd, char *pos, char *buffer, int length); static int NCR5380_proc_info(struct Scsi_Host *instance, char *buffer, char **start, off_t offset, int length, int inout) { { char *pos = buffer; struct NCR5380_hostdata *hostdata; struct NCR5380_hostdata *hostdata; Scsi_Cmnd *ptr; Scsi_Cmnd *ptr; unsigned long flags; unsigned long flags; off_t begin = 0; #define check_offset() \ NCR_PRINT(NDEBUG_ANY); do { \ NCR_PRINT_PHASE(NDEBUG_ANY); if (pos - buffer < offset - begin) { \ begin += pos - buffer; \ pos = buffer; \ } \ } while (0) hostdata = (struct NCR5380_hostdata *)instance->hostdata; hostdata = (struct NCR5380_hostdata *)instance->hostdata; if (inout) /* Has data been written to the file ? */ printk("\nNCR5380 core release=%d.\n", NCR5380_PUBLIC_RELEASE); return -ENOSYS; /* Currently this is a no-op */ SPRINTF("NCR5380 core release=%d.\n", NCR5380_PUBLIC_RELEASE); check_offset(); local_irq_save(flags); local_irq_save(flags); SPRINTF("NCR5380: coroutine is%s running.\n", printk("NCR5380: coroutine is%s running.\n", main_running ? "" : "n't"); main_running ? "" : "n't"); check_offset(); if (!hostdata->connected) if (!hostdata->connected) SPRINTF("scsi%d: no currently connected command\n", HOSTNO); printk("scsi%d: no currently connected command\n", HOSTNO); else else pos = lprint_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected, lprint_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected); pos, buffer, length); printk("scsi%d: issue_queue\n", HOSTNO); SPRINTF("scsi%d: issue_queue\n", HOSTNO); for (ptr = (Scsi_Cmnd *)hostdata->issue_queue; ptr; ptr = NEXT(ptr)) check_offset(); lprint_Scsi_Cmnd(ptr); for (ptr = (Scsi_Cmnd *)hostdata->issue_queue; ptr; ptr = NEXT(ptr)) { pos = lprint_Scsi_Cmnd(ptr, pos, buffer, length); check_offset(); } SPRINTF("scsi%d: disconnected_queue\n", HOSTNO); printk("scsi%d: disconnected_queue\n", HOSTNO); check_offset(); for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; ptr = NEXT(ptr)) { ptr = NEXT(ptr)) pos = lprint_Scsi_Cmnd(ptr, pos, buffer, length); lprint_Scsi_Cmnd(ptr); check_offset(); } local_irq_restore(flags); local_irq_restore(flags); *start = buffer + (offset - begin); printk("\n"); if (pos - buffer < offset - begin) return 0; else if (pos - buffer - (offset - begin) < length) return pos - buffer - (offset - begin); return length; } } static char *lprint_Scsi_Cmnd(Scsi_Cmnd *cmd, char *pos, char *buffer, int length) static void show_Scsi_Cmnd(Scsi_Cmnd *cmd, struct seq_file *m) { { int i, s; int i, s; unsigned char *command; unsigned char *command; SPRINTF("scsi%d: destination target %d, lun %d\n", seq_printf(m, "scsi%d: destination target %d, lun %d\n", H_NO(cmd), cmd->device->id, cmd->device->lun); H_NO(cmd), cmd->device->id, cmd->device->lun); SPRINTF(" command = "); seq_printf(m, " command = "); command = cmd->cmnd; command = cmd->cmnd; SPRINTF("%2d (0x%02x)", command[0], command[0]); seq_printf(m, "%2d (0x%02x)", command[0], command[0]); for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i) for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i) SPRINTF(" %02x", command[i]); seq_printf(m, " %02x", command[i]); SPRINTF("\n"); seq_printf(m, "\n"); return pos; } } static int NCR5380_show_info(struct seq_file *m, struct Scsi_Host *instance) { struct NCR5380_hostdata *hostdata; Scsi_Cmnd *ptr; unsigned long flags; hostdata = (struct NCR5380_hostdata *)instance->hostdata; seq_printf(m, "NCR5380 core release=%d.\n", NCR5380_PUBLIC_RELEASE); local_irq_save(flags); seq_printf(m, "NCR5380: coroutine is%s running.\n", main_running ? "" : "n't"); if (!hostdata->connected) seq_printf(m, "scsi%d: no currently connected command\n", HOSTNO); else show_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected, m); seq_printf(m, "scsi%d: issue_queue\n", HOSTNO); for (ptr = (Scsi_Cmnd *)hostdata->issue_queue; ptr; ptr = NEXT(ptr)) show_Scsi_Cmnd(ptr, m); seq_printf(m, "scsi%d: disconnected_queue\n", HOSTNO); for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; ptr = NEXT(ptr)) show_Scsi_Cmnd(ptr, m); local_irq_restore(flags); return 0; } /* /* * Function : void NCR5380_init (struct Scsi_Host *instance) * Function : void NCR5380_init (struct Scsi_Host *instance) Loading drivers/scsi/atari_scsi.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1100,7 +1100,7 @@ static void atari_scsi_falcon_reg_write(unsigned char reg, unsigned char value) #include "atari_NCR5380.c" #include "atari_NCR5380.c" static struct scsi_host_template driver_template = { static struct scsi_host_template driver_template = { .proc_info = atari_scsi_proc_info, .show_info = atari_scsi_show_info, .name = "Atari native SCSI", .name = "Atari native SCSI", .detect = atari_scsi_detect, .detect = atari_scsi_detect, .release = atari_scsi_release, .release = atari_scsi_release, Loading drivers/scsi/atari_scsi.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -47,7 +47,7 @@ #define NCR5380_intr atari_scsi_intr #define NCR5380_intr atari_scsi_intr #define NCR5380_queue_command atari_scsi_queue_command #define NCR5380_queue_command atari_scsi_queue_command #define NCR5380_abort atari_scsi_abort #define NCR5380_abort atari_scsi_abort #define NCR5380_proc_info atari_scsi_proc_info #define NCR5380_show_info atari_scsi_show_info #define NCR5380_dma_read_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 0) #define NCR5380_dma_read_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 0) #define NCR5380_dma_write_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 1) #define NCR5380_dma_write_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 1) #define NCR5380_dma_residual(inst) atari_scsi_dma_residual( inst ) #define NCR5380_dma_residual(inst) atari_scsi_dma_residual( inst ) Loading Loading
drivers/scsi/atari_NCR5380.c +60 −85 Original line number Original line Diff line number Diff line Loading @@ -719,119 +719,94 @@ static void __init NCR5380_print_options(struct Scsi_Host *instance) * Inputs : instance, pointer to this instance. * Inputs : instance, pointer to this instance. */ */ static void NCR5380_print_status(struct Scsi_Host *instance) static void lprint_Scsi_Cmnd(Scsi_Cmnd *cmd) { { char *pr_bfr; int i, s; char *start; unsigned char *command; int len; printk("scsi%d: destination target %d, lun %d\n", H_NO(cmd), cmd->device->id, cmd->device->lun); NCR_PRINT(NDEBUG_ANY); printk(KERN_CONT " command = "); NCR_PRINT_PHASE(NDEBUG_ANY); command = cmd->cmnd; printk(KERN_CONT "%2d (0x%02x)", command[0], command[0]); pr_bfr = (char *)__get_free_page(GFP_ATOMIC); for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i) if (!pr_bfr) { printk(KERN_CONT " %02x", command[i]); printk("NCR5380_print_status: no memory for print buffer\n"); printk("\n"); return; } len = NCR5380_proc_info(instance, pr_bfr, &start, 0, PAGE_SIZE, 0); pr_bfr[len] = 0; printk("\n%s\n", pr_bfr); free_page((unsigned long)pr_bfr); } } static void NCR5380_print_status(struct Scsi_Host *instance) /******************************************/ /* * /proc/scsi/[dtc pas16 t128 generic]/[0-ASC_NUM_BOARD_SUPPORTED] * * *buffer: I/O buffer * **start: if inout == FALSE pointer into buffer where user read should start * offset: current offset * length: length of buffer * hostno: Scsi_Host host_no * inout: TRUE - user is writing; FALSE - user is reading * * Return the number of bytes read from or written */ #undef SPRINTF #define SPRINTF(fmt,args...) \ do { \ if (pos + strlen(fmt) + 20 /* slop */ < buffer + length) \ pos += sprintf(pos, fmt , ## args); \ } while(0) static char *lprint_Scsi_Cmnd(Scsi_Cmnd *cmd, char *pos, char *buffer, int length); static int NCR5380_proc_info(struct Scsi_Host *instance, char *buffer, char **start, off_t offset, int length, int inout) { { char *pos = buffer; struct NCR5380_hostdata *hostdata; struct NCR5380_hostdata *hostdata; Scsi_Cmnd *ptr; Scsi_Cmnd *ptr; unsigned long flags; unsigned long flags; off_t begin = 0; #define check_offset() \ NCR_PRINT(NDEBUG_ANY); do { \ NCR_PRINT_PHASE(NDEBUG_ANY); if (pos - buffer < offset - begin) { \ begin += pos - buffer; \ pos = buffer; \ } \ } while (0) hostdata = (struct NCR5380_hostdata *)instance->hostdata; hostdata = (struct NCR5380_hostdata *)instance->hostdata; if (inout) /* Has data been written to the file ? */ printk("\nNCR5380 core release=%d.\n", NCR5380_PUBLIC_RELEASE); return -ENOSYS; /* Currently this is a no-op */ SPRINTF("NCR5380 core release=%d.\n", NCR5380_PUBLIC_RELEASE); check_offset(); local_irq_save(flags); local_irq_save(flags); SPRINTF("NCR5380: coroutine is%s running.\n", printk("NCR5380: coroutine is%s running.\n", main_running ? "" : "n't"); main_running ? "" : "n't"); check_offset(); if (!hostdata->connected) if (!hostdata->connected) SPRINTF("scsi%d: no currently connected command\n", HOSTNO); printk("scsi%d: no currently connected command\n", HOSTNO); else else pos = lprint_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected, lprint_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected); pos, buffer, length); printk("scsi%d: issue_queue\n", HOSTNO); SPRINTF("scsi%d: issue_queue\n", HOSTNO); for (ptr = (Scsi_Cmnd *)hostdata->issue_queue; ptr; ptr = NEXT(ptr)) check_offset(); lprint_Scsi_Cmnd(ptr); for (ptr = (Scsi_Cmnd *)hostdata->issue_queue; ptr; ptr = NEXT(ptr)) { pos = lprint_Scsi_Cmnd(ptr, pos, buffer, length); check_offset(); } SPRINTF("scsi%d: disconnected_queue\n", HOSTNO); printk("scsi%d: disconnected_queue\n", HOSTNO); check_offset(); for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; ptr = NEXT(ptr)) { ptr = NEXT(ptr)) pos = lprint_Scsi_Cmnd(ptr, pos, buffer, length); lprint_Scsi_Cmnd(ptr); check_offset(); } local_irq_restore(flags); local_irq_restore(flags); *start = buffer + (offset - begin); printk("\n"); if (pos - buffer < offset - begin) return 0; else if (pos - buffer - (offset - begin) < length) return pos - buffer - (offset - begin); return length; } } static char *lprint_Scsi_Cmnd(Scsi_Cmnd *cmd, char *pos, char *buffer, int length) static void show_Scsi_Cmnd(Scsi_Cmnd *cmd, struct seq_file *m) { { int i, s; int i, s; unsigned char *command; unsigned char *command; SPRINTF("scsi%d: destination target %d, lun %d\n", seq_printf(m, "scsi%d: destination target %d, lun %d\n", H_NO(cmd), cmd->device->id, cmd->device->lun); H_NO(cmd), cmd->device->id, cmd->device->lun); SPRINTF(" command = "); seq_printf(m, " command = "); command = cmd->cmnd; command = cmd->cmnd; SPRINTF("%2d (0x%02x)", command[0], command[0]); seq_printf(m, "%2d (0x%02x)", command[0], command[0]); for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i) for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i) SPRINTF(" %02x", command[i]); seq_printf(m, " %02x", command[i]); SPRINTF("\n"); seq_printf(m, "\n"); return pos; } } static int NCR5380_show_info(struct seq_file *m, struct Scsi_Host *instance) { struct NCR5380_hostdata *hostdata; Scsi_Cmnd *ptr; unsigned long flags; hostdata = (struct NCR5380_hostdata *)instance->hostdata; seq_printf(m, "NCR5380 core release=%d.\n", NCR5380_PUBLIC_RELEASE); local_irq_save(flags); seq_printf(m, "NCR5380: coroutine is%s running.\n", main_running ? "" : "n't"); if (!hostdata->connected) seq_printf(m, "scsi%d: no currently connected command\n", HOSTNO); else show_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected, m); seq_printf(m, "scsi%d: issue_queue\n", HOSTNO); for (ptr = (Scsi_Cmnd *)hostdata->issue_queue; ptr; ptr = NEXT(ptr)) show_Scsi_Cmnd(ptr, m); seq_printf(m, "scsi%d: disconnected_queue\n", HOSTNO); for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; ptr = NEXT(ptr)) show_Scsi_Cmnd(ptr, m); local_irq_restore(flags); return 0; } /* /* * Function : void NCR5380_init (struct Scsi_Host *instance) * Function : void NCR5380_init (struct Scsi_Host *instance) Loading
drivers/scsi/atari_scsi.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1100,7 +1100,7 @@ static void atari_scsi_falcon_reg_write(unsigned char reg, unsigned char value) #include "atari_NCR5380.c" #include "atari_NCR5380.c" static struct scsi_host_template driver_template = { static struct scsi_host_template driver_template = { .proc_info = atari_scsi_proc_info, .show_info = atari_scsi_show_info, .name = "Atari native SCSI", .name = "Atari native SCSI", .detect = atari_scsi_detect, .detect = atari_scsi_detect, .release = atari_scsi_release, .release = atari_scsi_release, Loading
drivers/scsi/atari_scsi.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -47,7 +47,7 @@ #define NCR5380_intr atari_scsi_intr #define NCR5380_intr atari_scsi_intr #define NCR5380_queue_command atari_scsi_queue_command #define NCR5380_queue_command atari_scsi_queue_command #define NCR5380_abort atari_scsi_abort #define NCR5380_abort atari_scsi_abort #define NCR5380_proc_info atari_scsi_proc_info #define NCR5380_show_info atari_scsi_show_info #define NCR5380_dma_read_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 0) #define NCR5380_dma_read_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 0) #define NCR5380_dma_write_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 1) #define NCR5380_dma_write_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 1) #define NCR5380_dma_residual(inst) atari_scsi_dma_residual( inst ) #define NCR5380_dma_residual(inst) atari_scsi_dma_residual( inst ) Loading