1 #ifndef CLIB_DEVICEIO_PROTOS_H
    2 #define CLIB_DEVICEIO_PROTOS_H
    3 
    4 #ifndef EXEC_TYPES_H
    5 	#include <exec/types.h>
    6 #endif
    7 
    8 #ifndef LIBRARIES_DEVICEIO_H
    9 	#include <libraries/deviceio.h>
   10 #endif /* LIBRARIES_DEVICEIO_H */
   11 
   12 #ifdef __cplusplus
   13 extern "C" {
   14 #endif /* __cplusplus */
   15 
   16 /*
   17  * Init/Cleanup
   18  */
   19 
   20 struct DeviceIO *DIO_InitDeviceIOA(CONST_STRPTR name, CONST struct TagItem *tagList); 
   21 VOID DIO_CleanupDeviceIO(struct DeviceIO *dio);
   22 
   23 /*
   24  * Query/Set
   25  */
   26 
   27 VOID DIO_QueryDeviceIOA(struct DeviceIO *dio, struct TagItem *tagList);
   28 LONG DIO_SetDeviceIOA(struct DeviceIO *dio, CONST struct TagItem *tagList);
   29 
   30 /*
   31  * General
   32  */
   33 
   34 LONG DIO_WriteProtection(struct DeviceIO *dio);  
   35 VOID DIO_Update(struct DeviceIO *dio); 
   36 VOID DIO_MotorOFF(struct DeviceIO *dio); 
   37 UBYTE DIO_IsDiskPresent(struct DeviceIO *dio);
   38 
   39 /*
   40  * Cache
   41  */
   42 
   43 LONG DIO_SetIOCache(struct DeviceIO *dio, ULONG lines, ULONG readahead, BOOL copyback); 
   44 LONG DIO_FlushIOCache(struct DeviceIO *dio);
   45 LONG DIO_FlushBlocks(struct DeviceIO *dio, ULONG start_block, ULONG count);
   46 
   47 /*
   48  * Device I/O
   49  */
   50 
   51 LONG DIO_ReadBlocks(struct DeviceIO *dio, DBLCK block, UBYTE *buffer, ULONG blocks);
   52 LONG DIO_ReadBytes(struct DeviceIO *dio, DBLCK block, UBYTE *buffer, UWORD offsetinblock, UWORD bytes);
   53 
   54 LONG DIO_WriteBlocks(struct DeviceIO *dio, DBLCK block, UBYTE *buffer, ULONG blocks);
   55 LONG DIO_WriteBytes(struct DeviceIO *dio, DBLCK block, UBYTE *buffer, UWORD offsetinblock, UWORD bytes);
   56 
   57 /*
   58  * Memory
   59  */
   60 
   61 UBYTE *DIO_AllocateBlocks(struct DeviceIO *dio, ULONG n);
   62 UBYTE *DIO_AllocateBlocksV(struct DeviceIO *dio, ULONG n);
   63 
   64 VOID DIO_FreeBlocks(struct DeviceIO *dio, APTR block);
   65 VOID DIO_FreeBlocksV(struct DeviceIO *dio, APTR block);
   66 
   67 /*
   68  * Misc
   69  */
   70 
   71 BOOL DIO_Abort(struct DeviceIO *dio);
   72 VOID DIO_SetAbort(struct DeviceIO *dio, BOOL flag);
   73 VOID DIO_Dump(struct DeviceIO *dio);
   74 
   75 /*
   76  * Tagged
   77  */
   78 
   79 #if !defined(USE_INLINE_STDARG)
   80 	struct DeviceIO *DIO_InitDeviceIO(CONST_STRPTR name, ...); 
   81 
   82 	VOID DIO_QueryDeviceIO(struct DeviceIO *dio, ...);
   83 	LONG DIO_SetDeviceIO(struct DeviceIO *dio, ...);
   84 #endif
   85 
   86 #ifdef __cplusplus
   87 }
   88 #endif /* __cplusplus */
   89 
   90 #endif /* CDIO_DEVICEIO_PROTOS_H */