move registering of the ROM region after prepare execbase. rename i386-pc's kernel...
[AROS.git] / workbench / fs / ntfs / ntfs_protos.h
blobbb598583698086408ecd29b9f13a197d7a1efdb9
1 /*
2 * ntfs.handler - New Technology FileSystem handler
4 * Copyright © 2012 The AROS Development Team
6 * This program is free software; you can redistribute it and/or modify it
7 * under the same terms as AROS itself.
9 * $Id $
12 #ifndef NTFS_PROTOS_H
13 #define NTFS_PROTOS_H
15 /* disk.c */
16 void ProcessDiskChange (void);
17 void DoDiskInsert();
18 BOOL AttemptDestroyVolume(struct FSData *);
19 void DoDiskRemove();
20 void SendVolumePacket(struct DosList *, ULONG);
22 LONG InitDiskHandler(struct FileSysStartupMsg *);
23 void CleanupDiskHandler(void);
24 void UpdateDisk(void);
25 void Probe_64bit_support(void);
26 ULONG AccessDisk(BOOL, ULONG, ULONG, ULONG, UBYTE *);
28 /* info.c */
29 void FillDiskInfo (struct InfoData *);
31 /* packet.c */
32 void ProcessPackets(void);
33 void ReplyPacket(struct DosPacket *);
35 /* direntry.c */
36 LONG InitDirHandle(struct FSData *, struct DirHandle *, BOOL);
37 LONG ReleaseDirHandle(struct DirHandle *);
39 LONG GetDirEntry(struct DirHandle *, ULONG, struct DirEntry *);
40 LONG GetNextDirEntry(struct DirHandle *, struct DirEntry *, BOOL);
41 LONG GetDirEntryByCluster(struct DirHandle *, UQUAD, struct DirEntry *);
43 LONG GetDirEntryByName(struct DirHandle *, STRPTR, ULONG, struct DirEntry *);
44 LONG GetDirEntryByPath(struct DirHandle *, STRPTR, ULONG, struct DirEntry *);
46 LONG GetParentDir(struct DirHandle *, struct DirEntry *);
48 LONG UpdateDirEntry(struct DirEntry *);
50 LONG FillFIB(struct ExtFileLock *, struct FileInfoBlock *);
52 /* names.c */
53 LONG SetDirEntryName(struct DirEntry *, STRPTR, ULONG);
55 /* ntfs.c */
56 LONG ReadBootSector (struct FSData *);
57 void FreeBootSector(struct FSData *);
58 ULONG PostProcessMFTRecord(struct FSData *, struct MFTRecordEntry *, int, UBYTE *);
59 ULONG PreProcessMFTRecord(struct FSData *, struct MFTRecordEntry *, int);
60 IPTR InitMFTEntry(struct NTFSMFTEntry *, ULONG);
61 IPTR ReadMFTAttribData(struct NTFSMFTAttr *, struct MFTAttr *, UBYTE *, UQUAD, ULONG, int);
62 IPTR ReadMFTAttrib(struct NTFSMFTAttr *, UBYTE *, UQUAD, ULONG, int);
63 struct MFTAttr *MapMFTAttrib (struct NTFSMFTAttr *, struct NTFSMFTEntry *, UBYTE);
64 struct MFTAttr *FindMFTAttrib(struct NTFSMFTAttr *, UBYTE);
65 void FreeMFTAttrib(struct NTFSMFTAttr *);
66 LONG ProcessFSEntry(struct NTFSMFTEntry *, struct DirEntry *, ULONG **);
68 /* ops.c */
69 LONG OpLockFile(struct ExtFileLock *, UBYTE *, ULONG, LONG, struct ExtFileLock **);
70 void OpUnlockFile(struct ExtFileLock *);
71 LONG OpCopyLock(struct ExtFileLock *, struct ExtFileLock **);
72 LONG OpLockParent(struct ExtFileLock *, struct ExtFileLock **);
73 LONG OpOpenFile(struct ExtFileLock *, UBYTE *, ULONG, LONG, struct ExtFileLock **);
74 LONG OpDeleteFile(struct ExtFileLock *, UBYTE *, ULONG);
75 LONG OpRenameFile(struct ExtFileLock *, UBYTE *, ULONG, struct ExtFileLock *, UBYTE *, ULONG);
76 LONG OpCreateDir(struct ExtFileLock *, UBYTE *, ULONG, struct ExtFileLock **);
77 LONG OpRead(struct ExtFileLock *, UBYTE *, UQUAD, UQUAD *);
78 LONG OpWrite(struct ExtFileLock *, UBYTE *, UQUAD, UQUAD *);
79 LONG OpSetFileSize(struct ExtFileLock *, UQUAD, LONG, UQUAD *);
80 LONG OpSetProtect(struct ExtFileLock *, UBYTE *, ULONG, ULONG);
81 LONG OpSetDate(struct ExtFileLock *, UBYTE *, ULONG, struct DateStamp *);
82 LONG OpAddNotify(struct NotifyRequest *);
83 LONG OpRemoveNotify(struct NotifyRequest *);
85 /* lock.c */
86 LONG TestLock(struct ExtFileLock *);
87 LONG LockFileByName(struct ExtFileLock *, UBYTE *, LONG, LONG, struct ExtFileLock **);
88 LONG LockFile(struct DirEntry *, LONG, struct ExtFileLock **) ;
89 LONG LockRoot(LONG, struct ExtFileLock **);
90 LONG CopyLock(struct ExtFileLock *, struct ExtFileLock **);
91 void FreeLock(struct ExtFileLock *);
93 /* notify.c */
94 void SendNotify(struct NotifyRequest *);
95 void SendNotifyByLock(struct FSData *, struct GlobalLock *);
96 void SendNotifyByDirEntry(struct FSData *, struct DirEntry *);
97 void ProcessNotify(void);
99 /* timer.c */
100 LONG InitTimer(void);
101 void CleanupTimer(void);
102 void RestartTimer(void);
103 void HandleTimer(void);
105 /* support.c */
106 int ilog2(ULONG);
107 void NTFS2DateStamp(UQUAD *, struct DateStamp *);
108 #endif