linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / scsi / aic7xxx / aic79xx_osm.h
index 2b83316..9cb1013 100644 (file)
@@ -381,12 +381,15 @@ struct ahd_platform_data {
        struct scsi_target *starget[AHD_NUM_TARGETS]; 
 
        spinlock_t               spin_lock;
-       struct completion       *eh_done;
+       u_int                    qfrozen;
+       struct semaphore         eh_sem;
        struct Scsi_Host        *host;          /* pointer to scsi host */
 #define AHD_LINUX_NOIRQ        ((uint32_t)~0)
        uint32_t                 irq;           /* IRQ for this adapter */
        uint32_t                 bios_address;
        uint32_t                 mem_busaddr;   /* Mem Base Addr */
+#define        AHD_SCB_UP_EH_SEM 0x1
+       uint32_t                 flags;
 };
 
 /************************** OS Utility Wrappers *******************************/
@@ -872,6 +875,8 @@ int ahd_platform_abort_scbs(struct ahd_softc *ahd, int target,
                                role_t role, uint32_t status);
 irqreturn_t
        ahd_linux_isr(int irq, void *dev_id, struct pt_regs * regs);
+void   ahd_platform_flushwork(struct ahd_softc *ahd);
+int    ahd_softc_comp(struct ahd_softc *, struct ahd_softc *);
 void   ahd_done(struct ahd_softc*, struct scb*);
 void   ahd_send_async(struct ahd_softc *, char channel,
                       u_int target, u_int lun, ac_code, void *);