Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _ASM_ATARI_ACSI_H |
| 2 | #define _ASM_ATARI_ACSI_H |
| 3 | |
| 4 | /* Functions exported by drivers/block/acsi.c */ |
| 5 | |
| 6 | void acsi_delay_start( void ); |
| 7 | void acsi_delay_end( long usec ); |
| 8 | int acsi_wait_for_IRQ( unsigned timeout ); |
| 9 | int acsi_wait_for_noIRQ( unsigned timeout ); |
| 10 | int acsicmd_nodma( const char *cmd, int enable); |
| 11 | int acsi_getstatus( void ); |
| 12 | int acsi_extstatus( char *buffer, int cnt ); |
| 13 | void acsi_end_extstatus( void ); |
| 14 | int acsi_extcmd( unsigned char *buffer, int cnt ); |
| 15 | |
| 16 | /* The ACSI buffer is guarantueed to reside in ST-RAM and may be used by other |
| 17 | * drivers that work on the ACSI bus, too. It's data are valid only as long as |
| 18 | * the ST-DMA is locked. */ |
| 19 | extern char *acsi_buffer; |
| 20 | extern unsigned long phys_acsi_buffer; |
| 21 | |
| 22 | /* Utility macros */ |
| 23 | |
| 24 | /* Send one data byte over the bus and set mode for next operation |
| 25 | * with one move.l -- Atari recommends this... |
| 26 | */ |
| 27 | |
| 28 | #define DMA_LONG_WRITE(data,mode) \ |
| 29 | do { \ |
| 30 | *((unsigned long *)&dma_wd.fdc_acces_seccount) = \ |
| 31 | ((data)<<16) | (mode); \ |
| 32 | } while(0) |
| 33 | |
| 34 | #define ENABLE_IRQ() atari_turnon_irq( IRQ_MFP_ACSI ) |
| 35 | #define DISABLE_IRQ() atari_turnoff_irq( IRQ_MFP_ACSI ) |
| 36 | |
| 37 | #endif /* _ASM_ATARI_ACSI_H */ |