revert between 56095 -> 55830 in arch
[AROS.git] / rom / usb / classes / ethwrap / dev.h
blobcc79c3adaccdea62dea74233b9f6211783ee6abd
3 /* DEVICE STUFF */
5 #define DEVNAME "usbethwrap.device"
7 #define DEVBASETYPEPTR struct NepEthDevBase *
9 /* local protos */
11 AROS_UFP3(DEVBASETYPEPTR, devInit,
12 AROS_UFPA(DEVBASETYPEPTR, base, D0),
13 AROS_UFPA(BPTR, seglist, A0),
14 AROS_UFPA(struct ExecBase *, SysBase, A6));
16 AROS_LD3(DEVBASETYPEPTR, devOpen,
17 AROS_LDA(struct IOSana2Req *, ioreq, A1),
18 AROS_LDA(ULONG, unitnum, D0),
19 AROS_LDA(ULONG, flags, D1),
20 DEVBASETYPEPTR, base, 1, dev);
22 AROS_LD1(BPTR, devClose,
23 AROS_LDA(struct IOSana2Req *, ioreq, A1),
24 DEVBASETYPEPTR, base, 2, dev);
26 AROS_LD1(BPTR, devExpunge,
27 AROS_LDA(DEVBASETYPEPTR, extralh, D0),
28 DEVBASETYPEPTR, base, 3, dev);
30 AROS_LD0(DEVBASETYPEPTR, devReserved,
31 DEVBASETYPEPTR, base, 4, dev);
33 AROS_LD1(void, devBeginIO,
34 AROS_LDA(struct IOSana2Req *, ioreq, A1),
35 DEVBASETYPEPTR, base, 5, dev);
37 AROS_LD1(LONG, devAbortIO,
38 AROS_LDA(struct IOSana2Req *, ioreq, A1),
39 DEVBASETYPEPTR, base, 6, dev);
41 /* Device stuff */
43 #define deverror(ioerr,wireerr) (((wireerr) << 8) | ((ioerr) & 0xff))
45 /* Reply the iorequest with success
47 #define RC_OK 0
49 /* Magic cookie, don't set error fields & don't reply the ioreq
51 #define RC_DONTREPLY -1
53 struct Unit *Open_Unit(struct IOSana2Req *ioreq,
54 LONG unitnr,
55 struct NepEthDevBase *base);
56 void Close_Unit(struct NepEthDevBase *base, struct NepClassEth *ncp,
57 struct IOSana2Req *ioreq);
59 WORD cmdNSDeviceQuery(struct NepClassEth *ncp, struct IOStdReq *ioreq);
61 LONG AbortReq(struct NepClassEth *ncp, struct List *list, struct IOSana2Req *ioreq);
62 void TermIO(struct NepClassEth *ncp, struct IOSana2Req *ioreq);
63 void AbortList(struct NepClassEth *ncp, struct List *list, struct BufMan *bufman, WORD error);
64 void AbortRW(struct NepClassEth *ncp, struct BufMan *bufman, WORD error);struct Sana2PacketTypeStats * FindPacketTypeStats(struct NepClassEth *ncp, ULONG packettype);
65 WORD AddMCastRange(struct NepClassEth *ncp, struct IOSana2Req *ioreq, UBYTE *lower, UBYTE *upper);
66 WORD DelMCastRange(struct NepClassEth *ncp, struct IOSana2Req *ioreq, UBYTE *lower, UBYTE *upper);
67 void UpdateMulticastHash(struct NepClassEth *ncp);
69 struct my_NSDeviceQueryResult
71 ULONG DevQueryFormat; /* this is type 0 */
72 ULONG SizeAvailable; /* bytes available */
73 UWORD DeviceType; /* what the device does */
74 UWORD DeviceSubType; /* depends on the main type */
75 const UWORD *SupportedCommands; /* 0 terminated list of cmd's */