| #ifndef _ASM_ATARI_ACSI_H | |
| #define _ASM_ATARI_ACSI_H | |
| /* Functions exported by drivers/block/acsi.c */ | |
| void acsi_delay_start( void ); | |
| void acsi_delay_end( long usec ); | |
| int acsi_wait_for_IRQ( unsigned timeout ); | |
| int acsi_wait_for_noIRQ( unsigned timeout ); | |
| int acsicmd_nodma( const char *cmd, int enable); | |
| int acsi_getstatus( void ); | |
| int acsi_extstatus( char *buffer, int cnt ); | |
| void acsi_end_extstatus( void ); | |
| int acsi_extcmd( unsigned char *buffer, int cnt ); | |
| /* The ACSI buffer is guarantueed to reside in ST-RAM and may be used by other | |
| * drivers that work on the ACSI bus, too. It's data are valid only as long as | |
| * the ST-DMA is locked. */ | |
| extern char *acsi_buffer; | |
| extern unsigned long phys_acsi_buffer; | |
| /* Utility macros */ | |
| /* Send one data byte over the bus and set mode for next operation | |
| * with one move.l -- Atari recommends this... | |
| */ | |
| #define DMA_LONG_WRITE(data,mode) \ | |
| do { \ | |
| *((unsigned long *)&dma_wd.fdc_acces_seccount) = \ | |
| ((data)<<16) | (mode); \ | |
| } while(0) | |
| #define ENABLE_IRQ() atari_turnon_irq( IRQ_MFP_ACSI ) | |
| #define DISABLE_IRQ() atari_turnoff_irq( IRQ_MFP_ACSI ) | |
| #endif /* _ASM_ATARI_ACSI_H */ |