Main Page | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

iec.h

Go to the documentation of this file.
00001 /*
00002  *  This program is free software; you can redistribute it and/or
00003  *  modify it under the terms of the GNU General Public License
00004  *  as published by the Free Software Foundation; either version
00005  *  2 of the License, or (at your option) any later version.
00006  *
00007  *  Copyright 2004 Spiro Trikaliotis
00008  *
00009  */
00010 
00020 #ifndef CBMIEC_H
00021 #define CBMIEC_H
00022 
00023 typedef
00024 enum iec_cabletype
00025 {
00026     IEC_CABLETYPE_AUTO = -1, IEC_CABLETYPE_XM = 0, IEC_CABLETYPE_XA = 1
00027 } IEC_CABLETYPE;
00028 
00029 typedef
00030 enum iec_checkdevice
00031 {
00032     IEC_CHECKDEVICE_BUSFREE = 0,
00033     IEC_CHECKDEVICE_NODEVICE = 1,
00034     IEC_CHECKDEVICE_BUSBUSY = 2
00035 } IEC_CHECKDEVICE;
00036 
00037 extern NTSTATUS
00038 cbmiec_reset(IN PDEVICE_EXTENSION Pdx);
00039 
00040 extern BOOLEAN
00041 cbmiec_send_byte(IN PDEVICE_EXTENSION Pdx, IN UCHAR Byte);
00042 
00043 extern VOID
00044 cbmiec_wait_for_listener(IN PDEVICE_EXTENSION Pdx, IN BOOLEAN SendEoi);
00045 
00046 extern VOID
00047 cbmiec_release_bus(IN PDEVICE_EXTENSION Pdx);
00048 
00049 extern NTSTATUS
00050 cbmiec_untalk(IN PDEVICE_EXTENSION Pdx);
00051 
00052 extern NTSTATUS
00053 cbmiec_unlisten(IN PDEVICE_EXTENSION Pdx);
00054 
00055 extern NTSTATUS
00056 cbmiec_listen(IN PDEVICE_EXTENSION Pdx, IN UCHAR DeviceAddress, IN UCHAR SecondaryAddress);
00057 
00058 extern NTSTATUS
00059 cbmiec_talk(IN PDEVICE_EXTENSION Pdx, IN UCHAR DeviceAddress, IN UCHAR SecondaryAddress);
00060 
00061 extern NTSTATUS
00062 cbmiec_open(IN PDEVICE_EXTENSION Pdx, IN UCHAR DeviceAddress, IN UCHAR SecondaryAddress);
00063 
00064 extern NTSTATUS
00065 cbmiec_close(IN PDEVICE_EXTENSION Pdx, IN UCHAR DeviceAddress, IN UCHAR SecondaryAddress);
00066 
00067 extern NTSTATUS
00068 cbmiec_get_eoi(IN PDEVICE_EXTENSION Pdx, OUT PBOOLEAN Result);
00069 
00070 extern NTSTATUS
00071 cbmiec_clear_eoi(IN PDEVICE_EXTENSION Pdx);
00072 
00073 extern NTSTATUS
00074 cbmiec_iec_wait(IN PDEVICE_EXTENSION Pdx, IN UCHAR Line, IN UCHAR State, OUT PUCHAR Result);
00075 
00076 extern NTSTATUS
00077 cbmiec_iec_poll(IN PDEVICE_EXTENSION Pdx, OUT PUCHAR Result);
00078 
00079 extern NTSTATUS
00080 cbmiec_iec_set(IN PDEVICE_EXTENSION Pdx, IN USHORT Line);
00081 
00082 extern NTSTATUS
00083 cbmiec_iec_release(IN PDEVICE_EXTENSION Pdx, IN USHORT Line);
00084 
00085 extern NTSTATUS
00086 cbmiec_iec_setrelease(IN PDEVICE_EXTENSION Pdx, IN USHORT Set, IN USHORT Release);
00087 
00088 extern NTSTATUS
00089 cbmiec_pp_read(IN PDEVICE_EXTENSION Pdx, OUT UCHAR *Byte);
00090 
00091 extern NTSTATUS
00092 cbmiec_pp_write(IN PDEVICE_EXTENSION Pdx, IN UCHAR Byte);
00093 
00094 extern BOOLEAN
00095 cbmiec_interrupt(IN PDEVICE_EXTENSION Pdx);
00096 
00097 extern NTSTATUS
00098 cbmiec_cleanup(IN PDEVICE_EXTENSION Pdx);
00099 
00100 extern NTSTATUS
00101 cbmiec_init(IN PDEVICE_EXTENSION Pdx);
00102 
00103 extern NTSTATUS
00104 cbmiec_global_init(IN PHANDLE HKey);
00105 
00106 extern NTSTATUS
00107 cbmiec_raw_write(IN PDEVICE_EXTENSION Pdx, IN const PUCHAR Buffer, IN ULONG BufferLength, OUT ULONG* Written);
00108 
00109 extern NTSTATUS 
00110 cbmiec_raw_read(IN PDEVICE_EXTENSION Pdx, OUT PUCHAR Buffer, IN ULONG BufferLength, OUT ULONG* Read);
00111 
00112 extern NTSTATUS
00113 cbmiec_set_cabletype(IN PDEVICE_EXTENSION Pdx, IN IEC_CABLETYPE CableType);
00114 
00115 extern NTSTATUS
00116 cbmiec_check_device(IN PDEVICE_EXTENSION Pdx, OUT IEC_CHECKDEVICE *CheckDevice);
00117 
00118 extern NTSTATUS
00119 cbmiec_parallel_burst_read(IN PDEVICE_EXTENSION Pdx, OUT UCHAR* Byte);
00120 
00121 extern NTSTATUS
00122 cbmiec_parallel_burst_write(IN PDEVICE_EXTENSION Pdx, IN UCHAR Byte);
00123 
00124 extern NTSTATUS
00125 cbmiec_parallel_burst_read_track(IN PDEVICE_EXTENSION Pdx, OUT UCHAR* Buffer, IN ULONG BufferLength);
00126 
00127 extern NTSTATUS
00128 cbmiec_parallel_burst_write_track(IN PDEVICE_EXTENSION Pdx, IN UCHAR* Buffer, IN ULONG BufferLength);
00129 
00130 #endif /* #ifndef CBMIEC_H */

Generated on Sun Apr 30 18:45:52 2006 for opencbm by  doxygen 1.4.2