diff options
Diffstat (limited to '')
-rw-r--r-- | include/parted/filesys.h | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/include/parted/filesys.h b/include/parted/filesys.h new file mode 100644 index 0000000..9fe6b6c --- /dev/null +++ b/include/parted/filesys.h @@ -0,0 +1,116 @@ +/* + 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 */ + +/** @} */ |