1/*
2    libparted - a library for manipulating disk partitions
3    Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef PARTED_H_INCLUDED
20#define PARTED_H_INCLUDED
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26typedef struct _PedArchitecture PedArchitecture;
27
28#include <parted/constraint.h>
29#include <parted/device.h>
30#include <parted/disk.h>
31#include <parted/exception.h>
32#include <parted/filesys.h>
33#include <parted/natmath.h>
34#include <parted/unit.h>
35
36#include <stdint.h>
37#include <stdlib.h>
38#include <string.h>
39
40struct _PedArchitecture {
41	PedDiskArchOps*		disk_ops;
42	PedDeviceArchOps*	dev_ops;
43};
44
45extern const PedArchitecture*	ped_architecture;
46
47/* the architecture can't be changed if there are any PedDevice's.
48 * i.e. you should only be doing this if it's the FIRST thing you do...
49 */
50extern int ped_set_architecture (const PedArchitecture* arch);
51
52extern const char* ped_get_version ();
53
54extern void* ped_malloc (size_t size);
55extern void* ped_calloc (size_t size);
56extern int ped_realloc (void** ptr, size_t size);
57extern void ped_free (void* ptr);
58
59#ifdef __cplusplus
60}
61#endif
62
63#endif /* PARTED_H_INCLUDED */
64