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