revert between 56095 -> 55830 in arch
[AROS.git] / rom / usb / classes / rawwrap / rawwrap.h
blob69d943f14dcaeacadf1fa8f2b037da296c90f80e
1 #ifndef RAWWRAP_H
2 #define RAWWRAP_H
4 #include <intuition/intuition.h>
5 #include <intuition/intuitionbase.h>
6 #include <libraries/mui.h>
7 #include <libraries/gadtools.h>
8 #include <exec/devices.h>
10 #if defined(__GNUC__)
11 # pragma pack(2)
12 #endif
14 #define ID_ABOUT 0x55555555
15 #define ID_STORE_CONFIG 0xaaaaaaaa
16 #define ID_DEF_CONFIG 0xaaaaaaab
18 struct ClsGlobalCfg
20 ULONG cgc_ChunkID;
21 ULONG cgc_Length;
22 ULONG cgc_BindVendor;
23 ULONG cgc_BindAll;
26 struct ClsDevCfg
28 ULONG cdc_ChunkID;
29 ULONG cdc_Length;
30 ULONG cdc_OutNakTimeout;
31 ULONG cdc_InNakTimeout;
32 ULONG cdc_InBufferMode;
33 ULONG cdc_InBufferSize;
34 ULONG cdc_ShortReadTerm;
35 ULONG cdc_DefaultUnit;
36 ULONG cdc_UnitExclusive;
39 #if defined(__GNUC__)
40 # pragma pack()
41 #endif
43 /* Misc */
45 #define READBUFCHUNK 256
47 #define BUFMODE_NO 0
48 #define BUFMODE_READAHEAD 1
49 #define BUFMODE_READONREQ 2
51 struct NepRawDevBase
53 struct Library np_Library; /* standard */
54 UWORD np_Flags; /* various flags */
56 BPTR np_SegList; /* device seglist */
57 struct NepRawWrapBase *np_ClsBase; /* pointer to class base */
58 struct Library *np_UtilityBase; /* cached utilitybase */
61 struct NepClassRawWrap
63 struct Unit ncp_Unit; /* Unit structure */
64 ULONG ncp_UnitNo; /* Unit number */
65 struct NepRawWrapBase *ncp_ClsBase; /* Up linkage */
66 struct NepRawDevBase *ncp_DevBase; /* Device base */
67 struct Library *ncp_Base; /* Poseidon base */
68 struct PsdDevice *ncp_Device; /* Up linkage */
69 struct PsdConfig *ncp_Config; /* Up linkage */
70 struct PsdInterface *ncp_Interface; /* Up linkage */
71 struct Task *ncp_ReadySigTask; /* Task to send ready signal to */
72 LONG ncp_ReadySignal; /* Signal to send when ready */
73 struct Task *ncp_Task; /* Subtask */
74 struct MsgPort *ncp_TaskMsgPort; /* Message Port of Subtask */
76 struct PsdPipe *ncp_EP0Pipe; /* Endpoint 0 pipe */
77 struct PsdEndpoint *ncp_EPOut; /* Endpoint 1 */
78 struct PsdPipe *ncp_EPOutPipe; /* Endpoint 1 pipe */
79 struct PsdEndpoint *ncp_EPIn; /* Endpoint 2 */
80 struct PsdPipe *ncp_EPInPipe; /* Endpoint 2 pipe */
81 IPTR ncp_EPInMaxPktSize; /* Endpoint 2 max pkt size */
82 struct MsgPort *ncp_DevMsgPort; /* Message Port for IOParReq */
83 UWORD ncp_UnitProdID; /* ProductID of unit */
84 UWORD ncp_UnitVendorID; /* VendorID of unit */
85 UWORD ncp_UnitCfgNum; /* Config of unit */
86 UWORD ncp_UnitIfNum; /* Interface number */
87 UWORD ncp_UnitAltIfNum; /* Alternate interface number */
88 BOOL ncp_DenyRequests; /* Do not accept further IO requests */
89 UBYTE *ncp_ReadBuffer; /* Read Buffer Address */
90 ULONG ncp_RBufSize; /* Size of read buffer */
91 ULONG ncp_RBufWOffset; /* Offset inside buffer for incoming next byte(s) */
92 ULONG ncp_RBufROffset; /* Offset inside buffer for next read */
93 ULONG ncp_RBufFull; /* Bytes in buffer */
94 ULONG ncp_RBufWrap; /* Offset where read buffer wraps around */
95 BOOL ncp_ShortPktRead; /* if short packet has been read, abort */
96 BOOL ncp_AbortRead; /* if true, abort pending read */
97 BOOL ncp_AbortWrite; /* if true, abort pending write */
99 struct IOStdReq *ncp_ReadPending; /* read IORequest pending */
100 struct IOStdReq *ncp_WritePending; /* write IORequest pending */
101 struct List ncp_ReadQueue; /* List of read requests */
102 struct List ncp_WriteQueue; /* List of write requests */
104 STRPTR ncp_DevIDString; /* Device ID String */
105 STRPTR ncp_IfIDString; /* Interface ID String */
107 BOOL ncp_UsingDefaultCfg;
108 struct ClsDevCfg *ncp_CDC;
110 struct Library *ncp_MUIBase; /* MUI master base */
111 struct Library *ncp_PsdBase; /* Poseidon base */
112 struct Library *ncp_IntBase; /* Intuition base */
113 struct Task *ncp_GUITask; /* GUI Task */
114 struct NepClassHid *ncp_GUIBinding; /* Window of binding that's open */
116 Object *ncp_App;
117 Object *ncp_MainWindow;
119 Object *ncp_BindVendorObj;
120 Object *ncp_BindAllObj;
122 Object *ncp_UnitObj;
123 Object *ncp_UnitExclObj;
124 Object *ncp_InNakTimeoutObj;
125 Object *ncp_OutNakTimeoutObj;
126 Object *ncp_InBufferModeObj;
127 Object *ncp_InBufferSizeObj;
128 Object *ncp_ShortReadTermObj;
130 Object *ncp_UseObj;
131 Object *ncp_SetDefaultObj;
132 Object *ncp_CloseObj;
134 Object *ncp_AboutMI;
135 Object *ncp_UseMI;
136 Object *ncp_SetDefaultMI;
137 Object *ncp_MUIPrefsMI;
141 struct NepRawWrapBase
143 struct Library nh_Library; /* standard */
144 UWORD nh_Flags; /* various flags */
146 struct Library *nh_UtilityBase; /* utility base */
148 struct NepRawDevBase *nh_DevBase; /* base of device created */
149 struct List nh_Units; /* List of units available */
151 struct ClsGlobalCfg nh_CurrentCGC;
153 struct NepClassRawWrap nh_DummyNCP; /* Dummy ncp for default config */
157 #endif /* RAWWRAP_H */