revert between 56095 -> 55830 in arch
[AROS.git] / rom / usb / classes / massstorage / massstorage.class.h
bloba7a8c40143a90cf109ed08473308c8991613264e
1 #ifndef MASSSTORAGE_CLASS_H
2 #define MASSSTORAGE_CLASS_H
4 /*
5 *----------------------------------------------------------------------------
6 * Includes for MS class
7 *----------------------------------------------------------------------------
8 * By Chris Hodges <chrisly@platon42.de>
9 */
11 #include "common.h"
13 #include <libraries/expansion.h>
14 #include <libraries/configregs.h>
15 #include <libraries/configvars.h>
16 #include <libraries/asl.h>
18 #include <dos/dostags.h>
19 #include <scsi/commands.h>
20 #include <scsi/values.h>
21 #include <dos/dosextens.h>
22 #include <dos/filehandler.h>
23 #include <resources/filesysres.h>
25 #include <devices/usb.h>
26 #include <devices/usbhardware.h>
27 #include <devices/usb_massstorage.h>
28 #include <libraries/usbclass.h>
30 #include <string.h>
31 #include <stddef.h>
32 #include <stdio.h>
34 #include "massstorage.h"
35 #include "dev.h"
37 #ifndef TD_READ64
38 #define TD_READ64 24
39 #define TD_WRITE64 25
40 #define TD_SEEK64 26
41 #define TD_FORMAT64 27
42 #endif
44 /* Protos */
46 struct NepClassMS * GM_UNIQUENAME(usbAttemptInterfaceBinding)(struct NepMSBase *nh, struct PsdInterface *pif);
47 struct NepClassMS * GM_UNIQUENAME(usbForceInterfaceBinding)(struct NepMSBase *nh, struct PsdInterface *pif);
48 void GM_UNIQUENAME(usbReleaseInterfaceBinding)(struct NepMSBase *nh, struct NepClassMS *ncm);
50 struct NepClassMS * GM_UNIQUENAME(nAllocMS)(void);
51 void GM_UNIQUENAME(nFreeMS)(struct NepClassMS *ncm);
53 BOOL GM_UNIQUENAME(nLoadClassConfig)(struct NepMSBase *nh);
54 BOOL GM_UNIQUENAME(nLoadBindingConfig)(struct NepClassMS *ncm);
55 LONG GM_UNIQUENAME(nOpenBindingCfgWindow)(struct NepMSBase *nh, struct NepClassMS *ncm);
57 void GM_UNIQUENAME(nGUITaskCleanup)(struct NepClassMS *ncm);
58 BOOL GM_UNIQUENAME(nStoreConfig)(struct NepClassMS *ncm);
60 LONG nScsiDirect(struct NepClassMS *ncm, struct SCSICmd *scsicmd);
61 LONG nScsiDirectBulk(struct NepClassMS *ncm, struct SCSICmd *scsicmd);
62 LONG nScsiDirectCBI(struct NepClassMS *ncm, struct SCSICmd *scsicmd);
63 LONG nBulkReset(struct NepClassMS *ncm);
64 void nLockXFer(struct NepClassMS *ncm);
65 void nUnlockXFer(struct NepClassMS *ncm);
66 LONG nRead64(struct NepClassMS *ncm, struct IOStdReq *ioreq);
67 LONG nWrite64(struct NepClassMS *ncm, struct IOStdReq *ioreq);
68 LONG nFormat64(struct NepClassMS *ncm, struct IOStdReq *ioreq);
69 LONG nSeek64(struct NepClassMS *ncm, struct IOStdReq *ioreq);
70 LONG nGetGeometry(struct NepClassMS *ncm, struct IOStdReq *ioreq);
71 LONG nGetWriteProtect(struct NepClassMS *ncm);
72 LONG nStartStop(struct NepClassMS *ncm, struct IOStdReq *ioreq);
74 BOOL nStartRemovableTask(struct Library *ps, struct NepMSBase *nh);
75 struct NepMSBase * GM_UNIQUENAME(nAllocRT)(void);
76 void GM_UNIQUENAME(nFreeRT)(struct NepMSBase *nh);
77 void nUnmountPartition(struct NepClassMS *ncm);
78 LONG nIOCmdTunnel(struct NepClassMS *ncm, struct IOStdReq *ioreq);
79 LONG nScsiDirectTunnel(struct NepClassMS *ncm, struct SCSICmd *scsicmd);
81 BPTR CreateSegment(struct NepClassMS *ncm, const ULONG *MyData);
82 struct DeviceNode * FindMatchingDevice(struct NepClassMS *ncm, struct DosEnvec *envec);
83 void CheckFATPartition(struct NepClassMS *ncm, ULONG startblock);
84 void ProcessRDB(struct NepClassMS *ncm);
85 void AutoMountCD(struct NepClassMS *ncm);
86 void CheckISO9660(struct NepClassMS *ncm);
88 void AutoDetectMaxTransfer(struct NepClassMS *ncm);
90 AROS_UFP0(void, GM_UNIQUENAME(nMSTask));
91 AROS_UFP0(void, GM_UNIQUENAME(nRemovableTask));
92 AROS_UFP0(void, GM_UNIQUENAME(nGUITask));
94 AROS_UFP3(LONG, GM_UNIQUENAME(LUNListDisplayHook),
95 AROS_UFPA(struct Hook *, hook, A0),
96 AROS_UFPA(char **, strarr, A2),
97 AROS_UFPA(struct NepClassMS *, ncm, A1));
99 BOOL CheckPartitions(struct NepClassMS *ncm);
101 #endif /* MASSSTORAGE_CLASS_H */