117 lines
3.4 KiB
C
Executable File
117 lines
3.4 KiB
C
Executable File
/*
|
|
libparted - a library for manipulating disk partitions
|
|
Copyright (C) 1999-2001, 2006-2007, 2009-2014, 2019-2023 Free Software
|
|
Foundation, Inc.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/**
|
|
* \addtogroup PedFileSystem
|
|
* @{
|
|
*/
|
|
|
|
/** \file filesys.h */
|
|
|
|
#ifndef PED_FILESYS_H_INCLUDED
|
|
#define PED_FILESYS_H_INCLUDED
|
|
|
|
typedef struct _PedFileSystem PedFileSystem;
|
|
typedef struct _PedFileSystemType PedFileSystemType;
|
|
typedef struct _PedFileSystemAlias PedFileSystemAlias;
|
|
typedef const struct _PedFileSystemOps PedFileSystemOps;
|
|
|
|
#include <parted/geom.h>
|
|
#include <parted/constraint.h>
|
|
#include <parted/timer.h>
|
|
|
|
struct _PedFileSystemOps {
|
|
PedGeometry* (*probe) (PedGeometry* geom);
|
|
};
|
|
|
|
/**
|
|
* Structure describing type of file system
|
|
*/
|
|
struct _PedFileSystemType {
|
|
PedFileSystemType* next;
|
|
const char* const name; /**< name of the file system type */
|
|
PedFileSystemOps* const ops;
|
|
};
|
|
|
|
/**
|
|
* Structure describing a file system alias. This is separate from
|
|
* PedFileSystemType because probing only looks through the list of types,
|
|
* and does not probe aliases separately.
|
|
*/
|
|
struct _PedFileSystemAlias {
|
|
PedFileSystemAlias* next;
|
|
PedFileSystemType* fs_type;
|
|
const char* alias;
|
|
int deprecated;
|
|
};
|
|
|
|
|
|
/**
|
|
* Structure describing file system
|
|
*/
|
|
struct _PedFileSystem {
|
|
PedFileSystemType* type; /**< the file system type */
|
|
PedGeometry* geom; /**< where the file system actually is */
|
|
int checked; /**< 1 if the file system has been checked.
|
|
0 otherwise. */
|
|
|
|
void* type_specific;
|
|
|
|
};
|
|
|
|
extern void ped_file_system_type_register (PedFileSystemType* type);
|
|
extern void ped_file_system_type_unregister (PedFileSystemType* type);
|
|
|
|
extern void ped_file_system_alias_register (PedFileSystemType* type,
|
|
const char* alias, int deprecated);
|
|
extern void ped_file_system_alias_unregister (PedFileSystemType* type,
|
|
const char* alias);
|
|
|
|
extern PedFileSystemType* ped_file_system_type_get (const char* name);
|
|
extern PedFileSystemType*
|
|
ped_file_system_type_get_next (const PedFileSystemType* fs_type)
|
|
|
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
|
|
__attribute ((__pure__))
|
|
#endif
|
|
;
|
|
|
|
extern PedFileSystemAlias*
|
|
ped_file_system_alias_get_next (const PedFileSystemAlias* fs_alias)
|
|
|
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
|
|
__attribute ((__pure__))
|
|
#endif
|
|
;
|
|
|
|
extern PedFileSystemType* ped_file_system_probe (PedGeometry* geom);
|
|
extern PedGeometry* ped_file_system_probe_specific (
|
|
const PedFileSystemType* fs_type,
|
|
PedGeometry* geom);
|
|
|
|
PedFileSystem *ped_file_system_open (PedGeometry *geom);
|
|
int ped_file_system_close (PedFileSystem *fs);
|
|
int ped_file_system_resize (PedFileSystem *fs, PedGeometry *geom,
|
|
PedTimer *timer);
|
|
PedConstraint *ped_file_system_get_resize_constraint (const PedFileSystem *fs);
|
|
|
|
#endif /* PED_FILESYS_H_INCLUDED */
|
|
|
|
/** @} */
|