taglinefilesource code
hwgroup340drivers/block/blk.hvoid ide_end_request(byte uptodate, ide_hwgroup_t *hwgroup);
hwgroup344drivers/block/blk.hvoid ide_end_request(byte uptodate, ide_hwgroup_t *hwgroup) {
hwgroup345drivers/block/blk.hstruct request *req = hwgroup->rq;
hwgroup379drivers/block/blk.hhwgroup->rq = NULL;
hwgroup371drivers/block/ide.cide_hwgroup_t *hwgroup = HWGROUP(drive);
hwgroup373drivers/block/ide.cif (hwgroup->handler != NULL)
hwgroup376drivers/block/ide.chwgroup->handler       = handler;
hwgroup377drivers/block/ide.chwgroup->timer.expires = jiffies + WAIT_CMD;
hwgroup378drivers/block/ide.cadd_timer(&(hwgroup->timer));
hwgroup551drivers/block/ide.cide_hwgroup_t *hwgroup = hwif->hwgroup;
hwgroup553drivers/block/ide.chwgroup->reset_timeout = jiffies + WAIT_WORSTCASE; /* max waiting time */
hwgroup554drivers/block/ide.chwgroup->handler = &reset_ihandler;    /* dummy irq handler */
hwgroup555drivers/block/ide.chwgroup->timer.expires = jiffies + (HZ/20);  /* polling interval */
hwgroup556drivers/block/ide.cadd_timer(&(hwgroup->timer));
hwgroup568drivers/block/ide.cstatic int atapi_reset_handler (ide_hwgroup_t *hwgroup)
hwgroup570drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup571drivers/block/ide.cide_drive_t *drive = hwgroup->drive;
hwgroup578drivers/block/ide.cif (jiffies < hwgroup->reset_timeout) {
hwgroup585drivers/block/ide.chwgroup->doing_atapi_reset = 0;
hwgroup586drivers/block/ide.chwgroup->handler = NULL;  /* allow new requests to be processed */
hwgroup587drivers/block/ide.chwgroup->reset_timeout = 0;  /* signal end of ide reset operation */
hwgroup601drivers/block/ide.cstatic int reset_handler (ide_hwgroup_t *hwgroup)
hwgroup603drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup604drivers/block/ide.cide_drive_t *drive = hwgroup->drive;
hwgroup608drivers/block/ide.cif (hwgroup->doing_atapi_reset)
hwgroup609drivers/block/ide.creturn atapi_reset_handler(hwgroup);
hwgroup613drivers/block/ide.cif (jiffies < hwgroup->reset_timeout) {
hwgroup642drivers/block/ide.chwgroup->handler = NULL;  /* allow new requests to be processed */
hwgroup643drivers/block/ide.chwgroup->reset_timeout = 0;  /* signal end of ide reset operation */
hwgroup667drivers/block/ide.cide_hwgroup_t *hwgroup = HWGROUP(drive);
hwgroup675drivers/block/ide.cif (!hwgroup->doing_atapi_reset) {
hwgroup676drivers/block/ide.chwgroup->doing_atapi_reset = 1;
hwgroup682drivers/block/ide.chwgroup->reset_timeout = jiffies + WAIT_WORSTCASE;
hwgroup688drivers/block/ide.chwgroup->doing_atapi_reset = 0;
hwgroup722drivers/block/ide.chwgroup->reset_timeout = jiffies + WAIT_WORSTCASE;
hwgroup1328drivers/block/ide.c((ide_hwgroup_t *)hwif->hwgroup)->drive = drive;
hwgroup1364drivers/block/ide.cide_end_request(0, hwif->hwgroup);
hwgroup1382drivers/block/ide.cvoid ide_do_request (ide_hwgroup_t *hwgroup)
hwgroup1385drivers/block/ide.cif (hwgroup->handler != NULL) {
hwgroup1386drivers/block/ide.cprintk("%s: EEeekk!! handler not NULL in ide_do_request()\n", hwgroup->hwif->name);
hwgroup1390drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup1392drivers/block/ide.cif ((rq = hwgroup->rq) == NULL) {
hwgroup1393drivers/block/ide.chwgroup->drive = NULL;  /* paranoia */
hwgroup1398drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwgroup1403drivers/block/ide.cdo_request(hwgroup->hwif = hwif, hwgroup->rq = rq);
hwgroup1405drivers/block/ide.c} while (hwgroup->handler == NULL);
hwgroup1419drivers/block/ide.cstatic void do_hwgroup_request (ide_hwgroup_t *hwgroup)
hwgroup1421drivers/block/ide.cif (hwgroup->handler == NULL) {
hwgroup1422drivers/block/ide.cide_hwif_t *hgif = hwgroup->hwif;
hwgroup1427drivers/block/ide.cide_do_request (hwgroup);
hwgroup1436drivers/block/ide.cdo_hwgroup_request (ide_hwifs[0].hwgroup);
hwgroup1441drivers/block/ide.cdo_hwgroup_request (ide_hwifs[1].hwgroup);
hwgroup1446drivers/block/ide.cdo_hwgroup_request (ide_hwifs[2].hwgroup);
hwgroup1451drivers/block/ide.cdo_hwgroup_request (ide_hwifs[3].hwgroup);
hwgroup1456drivers/block/ide.cide_hwgroup_t *hwgroup = (ide_hwgroup_t *) data;
hwgroup1457drivers/block/ide.cide_drive_t   *drive   = hwgroup->drive;
hwgroup1463drivers/block/ide.cif (hwgroup->reset_timeout != 0) { /* ide reset in progress? */
hwgroup1464drivers/block/ide.cif (!reset_handler(hwgroup))
hwgroup1465drivers/block/ide.cdo_hwgroup_request (hwgroup);
hwgroup1466drivers/block/ide.c} else if (hwgroup->handler == NULL) {   /* not waiting for anything? */
hwgroup1470drivers/block/ide.chwgroup->handler = NULL;
hwgroup1471drivers/block/ide.cif (hwgroup->hwif->dmaproc) 
hwgroup1472drivers/block/ide.c(void) hwgroup->hwif->dmaproc (ide_dma_abort, drive);
hwgroup1474drivers/block/ide.cdo_hwgroup_request (hwgroup);
hwgroup1502drivers/block/ide.cstatic void unexpected_intr (int irq, ide_hwgroup_t *hwgroup)
hwgroup1506drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup1511drivers/block/ide.cif (hwgroup->reset_timeout != 0) {
hwgroup1512drivers/block/ide.cif (!reset_handler(hwgroup))
hwgroup1513drivers/block/ide.cdo_hwgroup_request (hwgroup);
hwgroup1536drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwgroup1544drivers/block/ide.cide_hwgroup_t  *hwgroup = irq_to_hwgroup[irq];
hwgroup1547drivers/block/ide.cif (irq == hwgroup->hwif->irq && (handler = hwgroup->handler) != NULL) {
hwgroup1548drivers/block/ide.cide_drive_t *drive = hwgroup->drive;
hwgroup1549drivers/block/ide.chwgroup->handler = NULL;
hwgroup1550drivers/block/ide.cdel_timer(&(hwgroup->timer));
hwgroup1555drivers/block/ide.cunexpected_intr(irq, hwgroup);
hwgroup2716drivers/block/ide.cide_hwgroup_t *hwgroup;
hwgroup2732drivers/block/ide.cif ((hwgroup = irq_to_hwgroup[hwif->irq]) == NULL) {
hwgroup2733drivers/block/ide.chwgroup = ide_alloc (sizeof(ide_hwgroup_t), 0);
hwgroup2734drivers/block/ide.cirq_to_hwgroup[hwif->irq] = hwgroup;
hwgroup2735drivers/block/ide.chwgroup->hwif    = hwif->next = hwif;
hwgroup2736drivers/block/ide.chwgroup->rq      = NULL;
hwgroup2737drivers/block/ide.chwgroup->handler = NULL;
hwgroup2738drivers/block/ide.chwgroup->drive   = NULL;
hwgroup2739drivers/block/ide.chwgroup->reset_timeout = 0;
hwgroup2741drivers/block/ide.chwgroup->doing_atapi_reset = 0;
hwgroup2743drivers/block/ide.cinit_timer(&hwgroup->timer);
hwgroup2744drivers/block/ide.chwgroup->timer.function = &timer_expiry;
hwgroup2745drivers/block/ide.chwgroup->timer.data = (unsigned long) hwgroup;
hwgroup2747drivers/block/ide.chwif->next = hwgroup->hwif->next;
hwgroup2748drivers/block/ide.chwgroup->hwif->next = hwif;
hwgroup2750drivers/block/ide.chwif->hwgroup = hwgroup;
hwgroup2756drivers/block/ide.cif (hwgroup->hwif != hwif) {
hwgroup2757drivers/block/ide.cchar *name = hwgroup->hwif->name;
hwgroup2758drivers/block/ide.cif (hwgroup->hwif->irq == hwif->irq)
hwgroup82drivers/block/ide.h#define HWGROUP(drive)    ((ide_hwgroup_t *)(HWIF(drive)->hwgroup))
hwgroup292drivers/block/ide.hvoid    *hwgroup;  /* actually (ide_hwgroup_t *) */