1*9663SMark.Logan@Sun.COM /* 2*9663SMark.Logan@Sun.COM libparted - a library for manipulating disk partitions 3*9663SMark.Logan@Sun.COM Copyright (C) 1999, 2000, 2001, 2002, 2007 Free Software Foundation, Inc. 4*9663SMark.Logan@Sun.COM 5*9663SMark.Logan@Sun.COM This program is free software; you can redistribute it and/or modify 6*9663SMark.Logan@Sun.COM it under the terms of the GNU General Public License as published by 7*9663SMark.Logan@Sun.COM the Free Software Foundation; either version 3 of the License, or 8*9663SMark.Logan@Sun.COM (at your option) any later version. 9*9663SMark.Logan@Sun.COM 10*9663SMark.Logan@Sun.COM This program is distributed in the hope that it will be useful, 11*9663SMark.Logan@Sun.COM but WITHOUT ANY WARRANTY; without even the implied warranty of 12*9663SMark.Logan@Sun.COM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*9663SMark.Logan@Sun.COM GNU General Public License for more details. 14*9663SMark.Logan@Sun.COM 15*9663SMark.Logan@Sun.COM You should have received a copy of the GNU General Public License 16*9663SMark.Logan@Sun.COM along with this program. If not, see <http://www.gnu.org/licenses/>. 17*9663SMark.Logan@Sun.COM */ 18*9663SMark.Logan@Sun.COM 19*9663SMark.Logan@Sun.COM /** 20*9663SMark.Logan@Sun.COM * \addtogroup PedDisk 21*9663SMark.Logan@Sun.COM * @{ 22*9663SMark.Logan@Sun.COM */ 23*9663SMark.Logan@Sun.COM 24*9663SMark.Logan@Sun.COM /** \file disk.h */ 25*9663SMark.Logan@Sun.COM 26*9663SMark.Logan@Sun.COM #ifndef PED_DISK_H_INCLUDED 27*9663SMark.Logan@Sun.COM #define PED_DISK_H_INCLUDED 28*9663SMark.Logan@Sun.COM 29*9663SMark.Logan@Sun.COM /** 30*9663SMark.Logan@Sun.COM * Partition types 31*9663SMark.Logan@Sun.COM */ 32*9663SMark.Logan@Sun.COM enum _PedPartitionType { 33*9663SMark.Logan@Sun.COM PED_PARTITION_NORMAL = 0x00, 34*9663SMark.Logan@Sun.COM PED_PARTITION_LOGICAL = 0x01, 35*9663SMark.Logan@Sun.COM PED_PARTITION_EXTENDED = 0x02, 36*9663SMark.Logan@Sun.COM PED_PARTITION_FREESPACE = 0x04, 37*9663SMark.Logan@Sun.COM PED_PARTITION_METADATA = 0x08, 38*9663SMark.Logan@Sun.COM PED_PARTITION_PROTECTED = 0x10 39*9663SMark.Logan@Sun.COM }; 40*9663SMark.Logan@Sun.COM 41*9663SMark.Logan@Sun.COM /** 42*9663SMark.Logan@Sun.COM * Partition flags. 43*9663SMark.Logan@Sun.COM */ 44*9663SMark.Logan@Sun.COM enum _PedPartitionFlag { 45*9663SMark.Logan@Sun.COM PED_PARTITION_BOOT=1, 46*9663SMark.Logan@Sun.COM PED_PARTITION_ROOT=2, 47*9663SMark.Logan@Sun.COM PED_PARTITION_SWAP=3, 48*9663SMark.Logan@Sun.COM PED_PARTITION_HIDDEN=4, 49*9663SMark.Logan@Sun.COM PED_PARTITION_RAID=5, 50*9663SMark.Logan@Sun.COM PED_PARTITION_LVM=6, 51*9663SMark.Logan@Sun.COM PED_PARTITION_LBA=7, 52*9663SMark.Logan@Sun.COM PED_PARTITION_HPSERVICE=8, 53*9663SMark.Logan@Sun.COM PED_PARTITION_PALO=9, 54*9663SMark.Logan@Sun.COM PED_PARTITION_PREP=10, 55*9663SMark.Logan@Sun.COM PED_PARTITION_MSFT_RESERVED=11 56*9663SMark.Logan@Sun.COM }; 57*9663SMark.Logan@Sun.COM #define PED_PARTITION_FIRST_FLAG PED_PARTITION_BOOT 58*9663SMark.Logan@Sun.COM #define PED_PARTITION_LAST_FLAG PED_PARTITION_MSFT_RESERVED 59*9663SMark.Logan@Sun.COM 60*9663SMark.Logan@Sun.COM enum _PedDiskTypeFeature { 61*9663SMark.Logan@Sun.COM PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */ 62*9663SMark.Logan@Sun.COM PED_DISK_TYPE_PARTITION_NAME=2 /**< supports partition names */ 63*9663SMark.Logan@Sun.COM }; 64*9663SMark.Logan@Sun.COM #define PED_DISK_TYPE_FIRST_FEATURE PED_DISK_TYPE_EXTENDED 65*9663SMark.Logan@Sun.COM #define PED_DISK_TYPE_LAST_FEATURE PED_DISK_TYPE_PARTITION_NAME 66*9663SMark.Logan@Sun.COM 67*9663SMark.Logan@Sun.COM struct _PedDisk; 68*9663SMark.Logan@Sun.COM struct _PedPartition; 69*9663SMark.Logan@Sun.COM struct _PedDiskOps; 70*9663SMark.Logan@Sun.COM struct _PedDiskType; 71*9663SMark.Logan@Sun.COM struct _PedDiskArchOps; 72*9663SMark.Logan@Sun.COM 73*9663SMark.Logan@Sun.COM typedef enum _PedPartitionType PedPartitionType; 74*9663SMark.Logan@Sun.COM typedef enum _PedPartitionFlag PedPartitionFlag; 75*9663SMark.Logan@Sun.COM typedef enum _PedDiskTypeFeature PedDiskTypeFeature; 76*9663SMark.Logan@Sun.COM typedef struct _PedDisk PedDisk; 77*9663SMark.Logan@Sun.COM typedef struct _PedPartition PedPartition; 78*9663SMark.Logan@Sun.COM typedef const struct _PedDiskOps PedDiskOps; 79*9663SMark.Logan@Sun.COM typedef struct _PedDiskType PedDiskType; 80*9663SMark.Logan@Sun.COM typedef const struct _PedDiskArchOps PedDiskArchOps; 81*9663SMark.Logan@Sun.COM 82*9663SMark.Logan@Sun.COM #include <parted/device.h> 83*9663SMark.Logan@Sun.COM #include <parted/filesys.h> 84*9663SMark.Logan@Sun.COM #include <parted/natmath.h> 85*9663SMark.Logan@Sun.COM #include <parted/geom.h> 86*9663SMark.Logan@Sun.COM 87*9663SMark.Logan@Sun.COM /** @} */ 88*9663SMark.Logan@Sun.COM 89*9663SMark.Logan@Sun.COM /** 90*9663SMark.Logan@Sun.COM * \addtogroup PedPartition 91*9663SMark.Logan@Sun.COM * 92*9663SMark.Logan@Sun.COM * @{ 93*9663SMark.Logan@Sun.COM */ 94*9663SMark.Logan@Sun.COM 95*9663SMark.Logan@Sun.COM /** \file disk.h */ 96*9663SMark.Logan@Sun.COM 97*9663SMark.Logan@Sun.COM /** 98*9663SMark.Logan@Sun.COM * PedPartition structure represents a partition. 99*9663SMark.Logan@Sun.COM */ 100*9663SMark.Logan@Sun.COM struct _PedPartition { 101*9663SMark.Logan@Sun.COM PedPartition* prev; 102*9663SMark.Logan@Sun.COM PedPartition* next; 103*9663SMark.Logan@Sun.COM 104*9663SMark.Logan@Sun.COM /**< the partition table of the partition */ 105*9663SMark.Logan@Sun.COM PedDisk* disk; 106*9663SMark.Logan@Sun.COM PedGeometry geom; /**< geometry of the partition */ 107*9663SMark.Logan@Sun.COM 108*9663SMark.Logan@Sun.COM /**< the partition number: In Linux, this is the 109*9663SMark.Logan@Sun.COM same as the minor number. No assumption 110*9663SMark.Logan@Sun.COM should be made about "num" and "type" 111*9663SMark.Logan@Sun.COM - different disk labels have different rules. */ 112*9663SMark.Logan@Sun.COM 113*9663SMark.Logan@Sun.COM int num; 114*9663SMark.Logan@Sun.COM PedPartitionType type; /**< the type of partition: a bit field of 115*9663SMark.Logan@Sun.COM PED_PARTITION_LOGICAL, PED_PARTITION_EXTENDED, 116*9663SMark.Logan@Sun.COM PED_PARTITION_METADATA 117*9663SMark.Logan@Sun.COM and PED_PARTITION_FREESPACE. 118*9663SMark.Logan@Sun.COM Both the first two, and the last two are 119*9663SMark.Logan@Sun.COM mutually exclusive. 120*9663SMark.Logan@Sun.COM An extended partition is a primary 121*9663SMark.Logan@Sun.COM partition that may contain logical partitions. 122*9663SMark.Logan@Sun.COM There is at most one extended partition on 123*9663SMark.Logan@Sun.COM a disk. 124*9663SMark.Logan@Sun.COM A logical partition is like a primary 125*9663SMark.Logan@Sun.COM partition, except it's inside an extended 126*9663SMark.Logan@Sun.COM partition. Internally, pseudo partitions are 127*9663SMark.Logan@Sun.COM allocated to represent free space, or disk 128*9663SMark.Logan@Sun.COM label meta-data. These have the 129*9663SMark.Logan@Sun.COM PED_PARTITION_FREESPACE or 130*9663SMark.Logan@Sun.COM PED_PARTITION_METADATA bit set. */ 131*9663SMark.Logan@Sun.COM 132*9663SMark.Logan@Sun.COM /**< The type of file system on the partition. NULL if unknown. */ 133*9663SMark.Logan@Sun.COM const PedFileSystemType* fs_type; 134*9663SMark.Logan@Sun.COM 135*9663SMark.Logan@Sun.COM /**< Only used for an extended partition. The list of logical 136*9663SMark.Logan@Sun.COM partitions (and free space and metadata within the extended 137*9663SMark.Logan@Sun.COM partition). */ 138*9663SMark.Logan@Sun.COM PedPartition* part_list; 139*9663SMark.Logan@Sun.COM 140*9663SMark.Logan@Sun.COM void* disk_specific; 141*9663SMark.Logan@Sun.COM }; 142*9663SMark.Logan@Sun.COM 143*9663SMark.Logan@Sun.COM /** @} */ 144*9663SMark.Logan@Sun.COM 145*9663SMark.Logan@Sun.COM /** 146*9663SMark.Logan@Sun.COM * \addtogroup PedDisk 147*9663SMark.Logan@Sun.COM * @{ 148*9663SMark.Logan@Sun.COM */ 149*9663SMark.Logan@Sun.COM 150*9663SMark.Logan@Sun.COM /** 151*9663SMark.Logan@Sun.COM * Represents a disk label (partition table). 152*9663SMark.Logan@Sun.COM */ 153*9663SMark.Logan@Sun.COM struct _PedDisk { 154*9663SMark.Logan@Sun.COM PedDevice* dev; /**< the device where the 155*9663SMark.Logan@Sun.COM partition table lies */ 156*9663SMark.Logan@Sun.COM const PedDiskType* type; /**< type of disk label */ 157*9663SMark.Logan@Sun.COM const int* block_sizes; /**< block sizes supported 158*9663SMark.Logan@Sun.COM by this label */ 159*9663SMark.Logan@Sun.COM PedPartition* part_list; /**< list of partitions. Access with 160*9663SMark.Logan@Sun.COM ped_disk_next_partition() */ 161*9663SMark.Logan@Sun.COM 162*9663SMark.Logan@Sun.COM void* disk_specific; 163*9663SMark.Logan@Sun.COM 164*9663SMark.Logan@Sun.COM /* office use only ;-) */ 165*9663SMark.Logan@Sun.COM int needs_clobber; /**< clobber before write? */ 166*9663SMark.Logan@Sun.COM int update_mode; /**< mode without free/metadata 167*9663SMark.Logan@Sun.COM partitions, for easier 168*9663SMark.Logan@Sun.COM update */ 169*9663SMark.Logan@Sun.COM }; 170*9663SMark.Logan@Sun.COM 171*9663SMark.Logan@Sun.COM struct _PedDiskOps { 172*9663SMark.Logan@Sun.COM /* disk label operations */ 173*9663SMark.Logan@Sun.COM int (*probe) (const PedDevice *dev); 174*9663SMark.Logan@Sun.COM int (*clobber) (PedDevice* dev); 175*9663SMark.Logan@Sun.COM PedDisk* (*alloc) (const PedDevice* dev); 176*9663SMark.Logan@Sun.COM PedDisk* (*duplicate) (const PedDisk* disk); 177*9663SMark.Logan@Sun.COM void (*free) (PedDisk* disk); 178*9663SMark.Logan@Sun.COM int (*read) (PedDisk* disk); 179*9663SMark.Logan@Sun.COM int (*write) (const PedDisk* disk); 180*9663SMark.Logan@Sun.COM /** \todo add label guessing op here */ 181*9663SMark.Logan@Sun.COM 182*9663SMark.Logan@Sun.COM /* partition operations */ 183*9663SMark.Logan@Sun.COM PedPartition* (*partition_new) ( 184*9663SMark.Logan@Sun.COM const PedDisk* disk, 185*9663SMark.Logan@Sun.COM PedPartitionType part_type, 186*9663SMark.Logan@Sun.COM const PedFileSystemType* fs_type, 187*9663SMark.Logan@Sun.COM PedSector start, 188*9663SMark.Logan@Sun.COM PedSector end); 189*9663SMark.Logan@Sun.COM PedPartition* (*partition_duplicate) (const PedPartition* part); 190*9663SMark.Logan@Sun.COM void (*partition_destroy) (PedPartition* part); 191*9663SMark.Logan@Sun.COM int (*partition_set_system) (PedPartition* part, 192*9663SMark.Logan@Sun.COM const PedFileSystemType* fs_type); 193*9663SMark.Logan@Sun.COM int (*partition_set_flag) ( 194*9663SMark.Logan@Sun.COM PedPartition* part, 195*9663SMark.Logan@Sun.COM PedPartitionFlag flag, 196*9663SMark.Logan@Sun.COM int state); 197*9663SMark.Logan@Sun.COM int (*partition_get_flag) ( 198*9663SMark.Logan@Sun.COM const PedPartition* part, 199*9663SMark.Logan@Sun.COM PedPartitionFlag flag); 200*9663SMark.Logan@Sun.COM int (*partition_is_flag_available) ( 201*9663SMark.Logan@Sun.COM const PedPartition* part, 202*9663SMark.Logan@Sun.COM PedPartitionFlag flag); 203*9663SMark.Logan@Sun.COM void (*partition_set_name) (PedPartition* part, const char* name); 204*9663SMark.Logan@Sun.COM const char* (*partition_get_name) (const PedPartition* part); 205*9663SMark.Logan@Sun.COM int (*partition_align) (PedPartition* part, 206*9663SMark.Logan@Sun.COM const PedConstraint* constraint); 207*9663SMark.Logan@Sun.COM int (*partition_enumerate) (PedPartition* part); 208*9663SMark.Logan@Sun.COM 209*9663SMark.Logan@Sun.COM /* other */ 210*9663SMark.Logan@Sun.COM int (*alloc_metadata) (PedDisk* disk); 211*9663SMark.Logan@Sun.COM int (*get_max_primary_partition_count) (const PedDisk* disk); 212*9663SMark.Logan@Sun.COM }; 213*9663SMark.Logan@Sun.COM 214*9663SMark.Logan@Sun.COM struct _PedDiskType { 215*9663SMark.Logan@Sun.COM PedDiskType* next; 216*9663SMark.Logan@Sun.COM const char* name; /**< the name of the partition table type. 217*9663SMark.Logan@Sun.COM \todo not very intuitive name */ 218*9663SMark.Logan@Sun.COM PedDiskOps* const ops; 219*9663SMark.Logan@Sun.COM 220*9663SMark.Logan@Sun.COM PedDiskTypeFeature features; /**< bitmap of supported features */ 221*9663SMark.Logan@Sun.COM }; 222*9663SMark.Logan@Sun.COM 223*9663SMark.Logan@Sun.COM /** 224*9663SMark.Logan@Sun.COM * Architecture-specific operations. i.e. communication with kernel (or 225*9663SMark.Logan@Sun.COM * whatever) about changes, etc. 226*9663SMark.Logan@Sun.COM */ 227*9663SMark.Logan@Sun.COM struct _PedDiskArchOps { 228*9663SMark.Logan@Sun.COM char* (*partition_get_path) (const PedPartition* part); 229*9663SMark.Logan@Sun.COM int (*partition_is_busy) (const PedPartition* part); 230*9663SMark.Logan@Sun.COM int (*disk_commit) (PedDisk* disk); 231*9663SMark.Logan@Sun.COM }; 232*9663SMark.Logan@Sun.COM 233*9663SMark.Logan@Sun.COM extern void ped_disk_type_register (PedDiskType* type); 234*9663SMark.Logan@Sun.COM extern void ped_disk_type_unregister (PedDiskType* type); 235*9663SMark.Logan@Sun.COM 236*9663SMark.Logan@Sun.COM extern PedDiskType* ped_disk_type_get_next (PedDiskType* type); 237*9663SMark.Logan@Sun.COM extern PedDiskType* ped_disk_type_get (const char* name); 238*9663SMark.Logan@Sun.COM extern int ped_disk_type_check_feature (const PedDiskType* disk_type, 239*9663SMark.Logan@Sun.COM PedDiskTypeFeature feature); 240*9663SMark.Logan@Sun.COM 241*9663SMark.Logan@Sun.COM extern PedDiskType* ped_disk_probe (PedDevice* dev); 242*9663SMark.Logan@Sun.COM extern int ped_disk_clobber (PedDevice* dev); 243*9663SMark.Logan@Sun.COM extern int ped_disk_clobber_exclude (PedDevice* dev, 244*9663SMark.Logan@Sun.COM const PedDiskType* exclude); 245*9663SMark.Logan@Sun.COM extern PedDisk* ped_disk_new (PedDevice* dev); 246*9663SMark.Logan@Sun.COM extern PedDisk* ped_disk_new_fresh (PedDevice* dev, 247*9663SMark.Logan@Sun.COM const PedDiskType* disk_type); 248*9663SMark.Logan@Sun.COM extern PedDisk* ped_disk_duplicate (const PedDisk* old_disk); 249*9663SMark.Logan@Sun.COM extern void ped_disk_destroy (PedDisk* disk); 250*9663SMark.Logan@Sun.COM extern int ped_disk_commit (PedDisk* disk); 251*9663SMark.Logan@Sun.COM extern int ped_disk_commit_to_dev (PedDisk* disk); 252*9663SMark.Logan@Sun.COM extern int ped_disk_commit_to_os (PedDisk* disk); 253*9663SMark.Logan@Sun.COM extern int ped_disk_check (const PedDisk* disk); 254*9663SMark.Logan@Sun.COM extern void ped_disk_print (const PedDisk* disk); 255*9663SMark.Logan@Sun.COM 256*9663SMark.Logan@Sun.COM extern int ped_disk_get_primary_partition_count (const PedDisk* disk); 257*9663SMark.Logan@Sun.COM extern int ped_disk_get_last_partition_num (const PedDisk* disk); 258*9663SMark.Logan@Sun.COM extern int ped_disk_get_max_primary_partition_count (const PedDisk* disk); 259*9663SMark.Logan@Sun.COM 260*9663SMark.Logan@Sun.COM /** @} */ 261*9663SMark.Logan@Sun.COM 262*9663SMark.Logan@Sun.COM /** 263*9663SMark.Logan@Sun.COM * \addtogroup PedPartition 264*9663SMark.Logan@Sun.COM * 265*9663SMark.Logan@Sun.COM * @{ 266*9663SMark.Logan@Sun.COM */ 267*9663SMark.Logan@Sun.COM 268*9663SMark.Logan@Sun.COM extern PedPartition* ped_partition_new (const PedDisk* disk, 269*9663SMark.Logan@Sun.COM PedPartitionType type, 270*9663SMark.Logan@Sun.COM const PedFileSystemType* fs_type, 271*9663SMark.Logan@Sun.COM PedSector start, 272*9663SMark.Logan@Sun.COM PedSector end); 273*9663SMark.Logan@Sun.COM extern void ped_partition_destroy (PedPartition* part); 274*9663SMark.Logan@Sun.COM extern int ped_partition_is_active (const PedPartition* part); 275*9663SMark.Logan@Sun.COM extern int ped_partition_set_flag (PedPartition* part, PedPartitionFlag flag, 276*9663SMark.Logan@Sun.COM int state); 277*9663SMark.Logan@Sun.COM extern int ped_partition_get_flag (const PedPartition* part, 278*9663SMark.Logan@Sun.COM PedPartitionFlag flag); 279*9663SMark.Logan@Sun.COM extern int ped_partition_is_flag_available (const PedPartition* part, 280*9663SMark.Logan@Sun.COM PedPartitionFlag flag); 281*9663SMark.Logan@Sun.COM extern int ped_partition_set_system (PedPartition* part, 282*9663SMark.Logan@Sun.COM const PedFileSystemType* fs_type); 283*9663SMark.Logan@Sun.COM extern int ped_partition_set_name (PedPartition* part, const char* name); 284*9663SMark.Logan@Sun.COM extern const char* ped_partition_get_name (const PedPartition* part); 285*9663SMark.Logan@Sun.COM extern int ped_partition_is_busy (const PedPartition* part); 286*9663SMark.Logan@Sun.COM extern char* ped_partition_get_path (const PedPartition* part); 287*9663SMark.Logan@Sun.COM 288*9663SMark.Logan@Sun.COM extern const char* ped_partition_type_get_name (PedPartitionType part_type); 289*9663SMark.Logan@Sun.COM extern const char* ped_partition_flag_get_name (PedPartitionFlag flag); 290*9663SMark.Logan@Sun.COM extern PedPartitionFlag ped_partition_flag_get_by_name (const char* name); 291*9663SMark.Logan@Sun.COM extern PedPartitionFlag ped_partition_flag_next (PedPartitionFlag flag); 292*9663SMark.Logan@Sun.COM 293*9663SMark.Logan@Sun.COM /** @} */ 294*9663SMark.Logan@Sun.COM 295*9663SMark.Logan@Sun.COM /** 296*9663SMark.Logan@Sun.COM * \addtogroup PedDisk 297*9663SMark.Logan@Sun.COM * @{ 298*9663SMark.Logan@Sun.COM */ 299*9663SMark.Logan@Sun.COM 300*9663SMark.Logan@Sun.COM extern int ped_disk_add_partition (PedDisk* disk, PedPartition* part, 301*9663SMark.Logan@Sun.COM const PedConstraint* constraint); 302*9663SMark.Logan@Sun.COM extern int ped_disk_remove_partition (PedDisk* disk, PedPartition* part); 303*9663SMark.Logan@Sun.COM extern int ped_disk_delete_partition (PedDisk* disk, PedPartition* part); 304*9663SMark.Logan@Sun.COM extern int ped_disk_delete_all (PedDisk* disk); 305*9663SMark.Logan@Sun.COM extern int ped_disk_set_partition_geom (PedDisk* disk, PedPartition* part, 306*9663SMark.Logan@Sun.COM const PedConstraint* constraint, 307*9663SMark.Logan@Sun.COM PedSector start, PedSector end); 308*9663SMark.Logan@Sun.COM extern int ped_disk_maximize_partition (PedDisk* disk, PedPartition* part, 309*9663SMark.Logan@Sun.COM const PedConstraint* constraint); 310*9663SMark.Logan@Sun.COM extern PedGeometry* ped_disk_get_max_partition_geometry (PedDisk* disk, 311*9663SMark.Logan@Sun.COM PedPartition* part, const PedConstraint* constraint); 312*9663SMark.Logan@Sun.COM extern int ped_disk_minimize_extended_partition (PedDisk* disk); 313*9663SMark.Logan@Sun.COM 314*9663SMark.Logan@Sun.COM extern PedPartition* ped_disk_next_partition (const PedDisk* disk, 315*9663SMark.Logan@Sun.COM const PedPartition* part); 316*9663SMark.Logan@Sun.COM extern PedPartition* ped_disk_get_partition (const PedDisk* disk, int num); 317*9663SMark.Logan@Sun.COM extern PedPartition* ped_disk_get_partition_by_sector (const PedDisk* disk, 318*9663SMark.Logan@Sun.COM PedSector sect); 319*9663SMark.Logan@Sun.COM extern PedPartition* ped_disk_extended_partition (const PedDisk* disk); 320*9663SMark.Logan@Sun.COM 321*9663SMark.Logan@Sun.COM /* internal functions */ 322*9663SMark.Logan@Sun.COM extern PedDisk* _ped_disk_alloc (const PedDevice* dev, const PedDiskType* type); 323*9663SMark.Logan@Sun.COM extern void _ped_disk_free (PedDisk* disk); 324*9663SMark.Logan@Sun.COM 325*9663SMark.Logan@Sun.COM 326*9663SMark.Logan@Sun.COM /** @} */ 327*9663SMark.Logan@Sun.COM 328*9663SMark.Logan@Sun.COM /** 329*9663SMark.Logan@Sun.COM * \addtogroup PedPartition 330*9663SMark.Logan@Sun.COM * 331*9663SMark.Logan@Sun.COM * @{ 332*9663SMark.Logan@Sun.COM */ 333*9663SMark.Logan@Sun.COM 334*9663SMark.Logan@Sun.COM extern PedPartition* _ped_partition_alloc (const PedDisk* disk, 335*9663SMark.Logan@Sun.COM PedPartitionType type, 336*9663SMark.Logan@Sun.COM const PedFileSystemType* fs_type, 337*9663SMark.Logan@Sun.COM PedSector start, 338*9663SMark.Logan@Sun.COM PedSector end); 339*9663SMark.Logan@Sun.COM extern void _ped_partition_free (PedPartition* part); 340*9663SMark.Logan@Sun.COM 341*9663SMark.Logan@Sun.COM extern int _ped_partition_attempt_align ( 342*9663SMark.Logan@Sun.COM PedPartition* part, const PedConstraint* external, 343*9663SMark.Logan@Sun.COM PedConstraint* internal); 344*9663SMark.Logan@Sun.COM 345*9663SMark.Logan@Sun.COM #endif /* PED_DISK_H_INCLUDED */ 346*9663SMark.Logan@Sun.COM 347*9663SMark.Logan@Sun.COM /** @} */ 348*9663SMark.Logan@Sun.COM 349