diff -Naurp -X /home/jbarnes/dontdiff 002-2.6.0-ia64.patch/drivers/ide/ide-disk.c 080-ide-simulator-hacks.patch/drivers/ide/ide-disk.c --- 002-2.6.0-ia64.patch/drivers/ide/ide-disk.c Mon Feb 9 19:00:38 2004 +++ 080-ide-simulator-hacks.patch/drivers/ide/ide-disk.c Thu Feb 12 11:16:52 2004 @@ -68,6 +68,9 @@ #include #include #include +#ifdef CONFIG_IA64_SGI_SIM +#include +#endif /* FIXME: some day we shouldn't need to look in here! */ @@ -930,6 +933,12 @@ static unsigned long idedisk_read_native ide_task_t args; unsigned long addr = 0; +#ifdef CONFIG_IA64_SGI_SIM + if (IS_RUNNING_ON_SIMULATOR() && !(drive->id->command_set_1 & 0x0400) && + !(drive->id->cfs_enable_2 & 0x0100)) + return addr; +#endif + /* Create IDE/ATA command request structure */ memset(&args, 0, sizeof(ide_task_t)); args.tfRegister[IDE_SELECT_OFFSET] = 0x40; diff -Naurp -X /home/jbarnes/dontdiff 002-2.6.0-ia64.patch/drivers/ide/ide-iops.c 080-ide-simulator-hacks.patch/drivers/ide/ide-iops.c --- 002-2.6.0-ia64.patch/drivers/ide/ide-iops.c Mon Feb 9 19:00:34 2004 +++ 080-ide-simulator-hacks.patch/drivers/ide/ide-iops.c Thu Feb 12 11:16:52 2004 @@ -29,6 +29,9 @@ #include #include #include +#ifdef CONFIG_IA64_SGI_SN +#include +#endif /* * Conventional PIO operations for ATA devices @@ -997,7 +1000,12 @@ void ide_execute_command(ide_drive_t *dr ide_hwif_t *hwif = HWIF(drive); spin_lock_irqsave(&ide_lock, flags); - + +#ifdef CONFIG_IA64_SGI_SN_SIM + if (IS_RUNNING_ON_SIMULATOR()) + timeout = 2; +#endif + if(hwgroup->handler) BUG(); hwgroup->handler = handler; diff -Naurp -X /home/jbarnes/dontdiff 002-2.6.0-ia64.patch/drivers/ide/ide.c 080-ide-simulator-hacks.patch/drivers/ide/ide.c --- 002-2.6.0-ia64.patch/drivers/ide/ide.c Mon Feb 9 19:00:32 2004 +++ 080-ide-simulator-hacks.patch/drivers/ide/ide.c Thu Feb 12 11:16:52 2004 @@ -159,6 +159,10 @@ #include #include #include +#ifdef CONFIG_IA64_SGI_SN +#include +#endif + /* default maximum number of failures */ @@ -1412,6 +1416,10 @@ void ide_add_generic_settings (ide_drive void ide_delay_50ms (void) { #ifndef CONFIG_BLK_DEV_IDECS +#ifdef CONFIG_IA64_SGI_SN_SIM + SIMULATOR_SLEEP(); + return; +#endif mdelay(50); #else __set_current_state(TASK_UNINTERRUPTIBLE);