xref: /haiku/src/add-ons/disk_systems/ntfs/NTFSAddOn.h (revision 25a7b01d15612846f332751841da3579db313082)
1*e1f99aaeSthreedeyes /*
2*e1f99aaeSthreedeyes  * Copyright 2007, Ingo Weinhold, ingo_weinhold@gmx.de.
3*e1f99aaeSthreedeyes  * Copyright 2008-2012, Axel Dörfler, axeld@pinc-software.de.
4*e1f99aaeSthreedeyes  * Copyright 2012, Gerasim Troeglazov (3dEyes**), 3dEyes@gmail.com
5*e1f99aaeSthreedeyes  *
6*e1f99aaeSthreedeyes  * Distributed under the terms of the MIT License.
7*e1f99aaeSthreedeyes  */
8*e1f99aaeSthreedeyes 
9*e1f99aaeSthreedeyes #ifndef _NTFS_ADD_ON_H
10*e1f99aaeSthreedeyes #define _NTFS_ADD_ON_H
11*e1f99aaeSthreedeyes 
12*e1f99aaeSthreedeyes #include <DiskSystemAddOn.h>
13*e1f99aaeSthreedeyes 
14*e1f99aaeSthreedeyes #ifndef MAX_PATH
15*e1f99aaeSthreedeyes #define MAX_PATH 1024
16*e1f99aaeSthreedeyes #endif
17*e1f99aaeSthreedeyes 
18*e1f99aaeSthreedeyes class NTFSAddOn : public BDiskSystemAddOn {
19*e1f99aaeSthreedeyes public:
20*e1f99aaeSthreedeyes 								NTFSAddOn();
21*e1f99aaeSthreedeyes 	virtual						~NTFSAddOn();
22*e1f99aaeSthreedeyes 
23*e1f99aaeSthreedeyes 	virtual	status_t			CreatePartitionHandle(
24*e1f99aaeSthreedeyes 									BMutablePartition* partition,
25*e1f99aaeSthreedeyes 									BPartitionHandle** handle);
26*e1f99aaeSthreedeyes 	virtual	status_t			GetParameterEditor(
27*e1f99aaeSthreedeyes 									B_PARAMETER_EDITOR_TYPE type,
28*e1f99aaeSthreedeyes 									BPartitionParameterEditor** editor);
29*e1f99aaeSthreedeyes 
30*e1f99aaeSthreedeyes 	virtual	bool				CanInitialize(
31*e1f99aaeSthreedeyes 									const BMutablePartition* partition);
32*e1f99aaeSthreedeyes 	virtual	status_t			ValidateInitialize(
33*e1f99aaeSthreedeyes 									const BMutablePartition* partition,
34*e1f99aaeSthreedeyes 									BString* name, const char* parameters);
35*e1f99aaeSthreedeyes 	virtual	status_t			Initialize(BMutablePartition* partition,
36*e1f99aaeSthreedeyes 									const char* name, const char* parameters,
37*e1f99aaeSthreedeyes 									BPartitionHandle** handle);
38*e1f99aaeSthreedeyes };
39*e1f99aaeSthreedeyes 
40*e1f99aaeSthreedeyes 
41*e1f99aaeSthreedeyes class NTFSPartitionHandle : public BPartitionHandle {
42*e1f99aaeSthreedeyes public:
43*e1f99aaeSthreedeyes 								NTFSPartitionHandle(
44*e1f99aaeSthreedeyes 									BMutablePartition* partition);
45*e1f99aaeSthreedeyes 								~NTFSPartitionHandle();
46*e1f99aaeSthreedeyes 
47*e1f99aaeSthreedeyes 			status_t			Init();
48*e1f99aaeSthreedeyes 
49*e1f99aaeSthreedeyes 	virtual	uint32				SupportedOperations(uint32 mask);
50*e1f99aaeSthreedeyes };
51*e1f99aaeSthreedeyes 
52*e1f99aaeSthreedeyes 
53*e1f99aaeSthreedeyes #endif	// _NTFS_ADD_ON_H
54