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;
hwgroup390drivers/block/ide.cide_hwgroup_t *hwgroup = HWGROUP(drive);
hwgroup392drivers/block/ide.cif (hwgroup->handler != NULL)
hwgroup395drivers/block/ide.chwgroup->handler       = handler;
hwgroup396drivers/block/ide.chwgroup->timer.expires = jiffies + WAIT_CMD;
hwgroup397drivers/block/ide.cadd_timer(&(hwgroup->timer));
hwgroup570drivers/block/ide.cide_hwgroup_t *hwgroup = hwif->hwgroup;
hwgroup572drivers/block/ide.chwgroup->reset_timeout = jiffies + WAIT_WORSTCASE; /* max waiting time */
hwgroup573drivers/block/ide.chwgroup->handler = &reset_ihandler;    /* dummy irq handler */
hwgroup574drivers/block/ide.chwgroup->timer.expires = jiffies + (HZ/20);  /* polling interval */
hwgroup575drivers/block/ide.cadd_timer(&(hwgroup->timer));
hwgroup587drivers/block/ide.cstatic int atapi_reset_handler (ide_hwgroup_t *hwgroup)
hwgroup589drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup590drivers/block/ide.cide_drive_t *drive = hwgroup->drive;
hwgroup597drivers/block/ide.cif (jiffies < hwgroup->reset_timeout) {
hwgroup604drivers/block/ide.chwgroup->doing_atapi_reset = 0;
hwgroup605drivers/block/ide.chwgroup->handler = NULL;  /* allow new requests to be processed */
hwgroup606drivers/block/ide.chwgroup->reset_timeout = 0;  /* signal end of ide reset operation */
hwgroup620drivers/block/ide.cstatic int reset_handler (ide_hwgroup_t *hwgroup)
hwgroup622drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup623drivers/block/ide.cide_drive_t *drive = hwgroup->drive;
hwgroup627drivers/block/ide.cif (hwgroup->doing_atapi_reset)
hwgroup628drivers/block/ide.creturn atapi_reset_handler(hwgroup);
hwgroup632drivers/block/ide.cif (jiffies < hwgroup->reset_timeout) {
hwgroup661drivers/block/ide.chwgroup->handler = NULL;  /* allow new requests to be processed */
hwgroup662drivers/block/ide.chwgroup->reset_timeout = 0;  /* signal end of ide reset operation */
hwgroup686drivers/block/ide.cide_hwgroup_t *hwgroup = HWGROUP(drive);
hwgroup694drivers/block/ide.cif (!hwgroup->doing_atapi_reset) {
hwgroup695drivers/block/ide.chwgroup->doing_atapi_reset = 1;
hwgroup701drivers/block/ide.chwgroup->reset_timeout = jiffies + WAIT_WORSTCASE;
hwgroup707drivers/block/ide.chwgroup->doing_atapi_reset = 0;
hwgroup741drivers/block/ide.chwgroup->reset_timeout = jiffies + WAIT_WORSTCASE;
hwgroup1352drivers/block/ide.c((ide_hwgroup_t *)hwif->hwgroup)->drive = drive;
hwgroup1388drivers/block/ide.cide_end_request(0, hwif->hwgroup);
hwgroup1406drivers/block/ide.cvoid ide_do_request (ide_hwgroup_t *hwgroup)
hwgroup1409drivers/block/ide.cif (hwgroup->handler != NULL) {
hwgroup1410drivers/block/ide.cprintk("%s: EEeekk!! handler not NULL in ide_do_request()\n", hwgroup->hwif->name);
hwgroup1414drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup1416drivers/block/ide.cif ((rq = hwgroup->rq) == NULL) {
hwgroup1417drivers/block/ide.chwgroup->drive = NULL;  /* paranoia */
hwgroup1422drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwgroup1427drivers/block/ide.cdo_request(hwgroup->hwif = hwif, hwgroup->rq = rq);
hwgroup1429drivers/block/ide.c} while (hwgroup->handler == NULL);
hwgroup1443drivers/block/ide.cstatic void do_hwgroup_request (ide_hwgroup_t *hwgroup)
hwgroup1445drivers/block/ide.cif (hwgroup->handler == NULL) {
hwgroup1446drivers/block/ide.cide_hwif_t *hgif = hwgroup->hwif;
hwgroup1451drivers/block/ide.cide_do_request (hwgroup);
hwgroup1460drivers/block/ide.cdo_hwgroup_request (ide_hwifs[0].hwgroup);
hwgroup1465drivers/block/ide.cdo_hwgroup_request (ide_hwifs[1].hwgroup);
hwgroup1470drivers/block/ide.cdo_hwgroup_request (ide_hwifs[2].hwgroup);
hwgroup1475drivers/block/ide.cdo_hwgroup_request (ide_hwifs[3].hwgroup);
hwgroup1480drivers/block/ide.cide_hwgroup_t *hwgroup = (ide_hwgroup_t *) data;
hwgroup1481drivers/block/ide.cide_drive_t   *drive   = hwgroup->drive;
hwgroup1487drivers/block/ide.cif (hwgroup->reset_timeout != 0) { /* ide reset in progress? */
hwgroup1488drivers/block/ide.cif (!reset_handler(hwgroup))
hwgroup1489drivers/block/ide.cdo_hwgroup_request (hwgroup);
hwgroup1490drivers/block/ide.c} else if (hwgroup->handler == NULL) {   /* not waiting for anything? */
hwgroup1494drivers/block/ide.chwgroup->handler = NULL;
hwgroup1495drivers/block/ide.cif (hwgroup->hwif->dmaproc) 
hwgroup1496drivers/block/ide.c(void) hwgroup->hwif->dmaproc (ide_dma_abort, drive);
hwgroup1498drivers/block/ide.cdo_hwgroup_request (hwgroup);
hwgroup1526drivers/block/ide.cstatic void unexpected_intr (int irq, ide_hwgroup_t *hwgroup)
hwgroup1530drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup1535drivers/block/ide.cif (hwgroup->reset_timeout != 0) {
hwgroup1536drivers/block/ide.cif (!reset_handler(hwgroup))
hwgroup1537drivers/block/ide.cdo_hwgroup_request (hwgroup);
hwgroup1560drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwgroup1568drivers/block/ide.cide_hwgroup_t  *hwgroup = irq_to_hwgroup[irq];
hwgroup1571drivers/block/ide.cif (irq == hwgroup->hwif->irq && (handler = hwgroup->handler) != NULL) {
hwgroup1572drivers/block/ide.cide_drive_t *drive = hwgroup->drive;
hwgroup1573drivers/block/ide.chwgroup->handler = NULL;
hwgroup1574drivers/block/ide.cdel_timer(&(hwgroup->timer));
hwgroup1579drivers/block/ide.cunexpected_intr(irq, hwgroup);
hwgroup2756drivers/block/ide.cide_hwgroup_t *hwgroup;
hwgroup2773drivers/block/ide.cif ((hwgroup = irq_to_hwgroup[hwif->irq]) == NULL) {
hwgroup2774drivers/block/ide.chwgroup = ide_alloc (sizeof(ide_hwgroup_t), 0);
hwgroup2775drivers/block/ide.cirq_to_hwgroup[hwif->irq] = hwgroup;
hwgroup2776drivers/block/ide.chwgroup->hwif    = hwif->next = hwif;
hwgroup2777drivers/block/ide.chwgroup->rq      = NULL;
hwgroup2778drivers/block/ide.chwgroup->handler = NULL;
hwgroup2779drivers/block/ide.chwgroup->drive   = NULL;
hwgroup2780drivers/block/ide.chwgroup->reset_timeout = 0;
hwgroup2782drivers/block/ide.chwgroup->doing_atapi_reset = 0;
hwgroup2784drivers/block/ide.cinit_timer(&hwgroup->timer);
hwgroup2785drivers/block/ide.chwgroup->timer.function = &timer_expiry;
hwgroup2786drivers/block/ide.chwgroup->timer.data = (unsigned long) hwgroup;
hwgroup2788drivers/block/ide.chwif->next = hwgroup->hwif->next;
hwgroup2789drivers/block/ide.chwgroup->hwif->next = hwif;
hwgroup2791drivers/block/ide.chwif->hwgroup = hwgroup;
hwgroup2797drivers/block/ide.cif (hwgroup->hwif != hwif) {
hwgroup2798drivers/block/ide.cchar *name = hwgroup->hwif->name;
hwgroup2799drivers/block/ide.cif (hwgroup->hwif->irq == hwif->irq)
hwgroup84drivers/block/ide.h#define HWGROUP(drive)    ((ide_hwgroup_t *)(HWIF(drive)->hwgroup))
hwgroup308drivers/block/ide.hvoid    *hwgroup;  /* actually (ide_hwgroup_t *) */