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 */