LCOV - code coverage report
Current view: top level - lib/plugin_apis - fs.c (source / functions) Coverage Total Hit
Test: libblockdev Coverage Report Lines: 54.4 % 1669 908
Test Date: 2026-01-26 13:19:28 Functions: 52.7 % 296 156
Legend: Lines: hit not hit

            Line data    Source code
       1          234 : GQuark  bd_fs_error_quark (void) {
       2          234 :         return g_quark_from_static_string ("g-bd-fs-error-quark");
       3              : }
       4              : 
       5              : /**
       6              :  * BDFSMkfsOptions:
       7              :  * @label: label of the filesystem
       8              :  * @uuid: uuid of the filesystem
       9              :  * @dry_run: whether to run mkfs in dry run mode (no changes written to the device)
      10              :  * @no_discard: whether to avoid discarding blocks at mkfs time
      11              :  * @force: whether to run mkfs with the `--force` (or similar) option, the behaviour of this
      12              :  *         option depends on the filesystem, but in general it allows overwriting other
      13              :  *         preexisting formats detected on the device
      14              :  * @no_pt: whether to disable (protective) partition table creation during mkfs
      15              :  * @reserve: reserve for future expansion
      16              :  */
      17              : /**
      18              :  * bd_fs_mkfs_options_copy: (skip)
      19              :  * @data: (nullable): %BDFSMkfsOptions to copy
      20              :  *
      21              :  * Creates a new copy of @data.
      22              :  */
      23            0 : BDFSMkfsOptions* bd_fs_mkfs_options_copy (BDFSMkfsOptions *data) {
      24            0 :         if (data == NULL)
      25            0 :         return NULL;
      26              : 
      27            0 :     BDFSMkfsOptions *ret = g_new0 (BDFSMkfsOptions, 1);
      28              : 
      29            0 :     ret->label = data->label;
      30            0 :     ret->uuid = data->uuid;
      31            0 :     ret->dry_run = data->dry_run;
      32            0 :     ret->no_discard = data->no_discard;
      33            0 :     ret->force = data->force;
      34            0 :     ret->no_pt = data->no_pt;
      35              : 
      36            0 :     return ret;
      37              : }
      38              : 
      39              : /**
      40              :  * bd_fs_mkfs_options_free: (skip)
      41              :  * @data: (nullable): %BDFSMkfsOptions to free
      42              :  *
      43              :  * Frees @data.
      44              :  */
      45            0 : void  bd_fs_mkfs_options_free (BDFSMkfsOptions *data) {
      46            0 :         if (data == NULL)
      47            0 :         return;
      48              : 
      49            0 :     g_free (data);
      50              : }
      51              : 
      52          323 : GType  bd_fs_mkfs_options_get_type () {
      53              :         static GType type = 0;
      54              : 
      55          323 :     if (G_UNLIKELY(type == 0)) {
      56            1 :         type = g_boxed_type_register_static("BDFSMkfsOptions",
      57              :                                             (GBoxedCopyFunc) bd_fs_mkfs_options_copy,
      58              :                                             (GBoxedFreeFunc) bd_fs_mkfs_options_free);
      59              :     }
      60              : 
      61          323 :     return type;
      62              : }
      63              : 
      64              : /**
      65              :  * BDFSExtInfo:
      66              :  * @label: label of the filesystem
      67              :  * @uuid: uuid of the filesystem
      68              :  * @state: state of the filesystem (e.g. "clean")
      69              :  * @block_size: block size used by the filesystem
      70              :  * @block_count: number of blocks in the filesystem
      71              :  * @free_blocks: number of free blocks in the filesystem
      72              :  */
      73              : /**
      74              :  * bd_fs_ext2_info_copy: (skip)
      75              :  * @data: (nullable): %BDFSExt2Info to copy
      76              :  *
      77              :  * Creates a new copy of @data.
      78              :  */
      79            0 : BDFSExt2Info* bd_fs_ext2_info_copy (BDFSExt2Info *data) {
      80            0 :         if (data == NULL)
      81            0 :         return NULL;
      82              : 
      83            0 :     BDFSExt2Info *ret = g_new0 (BDFSExt2Info, 1);
      84              : 
      85            0 :     ret->label = g_strdup (data->label);
      86            0 :     ret->uuid = g_strdup (data->uuid);
      87            0 :     ret->state = g_strdup (data->state);
      88            0 :     ret->block_size = data->block_size;
      89            0 :     ret->block_count = data->block_count;
      90            0 :     ret->free_blocks = data->free_blocks;
      91              : 
      92            0 :     return ret;
      93              : }
      94              : 
      95              : /**
      96              :  * bd_fs_ext3_info_copy: (skip)
      97              :  * @data: (nullable): %BDFSExt3Info to copy
      98              :  *
      99              :  * Creates a new copy of @data.
     100              :  */
     101            0 : BDFSExt3Info* bd_fs_ext3_info_copy (BDFSExt3Info *data) {
     102            0 :         return (BDFSExt3Info*) bd_fs_ext2_info_copy (data);
     103              : }
     104              : 
     105              : /**
     106              :  * bd_fs_ext4_info_copy: (skip)
     107              :  * @data: (nullable): %BDFSExt4Info to copy
     108              :  *
     109              :  * Creates a new copy of @data.
     110              :  */
     111            0 : BDFSExt4Info* bd_fs_ext4_info_copy (BDFSExt4Info *data) {
     112            0 :         return (BDFSExt4Info*) bd_fs_ext2_info_copy (data);
     113              : };
     114              : 
     115              : /**
     116              :  * bd_fs_ext2_info_free: (skip)
     117              :  * @data: (nullable): %BDFSExt2Info to free
     118              :  *
     119              :  * Frees @data.
     120              :  */
     121           88 : void bd_fs_ext2_info_free (BDFSExt2Info *data) {
     122           88 :     if (data == NULL)
     123            0 :         return;
     124              : 
     125           88 :     g_free (data->label);
     126           88 :     g_free (data->uuid);
     127           88 :     g_free (data->state);
     128           88 :     g_free (data);
     129              : }
     130              : 
     131              : /**
     132              :  * bd_fs_ext3_info_free: (skip)
     133              :  * @data: (nullable): %BDFSExt3Info to free
     134              :  *
     135              :  * Frees @data.
     136              :  */
     137           18 : void  bd_fs_ext3_info_free (BDFSExt3Info *data) {
     138           18 :         bd_fs_ext2_info_free ((BDFSExt2Info*) data);
     139           18 : }
     140              : 
     141              : /**
     142              :  * bd_fs_ext4_info_free: (skip)
     143              :  * @data: (nullable): %BDFSExt4Info to free
     144              :  *
     145              :  * Frees @data.
     146              :  */
     147           45 : void  bd_fs_ext4_info_free (BDFSExt4Info *data) {
     148           45 :         bd_fs_ext2_info_free ((BDFSExt2Info*) data);
     149           45 : }
     150              : 
     151           36 : GType  bd_fs_ext2_info_get_type () {
     152              :         static GType type = 0;
     153              : 
     154           36 :     if (G_UNLIKELY(type == 0)) {
     155            1 :         type = g_boxed_type_register_static("BDFSExt2Info",
     156              :                                             (GBoxedCopyFunc) bd_fs_ext2_info_copy,
     157              :                                             (GBoxedFreeFunc) bd_fs_ext2_info_free);
     158              :     }
     159              : 
     160           36 :     return type;
     161              : }
     162              : 
     163           33 : GType  bd_fs_ext3_info_get_type () {
     164              :         static GType type = 0;
     165              : 
     166           33 :     if (G_UNLIKELY(type == 0)) {
     167            1 :         type = g_boxed_type_register_static("BDFSExt3Info",
     168              :                                             (GBoxedCopyFunc) bd_fs_ext3_info_copy,
     169              :                                             (GBoxedFreeFunc) bd_fs_ext3_info_free);
     170              :     }
     171              : 
     172           33 :     return type;
     173              : }
     174              : 
     175           69 : GType  bd_fs_ext4_info_get_type () {
     176              :         static GType type = 0;
     177              : 
     178           69 :     if (G_UNLIKELY(type == 0)) {
     179            1 :         type = g_boxed_type_register_static("BDFSExt4Info",
     180              :                                             (GBoxedCopyFunc) bd_fs_ext4_info_copy,
     181              :                                             (GBoxedFreeFunc) bd_fs_ext4_info_free);
     182              :     }
     183              : 
     184           69 :     return type;
     185              : }
     186              : 
     187              : /**
     188              :  * BDFSXfsInfo:
     189              :  * @label: label of the filesystem
     190              :  * @uuid: uuid of the filesystem
     191              :  * @block_size: block size used by the filesystem
     192              :  * @block_count: number of blocks in the filesystem
     193              :  */
     194              : /**
     195              :  * bd_fs_xfs_info_copy: (skip)
     196              :  * @data: (nullable): %BDFSXfsInfo to copy
     197              :  *
     198              :  * Creates a new copy of @data.
     199              :  */
     200            0 : BDFSXfsInfo* bd_fs_xfs_info_copy (BDFSXfsInfo *data) {
     201            0 :         if (data == NULL)
     202            0 :         return NULL;
     203              : 
     204            0 :     BDFSXfsInfo *ret = g_new0 (BDFSXfsInfo, 1);
     205              : 
     206            0 :     ret->label = g_strdup (data->label);
     207            0 :     ret->uuid = g_strdup (data->uuid);
     208            0 :     ret->block_size = data->block_size;
     209            0 :     ret->block_count = data->block_count;
     210              : 
     211            0 :     return ret;
     212              : }
     213              : 
     214              : /**
     215              :  * bd_fs_xfs_info_free: (skip)
     216              :  * @data: (nullable): %BDFSXfsInfo to free
     217              :  *
     218              :  * Frees @data.
     219              :  */
     220           41 : void  bd_fs_xfs_info_free (BDFSXfsInfo *data) {
     221           41 :         if (data == NULL)
     222            0 :         return;
     223              : 
     224           41 :     g_free (data->label);
     225           41 :     g_free (data->uuid);
     226           41 :     g_free (data);
     227              : }
     228              : 
     229           58 : GType  bd_fs_xfs_info_get_type () {
     230              :         static GType type = 0;
     231              : 
     232           58 :     if (G_UNLIKELY(type == 0)) {
     233            1 :         type = g_boxed_type_register_static("BDFSXfsInfo",
     234              :                                             (GBoxedCopyFunc) bd_fs_xfs_info_copy,
     235              :                                             (GBoxedFreeFunc) bd_fs_xfs_info_free);
     236              :     }
     237              : 
     238           58 :     return type;
     239              : }
     240              : 
     241              : /**
     242              :  * BDFSVfatInfo:
     243              :  * @label: label of the filesystem
     244              :  * @uuid: uuid of the filesystem
     245              :  * @cluster_size: cluster size used by the filesystem
     246              :  * @cluster_count: number of clusters in the filesystem
     247              :  * @free_cluster_count: number of free clusters in the filesystem
     248              :  */
     249              : /**
     250              :  * bd_fs_vfat_info_copy: (skip)
     251              :  * @data: (nullable): %BDFSVfatInfo to copy
     252              :  *
     253              :  * Creates a new copy of @data.
     254              :  */
     255            0 : BDFSVfatInfo* bd_fs_vfat_info_copy (BDFSVfatInfo *data) {
     256            0 :         if (data == NULL)
     257            0 :         return NULL;
     258              : 
     259            0 :     BDFSVfatInfo *ret = g_new0 (BDFSVfatInfo, 1);
     260              : 
     261            0 :     ret->label = g_strdup (data->label);
     262            0 :     ret->uuid = g_strdup (data->uuid);
     263            0 :     ret->cluster_size = data->cluster_size;
     264            0 :     ret->cluster_count = data->cluster_count;
     265              : 
     266            0 :     return ret;
     267              : }
     268              : 
     269              : /**
     270              :  * bd_fs_vfat_info_free: (skip)
     271              :  * @data: (nullable): %BDFSVfatInfo to free
     272              :  *
     273              :  * Frees @data.
     274              :  */
     275           19 : void  bd_fs_vfat_info_free (BDFSVfatInfo *data) {
     276           19 :         if (data == NULL)
     277            0 :         return;
     278              : 
     279           19 :     g_free (data->label);
     280           19 :     g_free (data->uuid);
     281           19 :     g_free (data);
     282              : }
     283              : 
     284           17 : GType  bd_fs_vfat_info_get_type () {
     285              :         static GType type = 0;
     286              : 
     287           17 :     if (G_UNLIKELY(type == 0)) {
     288            1 :         type = g_boxed_type_register_static("BDFSVfatInfo",
     289              :                                             (GBoxedCopyFunc) bd_fs_vfat_info_copy,
     290              :                                             (GBoxedFreeFunc) bd_fs_vfat_info_free);
     291              :     }
     292              : 
     293           17 :     return type;
     294              : }
     295              : 
     296              : /**
     297              :  * BDFSNtfsInfo:
     298              :  * @label: label of the filesystem
     299              :  * @uuid: uuid of the filesystem
     300              :  * @size: size of the filesystem in bytes
     301              :  * @free_space: number of free space in the filesystem in bytes
     302              :  */
     303              : /**
     304              :  * bd_fs_ntfs_info_copy: (skip)
     305              :  * @data: (nullable): %BDFSNtfsInfo to copy
     306              :  *
     307              :  * Creates a new copy of @data.
     308              :  */
     309            0 : BDFSNtfsInfo* bd_fs_ntfs_info_copy (BDFSNtfsInfo *data) {
     310            0 :         if (data == NULL)
     311            0 :         return NULL;
     312              : 
     313            0 :     BDFSNtfsInfo *ret = g_new0 (BDFSNtfsInfo, 1);
     314              : 
     315            0 :     ret->label = g_strdup (data->label);
     316            0 :     ret->uuid = g_strdup (data->uuid);
     317            0 :     ret->size = data->size;
     318            0 :     ret->free_space = data->free_space;
     319              : 
     320            0 :     return ret;
     321              : }
     322              : 
     323              : /**
     324              :  * bd_fs_ntfs_info_free: (skip)
     325              :  * @data: (nullable): %BDFSNtfsInfo to free
     326              :  *
     327              :  * Frees @data.
     328              :  */
     329           17 : void  bd_fs_ntfs_info_free (BDFSNtfsInfo *data) {
     330           17 :         if (data == NULL)
     331            0 :         return;
     332              : 
     333           17 :     g_free (data->label);
     334           17 :     g_free (data->uuid);
     335           17 :     g_free (data);
     336              : }
     337              : 
     338           21 : GType  bd_fs_ntfs_info_get_type () {
     339              :         static GType type = 0;
     340              : 
     341           21 :     if (G_UNLIKELY(type == 0)) {
     342            1 :         type = g_boxed_type_register_static("BDFSNtfsInfo",
     343              :                                             (GBoxedCopyFunc) bd_fs_ntfs_info_copy,
     344              :                                             (GBoxedFreeFunc) bd_fs_ntfs_info_free);
     345              :     }
     346              : 
     347           21 :     return type;
     348              : }
     349              : 
     350              : /**
     351              :  * BDFSF2FSInfo:
     352              :  * @label: label of the filesystem
     353              :  * @uuid: uuid of the filesystem
     354              :  * @sector_size: sector size used by the filesystem
     355              :  * @sector_count: number of sectors in the filesystem
     356              :  * @features: features enabled for this filesystem, see #BDFSF2FSFeature
     357              :  */
     358              : /**
     359              :  * bd_fs_f2fs_info_copy: (skip)
     360              :  * @data: (nullable): %BDFSF2FSInfo to copy
     361              :  *
     362              :  * Creates a new copy of @data.
     363              :  */
     364            0 : BDFSF2FSInfo* bd_fs_f2fs_info_copy (BDFSF2FSInfo *data) {
     365            0 :         if (data == NULL)
     366            0 :         return NULL;
     367              : 
     368            0 :     BDFSF2FSInfo *ret = g_new0 (BDFSF2FSInfo, 1);
     369              : 
     370            0 :     ret->label = g_strdup (data->label);
     371            0 :     ret->uuid = g_strdup (data->uuid);
     372            0 :     ret->sector_size = data->sector_size;
     373            0 :     ret->sector_count = data->sector_count;
     374            0 :     ret->features = data->features;
     375              : 
     376            0 :     return ret;
     377              : }
     378              : 
     379              : /**
     380              :  * bd_fs_f2fs_info_free: (skip)
     381              :  * @data: (nullable): %BDFSF2FSInfo to free
     382              :  *
     383              :  * Frees @data.
     384              :  */
     385            8 : void  bd_fs_f2fs_info_free (BDFSF2FSInfo *data) {
     386            8 :         if (data == NULL)
     387            0 :         return;
     388              : 
     389            8 :     g_free (data->label);
     390            8 :     g_free (data->uuid);
     391            8 :     g_free (data);
     392              : }
     393              : 
     394           10 : GType  bd_fs_f2fs_info_get_type () {
     395              :         static GType type = 0;
     396              : 
     397           10 :     if (G_UNLIKELY(type == 0)) {
     398            1 :         type = g_boxed_type_register_static("BDFSF2FSInfo",
     399              :                                             (GBoxedCopyFunc) bd_fs_f2fs_info_copy,
     400              :                                             (GBoxedFreeFunc) bd_fs_f2fs_info_free);
     401              :     }
     402              : 
     403           10 :     return type;
     404              : }
     405              : 
     406              : /**
     407              :  * BDFSNILFS2Info:
     408              :  * @label: label of the filesystem
     409              :  * @uuid: uuid of the filesystem
     410              :  * @block_size: block size used by the filesystem
     411              :  * @size: size of the filesystem
     412              :  * @free_blocks: number of free blocks in the filesystem
     413              :  */
     414              : /**
     415              :  * bd_fs_nilfs2_info_copy: (skip)
     416              :  * @data: (nullable): %BDFSNILFS2Info to copy
     417              :  *
     418              :  * Creates a new copy of @data.
     419              :  */
     420            0 : BDFSNILFS2Info* bd_fs_nilfs2_info_copy (BDFSNILFS2Info *data) {
     421            0 :         if (data == NULL)
     422            0 :         return NULL;
     423              : 
     424            0 :     BDFSNILFS2Info *ret = g_new0 (BDFSNILFS2Info, 1);
     425              : 
     426            0 :     ret->label = g_strdup (data->label);
     427            0 :     ret->uuid = g_strdup (data->uuid);
     428            0 :     ret->size = data->size;
     429            0 :     ret->block_size = data->block_size;
     430            0 :     ret->free_blocks = data->free_blocks;
     431              : 
     432            0 :     return ret;
     433              : }
     434              : 
     435              : /**
     436              :  * bd_fs_nilfs2_info_free: (skip)
     437              :  * @data: (nullable): %BDFSNILFS2Info to free
     438              :  *
     439              :  * Frees @data.
     440              :  */
     441           17 : void  bd_fs_nilfs2_info_free (BDFSNILFS2Info *data) {
     442           17 :         if (data == NULL)
     443            0 :         return;
     444              : 
     445           17 :     g_free (data->label);
     446           17 :     g_free (data->uuid);
     447           17 :     g_free (data);
     448              : }
     449              : 
     450           20 : GType  bd_fs_nilfs2_info_get_type () {
     451              :         static GType type = 0;
     452              : 
     453           20 :     if (G_UNLIKELY(type == 0)) {
     454            1 :         type = g_boxed_type_register_static("BDFSNILFS2Info",
     455              :                                             (GBoxedCopyFunc) bd_fs_nilfs2_info_copy,
     456              :                                             (GBoxedFreeFunc) bd_fs_nilfs2_info_free);
     457              :     }
     458              : 
     459           20 :     return type;
     460              : }
     461              : 
     462              : /**
     463              :  * BDFSExfatInfo:
     464              :  * @label: label of the filesystem
     465              :  * @uuid: uuid of the filesystem
     466              :  * @sector_size: sector size used by the filesystem
     467              :  * @sector_count: number of sectors in the filesystem
     468              :  * @cluster_count: number of clusters in the filesystem
     469              :  */
     470              : /**
     471              :  * bd_fs_exfat_info_free: (skip)
     472              :  * @data: (nullable): %BDFSExfatInfo to free
     473              :  *
     474              :  * Frees @data.
     475              :  */
     476           11 : void  bd_fs_exfat_info_free (BDFSExfatInfo *data) {
     477           11 :         if (data == NULL)
     478            0 :         return;
     479              : 
     480           11 :     g_free (data->label);
     481           11 :     g_free (data->uuid);
     482           11 :     g_free (data);
     483              : }
     484              : 
     485              : /**
     486              :  * bd_fs_exfat_info_copy: (skip)
     487              :  * @data: (nullable): %BDFSExfatInfo to copy
     488              :  *
     489              :  * Creates a new copy of @data.
     490              :  */
     491            0 : BDFSExfatInfo* bd_fs_exfat_info_copy (BDFSExfatInfo *data) {
     492            0 :         if (data == NULL)
     493            0 :         return NULL;
     494              : 
     495            0 :     BDFSExfatInfo *ret = g_new0 (BDFSExfatInfo, 1);
     496              : 
     497            0 :     ret->label = g_strdup (data->label);
     498            0 :     ret->uuid = g_strdup (data->uuid);
     499            0 :     ret->sector_size = data->sector_size;
     500            0 :     ret->sector_count = data->sector_count;
     501            0 :     ret->cluster_count = data->cluster_count;
     502              : 
     503            0 :     return ret;
     504              : }
     505              : 
     506           19 : GType  bd_fs_exfat_info_get_type () {
     507              :         static GType type = 0;
     508              : 
     509           19 :     if (G_UNLIKELY(type == 0)) {
     510            1 :         type = g_boxed_type_register_static("BDFSExfatInfo",
     511              :                                             (GBoxedCopyFunc) bd_fs_exfat_info_copy,
     512              :                                             (GBoxedFreeFunc) bd_fs_exfat_info_free);
     513              :     }
     514              : 
     515           19 :     return type;
     516              : }
     517              : 
     518              : /**
     519              :  * BDFSBtrfsInfo:
     520              :  * @label: label of the filesystem
     521              :  * @uuid: uuid of the filesystem
     522              :  * @size: size of the filesystem in bytes
     523              :  * @free_space: free space on the filesystem in bytes
     524              :  */
     525              : /**
     526              :  * bd_fs_btrfs_info_copy: (skip)
     527              :  * @data: (nullable): %BDFSBtrfsInfo to copy
     528              :  *
     529              :  * Creates a new copy of @data.
     530              :  */
     531            0 : BDFSBtrfsInfo* bd_fs_btrfs_info_copy (BDFSBtrfsInfo *data) {
     532            0 :         if (data == NULL)
     533            0 :         return NULL;
     534              : 
     535            0 :     BDFSBtrfsInfo *ret = g_new0 (BDFSBtrfsInfo, 1);
     536              : 
     537            0 :     ret->label = g_strdup (data->label);
     538            0 :     ret->uuid = g_strdup (data->uuid);
     539            0 :     ret->size = data->size;
     540            0 :     ret->free_space = data->free_space;
     541              : 
     542            0 :     return ret;
     543              : }
     544              : 
     545              : /**
     546              :  * bd_fs_btrfs_info_free: (skip)
     547              :  * @data: (nullable): %BDFSBtrfsInfo to free
     548              :  *
     549              :  * Frees @data.
     550              :  */
     551           34 : void  bd_fs_btrfs_info_free (BDFSBtrfsInfo *data) {
     552           34 :         if (data == NULL)
     553            0 :         return;
     554              : 
     555           34 :     g_free (data->label);
     556           34 :     g_free (data->uuid);
     557           34 :     g_free (data);
     558              : }
     559              : 
     560           24 : GType  bd_fs_btrfs_info_get_type () {
     561              :         static GType type = 0;
     562              : 
     563           24 :     if (G_UNLIKELY(type == 0)) {
     564            1 :         type = g_boxed_type_register_static("BDFSBtrfsInfo",
     565              :                                             (GBoxedCopyFunc) bd_fs_btrfs_info_copy,
     566              :                                             (GBoxedFreeFunc) bd_fs_btrfs_info_free);
     567              :     }
     568              : 
     569           24 :     return type;
     570              : }
     571              : 
     572              : /**
     573              :  * BDFSUdfInfo:
     574              :  * @label: label of the filesystem
     575              :  * @uuid: uuid of the filesystem
     576              :  * @revision: UDF revision
     577              :  * @lvid: Logical Volume Identifier (most UDF implementations use this identifier as a disk label)
     578              :  * @vid: Volume Identifier
     579              :  * @block_size: block size used by the filesystem
     580              :  * @block_count: number of blocks in the filesystem
     581              :  * @free_blocks: number of free blocks in the filesystem
     582              :  */
     583              : /**
     584              :  * bd_fs_udf_info_free: (skip)
     585              :  * @data: (nullable): %BDFSUdfInfo to free
     586              :  *
     587              :  * Frees @data.
     588              :  */
     589           14 : void  bd_fs_udf_info_free (BDFSUdfInfo *data) {
     590           14 :         if (data == NULL)
     591            0 :         return;
     592              : 
     593           14 :     g_free (data->label);
     594           14 :     g_free (data->uuid);
     595           14 :     g_free (data->revision);
     596           14 :     g_free (data->lvid);
     597           14 :     g_free (data->vid);
     598           14 :     g_free (data);
     599              : }
     600              : 
     601              : /**
     602              :  * bd_fs_udf_info_copy: (skip)
     603              :  * @data: (nullable): %BDFSUdfInfo to copy
     604              :  *
     605              :  * Creates a new copy of @data.
     606              :  */
     607            0 : BDFSUdfInfo* bd_fs_udf_info_copy (BDFSUdfInfo *data) {
     608            0 :         if (data == NULL)
     609            0 :         return NULL;
     610              : 
     611            0 :     BDFSUdfInfo *ret = g_new0 (BDFSUdfInfo, 1);
     612              : 
     613            0 :     ret->label = g_strdup (data->label);
     614            0 :     ret->uuid = g_strdup (data->uuid);
     615            0 :     ret->revision = g_strdup (data->revision);
     616            0 :     ret->lvid = g_strdup (data->lvid);
     617            0 :     ret->vid = g_strdup (data->vid);
     618            0 :     ret->block_size = data->block_size;
     619            0 :     ret->block_count = data->block_count;
     620            0 :     ret->free_blocks = data->free_blocks;
     621              : 
     622            0 :     return ret;
     623              : }
     624              : 
     625           39 : GType  bd_fs_udf_info_get_type () {
     626              :         static GType type = 0;
     627              : 
     628           39 :     if (G_UNLIKELY(type == 0)) {
     629            1 :         type = g_boxed_type_register_static("BDFSUdfInfo",
     630              :                                             (GBoxedCopyFunc) bd_fs_udf_info_copy,
     631              :                                             (GBoxedFreeFunc) bd_fs_udf_info_free);
     632              :     }
     633              : 
     634           39 :     return type;
     635              : }
     636              : 
     637              : /**
     638              :  * BDFSFeatures:
     639              :  * @resize: supported resizes modes
     640              :  * @mkfs: supported options for mkfs
     641              :  * @fsck: support for fsck operations (check and repair)
     642              :  * @configure: support for changing properties of an existing filesystem
     643              :  * @features: other supported features
     644              :  * @partition_id: partition ID used for this filesystem on MSDOS partitions
     645              :  * @partition_type: partition type/GUID used for this filesystem GPT partitions
     646              :  * @min_size: minimum size when creating this filesystem
     647              :  * @max_size: maximum size when creating this filesystem
     648              :  */
     649              : /**
     650              :  * bd_fs_features_copy: (skip)
     651              :  * @data: (allow-none): %BDFSFeatures to copy
     652              :  *
     653              :  * Creates a new copy of @data.
     654              :  */
     655           11 : BDFSFeatures* bd_fs_features_copy (BDFSFeatures *data) {
     656           11 :         if (data == NULL)
     657            0 :         return NULL;
     658              : 
     659           11 :     BDFSFeatures *ret = g_new0 (BDFSFeatures, 1);
     660              : 
     661           11 :     ret->resize = data->resize;
     662           11 :     ret->mkfs = data->mkfs;
     663           11 :     ret->fsck = data->fsck;
     664           11 :     ret->configure = data->configure;
     665           11 :     ret->features = data->features;
     666           11 :     ret->partition_id = data->partition_id;
     667           11 :     ret->partition_type = data->partition_type;
     668           11 :     ret->min_size = data->min_size;
     669           11 :     ret->max_size = data->max_size;
     670              : 
     671           11 :     return ret;
     672              : }
     673              : 
     674              : /**
     675              :  * bd_fs_features_free: (skip)
     676              :  * @data: (allow-none): %BDFSFeatures to free
     677              :  *
     678              :  * Frees @data.
     679              :  */
     680           11 : void  bd_fs_features_free (BDFSFeatures *data) {
     681           11 :         if (data == NULL)
     682            0 :         return;
     683              : 
     684           11 :     g_free (data);
     685              : }
     686              : 
     687          173 : GType  bd_fs_features_get_type () {
     688              :         static GType type = 0;
     689              : 
     690          173 :     if (G_UNLIKELY(type == 0)) {
     691            1 :         type = g_boxed_type_register_static("BDFSFeatures",
     692              :                                             (GBoxedCopyFunc) bd_fs_features_copy,
     693              :                                             (GBoxedFreeFunc) bd_fs_features_free);
     694              :     }
     695              : 
     696          173 :     return type;
     697              : }
     698              : 
     699            0 : static gboolean  bd_fs_is_tech_avail_stub (BDFSTech tech G_GNUC_UNUSED, guint64 mode G_GNUC_UNUSED, GError **error) {
     700            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_is_tech_avail' called, but not implemented!");
     701            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     702              :                 "The function 'bd_fs_is_tech_avail' called, but not implemented!");
     703            0 :     return FALSE;
     704              : }
     705              : 
     706              : static gboolean  (*_bd_fs_is_tech_avail) (BDFSTech tech, guint64 mode, GError **error) = bd_fs_is_tech_avail_stub;
     707              : 
     708              : /**
     709              :  * bd_fs_is_tech_avail:
     710              :  * @tech: the queried tech
     711              :  * @mode: a bit mask of queried modes of operation (#BDFSTechMode) for @tech
     712              :  * @error: (out) (optional): place to store error (details about why the @tech-@mode combination is not available)
     713              :  *
     714              :  * Returns: whether the @tech-@mode combination is available -- supported by the
     715              :  *          plugin implementation and having all the runtime dependencies available
     716              :  */
     717          624 : gboolean  bd_fs_is_tech_avail (BDFSTech tech, guint64 mode, GError **error) {
     718          624 :     return _bd_fs_is_tech_avail (tech, mode, error);
     719              : }
     720              : 
     721              : 
     722            0 : static const gchar** bd_fs_supported_filesystems_stub (GError **error) {
     723            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_supported_filesystems' called, but not implemented!");
     724            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     725              :                 "The function 'bd_fs_supported_filesystems' called, but not implemented!");
     726            0 :     return NULL;
     727              : }
     728              : 
     729              : static const gchar** (*_bd_fs_supported_filesystems) (GError **error) = bd_fs_supported_filesystems_stub;
     730              : 
     731              : /**
     732              :  * bd_fs_supported_filesystems:
     733              :  * @error: (out) (optional): currently unused
     734              :  *
     735              :  * Returns: (transfer container) (array zero-terminated=1): list of filesystems supported by this plugin
     736              :  *
     737              :  * Note: This returns filesystems supported by libblockdev, but not necessarily
     738              :  *       by the systems this is running on, for this information you need to
     739              :  *       run one of the `bd_fs_can_` functions.
     740              :  *
     741              :  * Tech category: always available
     742              :  */
     743            1 : const gchar** bd_fs_supported_filesystems (GError **error) {
     744            1 :     return _bd_fs_supported_filesystems (error);
     745              : }
     746              : 
     747              : 
     748            0 : static gboolean  bd_fs_wipe_stub (const gchar *device G_GNUC_UNUSED, gboolean all G_GNUC_UNUSED, gboolean force G_GNUC_UNUSED, GError **error) {
     749            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_wipe' called, but not implemented!");
     750            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     751              :                 "The function 'bd_fs_wipe' called, but not implemented!");
     752            0 :     return FALSE;
     753              : }
     754              : 
     755              : static gboolean  (*_bd_fs_wipe) (const gchar *device, gboolean all, gboolean force, GError **error) = bd_fs_wipe_stub;
     756              : 
     757              : /**
     758              :  * bd_fs_wipe:
     759              :  * @device: the device to wipe signatures from
     760              :  * @all: whether to wipe all (%TRUE) signatures or just the first (%FALSE) one
     761              :  * @force: whether to wipe signatures on a mounted @device
     762              :  * @error: (out) (optional): place to store error (if any)
     763              :  *
     764              :  * Returns: whether signatures were successfully wiped on @device or not
     765              :  *
     766              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_WIPE
     767              :  */
     768          116 : gboolean  bd_fs_wipe (const gchar *device, gboolean all, gboolean force, GError **error) {
     769          116 :     return _bd_fs_wipe (device, all, force, error);
     770              : }
     771              : 
     772              : 
     773            0 : static gboolean  bd_fs_clean_stub (const gchar *device G_GNUC_UNUSED, gboolean force G_GNUC_UNUSED, GError **error) {
     774            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_clean' called, but not implemented!");
     775            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     776              :                 "The function 'bd_fs_clean' called, but not implemented!");
     777            0 :     return FALSE;
     778              : }
     779              : 
     780              : static gboolean  (*_bd_fs_clean) (const gchar *device, gboolean force, GError **error) = bd_fs_clean_stub;
     781              : 
     782              : /**
     783              :  * bd_fs_clean:
     784              :  * @device: the device to clean
     785              :  * @force: whether to wipe signatures on a mounted @device
     786              :  * @error: (out) (optional): place to store error (if any)
     787              :  *
     788              :  * Clean all signatures from @device.
     789              :  * Difference between this and bd_fs_wipe() is that this function doesn't
     790              :  * return error if @device is already empty. This will also always remove
     791              :  * all signatures from @device, not only the first one.
     792              :  *
     793              :  * Returns: whether @device was successfully cleaned or not
     794              :  *
     795              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_WIPE
     796              :  */
     797           84 : gboolean  bd_fs_clean (const gchar *device, gboolean force, GError **error) {
     798           84 :     return _bd_fs_clean (device, force, error);
     799              : }
     800              : 
     801              : 
     802            0 : static gchar* bd_fs_get_fstype_stub (const gchar *device G_GNUC_UNUSED,  GError **error) {
     803            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_get_fstype' called, but not implemented!");
     804            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     805              :                 "The function 'bd_fs_get_fstype' called, but not implemented!");
     806            0 :     return NULL;
     807              : }
     808              : 
     809              : static gchar* (*_bd_fs_get_fstype) (const gchar *device,  GError **error) = bd_fs_get_fstype_stub;
     810              : 
     811              : /**
     812              :  * bd_fs_get_fstype:
     813              :  * @device: the device to probe
     814              :  * @error: (out) (optional): place to store error (if any)
     815              :  *
     816              :  * Get first signature on @device as a string.
     817              :  *
     818              :  * Returns: (transfer full): type of filesystem found on @device, %NULL in case
     819              :  *                           no signature has been detected or in case of error
     820              :  *                           (@error is set in this case)
     821              :  *
     822              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
     823              :  */
     824          140 : gchar* bd_fs_get_fstype (const gchar *device,  GError **error) {
     825          140 :     return _bd_fs_get_fstype (device, error);
     826              : }
     827              : 
     828              : 
     829            0 : static gboolean  bd_fs_freeze_stub (const gchar *mountpoint G_GNUC_UNUSED, GError **error) {
     830            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_freeze' called, but not implemented!");
     831            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     832              :                 "The function 'bd_fs_freeze' called, but not implemented!");
     833            0 :     return FALSE;
     834              : }
     835              : 
     836              : static gboolean  (*_bd_fs_freeze) (const gchar *mountpoint, GError **error) = bd_fs_freeze_stub;
     837              : 
     838              : /**
     839              :  * bd_fs_freeze:
     840              :  * @mountpoint: mountpoint of the device (filesystem) to freeze
     841              :  * @error: (out) (optional): place to store error (if any)
     842              :  *
     843              :  * Freezes filesystem mounted on @mountpoint. The filesystem must
     844              :  * support freezing.
     845              :  *
     846              :  * Returns: whether @mountpoint was successfully freezed or not
     847              :  *
     848              :  */
     849            4 : gboolean  bd_fs_freeze (const gchar *mountpoint, GError **error) {
     850            4 :     return _bd_fs_freeze (mountpoint, error);
     851              : }
     852              : 
     853              : 
     854            0 : static gboolean  bd_fs_unfreeze_stub (const gchar *mountpoint G_GNUC_UNUSED, GError **error) {
     855            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_unfreeze' called, but not implemented!");
     856            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     857              :                 "The function 'bd_fs_unfreeze' called, but not implemented!");
     858            0 :     return FALSE;
     859              : }
     860              : 
     861              : static gboolean  (*_bd_fs_unfreeze) (const gchar *mountpoint, GError **error) = bd_fs_unfreeze_stub;
     862              : 
     863              : /**
     864              :  * bd_fs_unfreeze:
     865              :  * @mountpoint: mountpoint of the device (filesystem) to un-freeze
     866              :  * @error: (out) (optional): place to store error (if any)
     867              :  *
     868              :  * Un-freezes filesystem mounted on @mountpoint. The filesystem must
     869              :  * support freezing.
     870              :  *
     871              :  * Returns: whether @mountpoint was successfully unfreezed or not
     872              :  *
     873              :  */
     874            3 : gboolean  bd_fs_unfreeze (const gchar *mountpoint, GError **error) {
     875            3 :     return _bd_fs_unfreeze (mountpoint, error);
     876              : }
     877              : 
     878              : 
     879            0 : static gboolean  bd_fs_unmount_stub (const gchar *spec G_GNUC_UNUSED, gboolean lazy G_GNUC_UNUSED, gboolean force G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
     880            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_unmount' called, but not implemented!");
     881            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     882              :                 "The function 'bd_fs_unmount' called, but not implemented!");
     883            0 :     return FALSE;
     884              : }
     885              : 
     886              : static gboolean  (*_bd_fs_unmount) (const gchar *spec, gboolean lazy, gboolean force, const BDExtraArg **extra, GError **error) = bd_fs_unmount_stub;
     887              : 
     888              : /**
     889              :  * bd_fs_unmount:
     890              :  * @spec: mount point or device to unmount
     891              :  * @lazy: enable/disable lazy unmount
     892              :  * @force: enable/disable force unmount
     893              :  * @extra: (nullable) (array zero-terminated=1): extra options for the unmount;
     894              :  *                                               currently only 'run_as_uid'
     895              :  *                                               and 'run_as_gid' are supported;
     896              :  *                                               value must be a valid non zero
     897              :  *                                               uid (gid), if you specify one of
     898              :  *                                               these, the function will run in
     899              :  *                                               a child process with real user
     900              :  * @error: (out) (optional): place to store error (if any)
     901              :  *
     902              :  * Returns: whether @spec was successfully unmounted or not
     903              :  *
     904              :  * Tech category: %BD_FS_TECH_MOUNT (no mode, ignored)
     905              :  */
     906           35 : gboolean  bd_fs_unmount (const gchar *spec, gboolean lazy, gboolean force, const BDExtraArg **extra, GError **error) {
     907           35 :     return _bd_fs_unmount (spec, lazy, force, extra, error);
     908              : }
     909              : 
     910              : 
     911            0 : static gboolean  bd_fs_mount_stub (const gchar *device G_GNUC_UNUSED, const gchar *mountpoint G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, const gchar *options G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
     912            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_mount' called, but not implemented!");
     913            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     914              :                 "The function 'bd_fs_mount' called, but not implemented!");
     915            0 :     return FALSE;
     916              : }
     917              : 
     918              : static gboolean  (*_bd_fs_mount) (const gchar *device, const gchar *mountpoint, const gchar *fstype, const gchar *options, const BDExtraArg **extra, GError **error) = bd_fs_mount_stub;
     919              : 
     920              : /**
     921              :  * bd_fs_mount:
     922              :  * @device: (nullable): device to mount, if not specified @mountpoint entry
     923              :  *                        from fstab will be used
     924              :  * @mountpoint: (nullable): mountpoint for @device, if not specified @device
     925              :  *                            entry from fstab will be used
     926              :  * @fstype: (nullable): filesystem type
     927              :  * @options: (nullable): comma delimited options for mount
     928              :  * @extra: (nullable) (array zero-terminated=1): extra options for the mount;
     929              :  *                                               currently only 'run_as_uid'
     930              :  *                                               and 'run_as_gid' are supported;
     931              :  *                                               value must be a valid non zero
     932              :  *                                               uid (gid), if you specify one of
     933              :  *                                               these, the function will run in
     934              :  *                                               a child process with real user
     935              :  * @error: (out) (optional): place to store error (if any)
     936              :  *
     937              :  * Returns: whether @device (or @mountpoint) was successfully mounted or not
     938              :  *
     939              :  * Tech category: %BD_FS_TECH_MOUNT (no mode, ignored)
     940              :  */
     941           41 : gboolean  bd_fs_mount (const gchar *device, const gchar *mountpoint, const gchar *fstype, const gchar *options, const BDExtraArg **extra, GError **error) {
     942           41 :     return _bd_fs_mount (device, mountpoint, fstype, options, extra, error);
     943              : }
     944              : 
     945              : 
     946            0 : static gchar* bd_fs_get_mountpoint_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
     947            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_get_mountpoint' called, but not implemented!");
     948            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     949              :                 "The function 'bd_fs_get_mountpoint' called, but not implemented!");
     950            0 :     return NULL;
     951              : }
     952              : 
     953              : static gchar* (*_bd_fs_get_mountpoint) (const gchar *device, GError **error) = bd_fs_get_mountpoint_stub;
     954              : 
     955              : /**
     956              :  * bd_fs_get_mountpoint:
     957              :  * @device: device to find mountpoint for
     958              :  * @error: (out) (optional): place to store error (if any)
     959              :  *
     960              :  * Get mountpoint for @device. If @device is mounted multiple times only
     961              :  * one mountpoint will be returned.
     962              :  *
     963              :  * Returns: (transfer full): mountpoint for @device, %NULL in case device is
     964              :  *                           not mounted or in case of an error (@error is set
     965              :  *                           in this case)
     966              :  *
     967              :  * Tech category: %BD_FS_TECH_MOUNT (no mode, ignored)
     968              :  */
     969           91 : gchar* bd_fs_get_mountpoint (const gchar *device, GError **error) {
     970           91 :     return _bd_fs_get_mountpoint (device, error);
     971              : }
     972              : 
     973              : 
     974            0 : static gboolean  bd_fs_is_mountpoint_stub (const gchar *path G_GNUC_UNUSED, GError **error) {
     975            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_is_mountpoint' called, but not implemented!");
     976            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
     977              :                 "The function 'bd_fs_is_mountpoint' called, but not implemented!");
     978            0 :     return FALSE;
     979              : }
     980              : 
     981              : static gboolean  (*_bd_fs_is_mountpoint) (const gchar *path, GError **error) = bd_fs_is_mountpoint_stub;
     982              : 
     983              : /**
     984              :  * bd_fs_is_mountpoint:
     985              :  * @path: path (folder) to check
     986              :  * @error: (out) (optional): place to store error (if any)
     987              :  *
     988              :  * Returns: whether @path is a mountpoint or not
     989              :  *
     990              :  * Tech category: %BD_FS_TECH_MOUNT (no mode, ignored)
     991              :  */
     992            9 : gboolean  bd_fs_is_mountpoint (const gchar *path, GError **error) {
     993            9 :     return _bd_fs_is_mountpoint (path, error);
     994              : }
     995              : 
     996              : 
     997            0 : static gboolean  bd_fs_resize_stub (const gchar *device G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, GError **error) {
     998            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_resize' called, but not implemented!");
     999            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1000              :                 "The function 'bd_fs_resize' called, but not implemented!");
    1001            0 :     return FALSE;
    1002              : }
    1003              : 
    1004              : static gboolean  (*_bd_fs_resize) (const gchar *device, guint64 new_size, const gchar *fstype, GError **error) = bd_fs_resize_stub;
    1005              : 
    1006              : /**
    1007              :  * bd_fs_resize:
    1008              :  * @device: the device the file system of which to resize
    1009              :  * @new_size: new requested size for the file system (if 0, the file system is
    1010              :  *            adapted to the underlying block device)
    1011              :  * @fstype: (nullable): the filesystem type on @device or %NULL to detect
    1012              :  * @error: (out) (optional): place to store error (if any)
    1013              :  *
    1014              :  * Resize filesystem on @device. This calls other fs resize functions from this
    1015              :  * plugin based on provides or detected filesystem (e.g. bd_fs_xfs_resize for XFS).
    1016              :  * This function will return an error for unknown/unsupported filesystems.
    1017              :  *
    1018              :  * Note: This function will mount @device for filesystems that can be resized only
    1019              :  *       when mounted (like XFS or Btrfs).
    1020              :  *
    1021              :  * Returns: whether the file system on @device was successfully resized or not
    1022              :  *
    1023              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_RESIZE
    1024              :  */
    1025           30 : gboolean  bd_fs_resize (const gchar *device, guint64 new_size, const gchar *fstype, GError **error) {
    1026           30 :     return _bd_fs_resize (device, new_size, fstype, error);
    1027              : }
    1028              : 
    1029              : 
    1030            0 : static gboolean  bd_fs_repair_stub (const gchar *device G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, GError **error) {
    1031            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_repair' called, but not implemented!");
    1032            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1033              :                 "The function 'bd_fs_repair' called, but not implemented!");
    1034            0 :     return FALSE;
    1035              : }
    1036              : 
    1037              : static gboolean  (*_bd_fs_repair) (const gchar *device, const gchar *fstype, GError **error) = bd_fs_repair_stub;
    1038              : 
    1039              : /**
    1040              :  * bd_fs_repair:
    1041              :  * @device: the device the file system of which to repair
    1042              :  * @fstype: (nullable): the filesystem type on @device or %NULL to detect
    1043              :  * @error: (out) (optional): place to store error (if any)
    1044              :  *
    1045              :  * Repair filesystem on @device. This calls other fs repair functions from this
    1046              :  * plugin based on detected filesystem (e.g. bd_fs_xfs_repair for XFS). This
    1047              :  * function will return an error for unknown/unsupported filesystems.
    1048              :  *
    1049              :  * Most filesystem tools typically require the filesystem not to be mounted.
    1050              :  *
    1051              :  * Returns: whether the file system on @device was successfully repaired or not
    1052              :  *
    1053              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_REPAIR
    1054              :  */
    1055           17 : gboolean  bd_fs_repair (const gchar *device, const gchar *fstype, GError **error) {
    1056           17 :     return _bd_fs_repair (device, fstype, error);
    1057              : }
    1058              : 
    1059              : 
    1060            0 : static gboolean  bd_fs_check_stub (const gchar *device G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, GError **error) {
    1061            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_check' called, but not implemented!");
    1062            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1063              :                 "The function 'bd_fs_check' called, but not implemented!");
    1064            0 :     return FALSE;
    1065              : }
    1066              : 
    1067              : static gboolean  (*_bd_fs_check) (const gchar *device, const gchar *fstype, GError **error) = bd_fs_check_stub;
    1068              : 
    1069              : /**
    1070              :  * bd_fs_check:
    1071              :  * @device: the device the file system of which to check
    1072              :  * @fstype: (nullable): the filesystem type on @device or %NULL to detect
    1073              :  * @error: (out) (optional): place to store error (if any)
    1074              :  *
    1075              :  * Check filesystem on @device avoiding any modifications or repairs.
    1076              :  * This calls other fs check functions from this plugin based on detected
    1077              :  * filesystem (e.g. bd_fs_xfs_check for XFS). This function will return
    1078              :  * an error for unknown/unsupported filesystems.
    1079              :  *
    1080              :  * Note that depending on a corresponding filesystem type and configured
    1081              :  * features running this function on a mounted filesystem may result
    1082              :  * in false errors reported.
    1083              :  *
    1084              :  * Returns: whether the file system on @device passed the consistency check or not
    1085              :  *
    1086              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_CHECK
    1087              :  */
    1088           14 : gboolean  bd_fs_check (const gchar *device, const gchar *fstype, GError **error) {
    1089           14 :     return _bd_fs_check (device, fstype, error);
    1090              : }
    1091              : 
    1092              : 
    1093            0 : static gboolean  bd_fs_check_label_stub (const gchar *fstype G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    1094            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_check_label' called, but not implemented!");
    1095            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1096              :                 "The function 'bd_fs_check_label' called, but not implemented!");
    1097            0 :     return FALSE;
    1098              : }
    1099              : 
    1100              : static gboolean  (*_bd_fs_check_label) (const gchar *fstype, const gchar *label, GError **error) = bd_fs_check_label_stub;
    1101              : 
    1102              : /**
    1103              :  * bd_fs_check_label:
    1104              :  * @fstype: the filesystem type to check @label for
    1105              :  * @label: label to check
    1106              :  * @error: (out) (optional): place to store error (if any)
    1107              :  *
    1108              :  * This calls other fs check label functions from this plugin based on the provided
    1109              :  * filesystem (e.g. bd_fs_xfs_check_label for XFS). This function will return
    1110              :  * an error for unknown/unsupported filesystems.
    1111              :  *
    1112              :  * Returns: whether @label is a valid label for the @fstype file system or not
    1113              :  *          (reason is provided in @error)
    1114              :  *
    1115              :  * Tech category: always available
    1116              :  */
    1117           20 : gboolean  bd_fs_check_label (const gchar *fstype, const gchar *label, GError **error) {
    1118           20 :     return _bd_fs_check_label (fstype, label, error);
    1119              : }
    1120              : 
    1121              : 
    1122            0 : static gboolean  bd_fs_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, GError **error) {
    1123            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_set_label' called, but not implemented!");
    1124            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1125              :                 "The function 'bd_fs_set_label' called, but not implemented!");
    1126            0 :     return FALSE;
    1127              : }
    1128              : 
    1129              : static gboolean  (*_bd_fs_set_label) (const gchar *device, const gchar *label, const gchar *fstype, GError **error) = bd_fs_set_label_stub;
    1130              : 
    1131              : /**
    1132              :  * bd_fs_set_label:
    1133              :  * @device: the device with file system to set the label for
    1134              :  * @label: label to set
    1135              :  * @fstype: (nullable): the filesystem type on @device or %NULL to detect
    1136              :  * @error: (out) (optional): place to store error (if any)
    1137              :  *
    1138              :  * Set label for filesystem on @device. This calls other fs label functions from this
    1139              :  * plugin based on detected filesystem (e.g. bd_fs_xfs_set_label for XFS). This
    1140              :  * function will return an error for unknown/unsupported filesystems.
    1141              :  *
    1142              :  * Note: This function will mount @device for filesystems that need to be mounted
    1143              :  *       to set label (like btrfs).
    1144              :  *
    1145              :  * Returns: whether the file system on @device was successfully relabeled or not
    1146              :  *
    1147              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_SET_LABEL
    1148              :  */
    1149           17 : gboolean  bd_fs_set_label (const gchar *device, const gchar *label, const gchar *fstype, GError **error) {
    1150           17 :     return _bd_fs_set_label (device, label, fstype, error);
    1151              : }
    1152              : 
    1153              : 
    1154            0 : static gboolean  bd_fs_check_uuid_stub (const gchar *fstype G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    1155            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_check_uuid' called, but not implemented!");
    1156            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1157              :                 "The function 'bd_fs_check_uuid' called, but not implemented!");
    1158            0 :     return FALSE;
    1159              : }
    1160              : 
    1161              : static gboolean  (*_bd_fs_check_uuid) (const gchar *fstype, const gchar *uuid, GError **error) = bd_fs_check_uuid_stub;
    1162              : 
    1163              : /**
    1164              :  * bd_fs_check_uuid:
    1165              :  * @fstype: the filesystem type to check @uuid for
    1166              :  * @uuid: uuid to check
    1167              :  * @error: (out) (optional): place to store error (if any)
    1168              :  *
    1169              :  * This calls other fs check uuid functions from this plugin based on the provided
    1170              :  * filesystem (e.g. bd_fs_xfs_check_uuid for XFS). This function will return
    1171              :  * an error for unknown/unsupported filesystems.
    1172              :  *
    1173              :  * Returns: whether @uuid is a valid UUID for the @fstype file system or not
    1174              :  *          (reason is provided in @error)
    1175              :  *
    1176              :  * Tech category: always available
    1177              :  */
    1178           10 : gboolean  bd_fs_check_uuid (const gchar *fstype, const gchar *uuid, GError **error) {
    1179           10 :     return _bd_fs_check_uuid (fstype, uuid, error);
    1180              : }
    1181              : 
    1182              : 
    1183            0 : static gboolean  bd_fs_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, GError **error) {
    1184            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_set_uuid' called, but not implemented!");
    1185            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1186              :                 "The function 'bd_fs_set_uuid' called, but not implemented!");
    1187            0 :     return FALSE;
    1188              : }
    1189              : 
    1190              : static gboolean  (*_bd_fs_set_uuid) (const gchar *device, const gchar *uuid, const gchar *fstype, GError **error) = bd_fs_set_uuid_stub;
    1191              : 
    1192              : /**
    1193              :  * bd_fs_set_uuid:
    1194              :  * @device: the device with file system to set the UUID for
    1195              :  * @uuid: (nullable): UUID to set or %NULL to generate a new one
    1196              :  * @fstype: (nullable): the filesystem type on @device or %NULL to detect
    1197              :  * @error: (out) (optional): place to store error (if any)
    1198              :  *
    1199              :  * Set UUID for filesystem on @device. This calls other fs UUID functions from this
    1200              :  * plugin based on detected filesystem (e.g. bd_fs_xfs_set_uuid for XFS). This
    1201              :  * function will return an error for unknown/unsupported filesystems.
    1202              :  *
    1203              :  * Returns: whether the UUID on the file system on @device was successfully changed or not
    1204              :  *
    1205              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_SET_UUID
    1206              :  */
    1207           17 : gboolean  bd_fs_set_uuid (const gchar *device, const gchar *uuid, const gchar *fstype, GError **error) {
    1208           17 :     return _bd_fs_set_uuid (device, uuid, fstype, error);
    1209              : }
    1210              : 
    1211              : 
    1212            0 : static gboolean  bd_fs_xfs_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    1213            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_xfs_check_uuid' called, but not implemented!");
    1214            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1215              :                 "The function 'bd_fs_xfs_check_uuid' called, but not implemented!");
    1216            0 :     return FALSE;
    1217              : }
    1218              : 
    1219              : static gboolean  (*_bd_fs_xfs_check_uuid) (const gchar *uuid, GError **error) = bd_fs_xfs_check_uuid_stub;
    1220              : 
    1221              : /**
    1222              :  * bd_fs_xfs_check_uuid:
    1223              :  * @uuid: UUID to check
    1224              :  * @error: (out) (optional): place to store error
    1225              :  *
    1226              :  * Returns: whether @uuid is a valid UUID for the xfs file system or not
    1227              :  *          (reason is provided in @error)
    1228              :  *
    1229              :  * Tech category: always available
    1230              :  */
    1231            4 : gboolean  bd_fs_xfs_check_uuid (const gchar *uuid, GError **error) {
    1232            4 :     return _bd_fs_xfs_check_uuid (uuid, error);
    1233              : }
    1234              : 
    1235              : 
    1236            0 : static guint64  bd_fs_get_size_stub (const gchar *device G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, GError **error) {
    1237            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_get_size' called, but not implemented!");
    1238            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1239              :                 "The function 'bd_fs_get_size' called, but not implemented!");
    1240            0 :     return 0;
    1241              : }
    1242              : 
    1243              : static guint64  (*_bd_fs_get_size) (const gchar *device, const gchar *fstype, GError **error) = bd_fs_get_size_stub;
    1244              : 
    1245              : /**
    1246              :  * bd_fs_get_size:
    1247              :  * @device: the device with file system to get size for
    1248              :  * @fstype: (nullable): the filesystem type on @device or %NULL to detect
    1249              :  * @error: (out) (optional): place to store error (if any)
    1250              :  *
    1251              :  * Get size for filesystem on @device. This calls other fs info functions from this
    1252              :  * plugin based on detected filesystem (e.g. bd_fs_xfs_get_info for XFS). This
    1253              :  * function will return an error for unknown/unsupported filesystems.
    1254              :  *
    1255              :  * Note: This function will mount @device for filesystems that need to be mounted
    1256              :  *       to gather information (like btrfs).
    1257              :  *
    1258              :  * Returns: size of filesystem on @device, 0 in case of error.
    1259              :  *
    1260              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1261              :  */
    1262           35 : guint64  bd_fs_get_size (const gchar *device, const gchar *fstype, GError **error) {
    1263           35 :     return _bd_fs_get_size (device, fstype, error);
    1264              : }
    1265              : 
    1266              : 
    1267            0 : static guint64  bd_fs_get_free_space_stub (const gchar *device G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, GError **error) {
    1268            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_get_free_space' called, but not implemented!");
    1269            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1270              :                 "The function 'bd_fs_get_free_space' called, but not implemented!");
    1271            0 :     return 0;
    1272              : }
    1273              : 
    1274              : static guint64  (*_bd_fs_get_free_space) (const gchar *device, const gchar *fstype, GError **error) = bd_fs_get_free_space_stub;
    1275              : 
    1276              : /**
    1277              :  * bd_fs_get_free_space:
    1278              :  * @device: the device with file system to get free space for
    1279              :  * @fstype: (nullable): the filesystem type on @device or %NULL to detect
    1280              :  * @error: (out) (optional): place to store error (if any)
    1281              :  *
    1282              :  * Get free space for filesystem on @device. This calls other fs info functions from this
    1283              :  * plugin based on detected filesystem (e.g. bd_fs_ext4_get_info for ext4). This
    1284              :  * function will return an error for unknown/unsupported filesystems.
    1285              :  *
    1286              :  * Returns: free space of filesystem on @device, 0 in case of error.
    1287              :  *
    1288              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1289              :  */
    1290           15 : guint64  bd_fs_get_free_space (const gchar *device, const gchar *fstype, GError **error) {
    1291           15 :     return _bd_fs_get_free_space (device, fstype, error);
    1292              : }
    1293              : 
    1294              : 
    1295            0 : static guint64  bd_fs_get_min_size_stub (const gchar *device G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, GError **error) {
    1296            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_get_min_size' called, but not implemented!");
    1297            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1298              :                 "The function 'bd_fs_get_min_size' called, but not implemented!");
    1299            0 :     return 0;
    1300              : }
    1301              : 
    1302              : static guint64  (*_bd_fs_get_min_size) (const gchar *device, const gchar *fstype, GError **error) = bd_fs_get_min_size_stub;
    1303              : 
    1304              : /**
    1305              :  * bd_fs_get_min_size:
    1306              :  * @device: the device with file system to get minimum size for
    1307              :  * @fstype: (nullable): the filesystem type on @device or %NULL to detect
    1308              :  * @error: (out) (optional): place to store error (if any)
    1309              :  *
    1310              :  * Get minimum size for filesystem on @device. This calls other fs info functions from this
    1311              :  * plugin based on detected filesystem (e.g. bd_fs_ext4_get_min_size for ext4). This
    1312              :  * function will return an error for unknown/unsupported filesystems.
    1313              :  *
    1314              :  * Returns: minimum size of filesystem on @device, 0 in case of error.
    1315              :  *
    1316              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_RESIZE
    1317              :  */
    1318            5 : guint64  bd_fs_get_min_size (const gchar *device, const gchar *fstype, GError **error) {
    1319            5 :     return _bd_fs_get_min_size (device, fstype, error);
    1320              : }
    1321              : 
    1322              : 
    1323            0 : static gboolean  bd_fs_can_get_info_stub (const gchar *type G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1324            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_get_info' called, but not implemented!");
    1325            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1326              :                 "The function 'bd_fs_can_get_info' called, but not implemented!");
    1327            0 :     return FALSE;
    1328              : }
    1329              : 
    1330              : static gboolean  (*_bd_fs_can_get_info) (const gchar *type, gchar **required_utility, GError **error) = bd_fs_can_get_info_stub;
    1331              : 
    1332              : /**
    1333              :  * bd_fs_can_get_info:
    1334              :  * @type: the filesystem type to be tested for info querying support
    1335              :  * @required_utility: (out) (transfer full): the utility binary which is required
    1336              :  *                                           for info querying (if missing i.e. return FALSE but no error)
    1337              :  * @error: (out) (optional): place to store error (if any)
    1338              :  *
    1339              :  * Searches for the required utility to get info of the given filesystem and
    1340              :  * returns whether it is installed.
    1341              :  * Unknown filesystems or filesystems which do not support info querying result in errors.
    1342              :  *
    1343              :  * Returns: whether getting filesystem info is available
    1344              :  *
    1345              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1346              :  */
    1347            3 : gboolean  bd_fs_can_get_info (const gchar *type, gchar **required_utility, GError **error) {
    1348            3 :     return _bd_fs_can_get_info (type, required_utility, error);
    1349              : }
    1350              : 
    1351              : 
    1352            0 : static gboolean  bd_fs_can_mkfs_stub (const gchar *type G_GNUC_UNUSED, BDFSMkfsOptionsFlags *options G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1353            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_mkfs' called, but not implemented!");
    1354            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1355              :                 "The function 'bd_fs_can_mkfs' called, but not implemented!");
    1356            0 :     return FALSE;
    1357              : }
    1358              : 
    1359              : static gboolean  (*_bd_fs_can_mkfs) (const gchar *type, BDFSMkfsOptionsFlags *options, gchar **required_utility, GError **error) = bd_fs_can_mkfs_stub;
    1360              : 
    1361              : /**
    1362              :  * BDFSMkfsOptionsFlags:
    1363              :  * Flags indicating mkfs options are available for given filesystem type.
    1364              :  */
    1365              : /**
    1366              :  * bd_fs_can_mkfs:
    1367              :  * @type: the filesystem type to be tested for installed mkfs support
    1368              :  * @options: (out): flags for allowed mkfs options (i.e. support for setting label or UUID when creating the filesystem)
    1369              :  * @required_utility: (out) (transfer full): the utility binary which is required for creating (if missing returns %FALSE but no @error)
    1370              :  * @error: (out) (optional): place to store error (if any)
    1371              :  *
    1372              :  * Searches for the required utility to create the given filesystem and returns whether
    1373              :  * it is installed. The options flags indicate what additional options can be specified for @type.
    1374              :  * Unknown filesystems result in errors.
    1375              :  *
    1376              :  * Returns: whether filesystem mkfs tool is available
    1377              :  *
    1378              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1379              :  */
    1380           22 : gboolean  bd_fs_can_mkfs (const gchar *type, BDFSMkfsOptionsFlags *options, gchar **required_utility, GError **error) {
    1381           22 :     return _bd_fs_can_mkfs (type, options, required_utility, error);
    1382              : }
    1383              : 
    1384              : 
    1385            0 : static gboolean  bd_fs_can_resize_stub (const gchar *type G_GNUC_UNUSED, BDFSResizeFlags *mode G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1386            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_resize' called, but not implemented!");
    1387            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1388              :                 "The function 'bd_fs_can_resize' called, but not implemented!");
    1389            0 :     return FALSE;
    1390              : }
    1391              : 
    1392              : static gboolean  (*_bd_fs_can_resize) (const gchar *type, BDFSResizeFlags *mode, gchar **required_utility, GError **error) = bd_fs_can_resize_stub;
    1393              : 
    1394              : /**
    1395              :  * BDFSResizeFlags:
    1396              :  * Flags indicating whether a filesystem resize action supports growing and/or
    1397              :  * shrinking if mounted or unmounted.
    1398              :  */
    1399              : /**
    1400              :  * bd_fs_can_resize:
    1401              :  * @type: the filesystem type to be tested for installed resize support
    1402              :  * @mode: (out): flags for allowed resizing (i.e. growing/shrinking support for online/offline)
    1403              :  * @required_utility: (out) (transfer full): the utility binary which is required for resizing (if missing i.e. returns FALSE but no error)
    1404              :  * @error: (out) (optional): place to store error (if any)
    1405              :  *
    1406              :  * Searches for the required utility to resize the given filesystem and returns whether
    1407              :  * it is installed. The mode flags indicate if growing and/or shrinking resize is available if
    1408              :  * mounted/unmounted.
    1409              :  * Unknown filesystems or filesystems which do not support resizing result in errors.
    1410              :  *
    1411              :  * Returns: whether filesystem resize is available
    1412              :  *
    1413              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1414              :  */
    1415            5 : gboolean  bd_fs_can_resize (const gchar *type, BDFSResizeFlags *mode, gchar **required_utility, GError **error) {
    1416            5 :     return _bd_fs_can_resize (type, mode, required_utility, error);
    1417              : }
    1418              : 
    1419              : 
    1420            0 : static gboolean  bd_fs_can_check_stub (const gchar *type G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1421            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_check' called, but not implemented!");
    1422            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1423              :                 "The function 'bd_fs_can_check' called, but not implemented!");
    1424            0 :     return FALSE;
    1425              : }
    1426              : 
    1427              : static gboolean  (*_bd_fs_can_check) (const gchar *type, gchar **required_utility, GError **error) = bd_fs_can_check_stub;
    1428              : 
    1429              : /**
    1430              :  * bd_fs_can_check:
    1431              :  * @type: the filesystem type to be tested for installed consistency check support
    1432              :  * @required_utility: (out) (transfer full): the utility binary which is required for checking (if missing i.e. returns FALSE but no error)
    1433              :  * @error: (out) (optional): place to store error (if any)
    1434              :  *
    1435              :  * Searches for the required utility to check the given filesystem and returns whether
    1436              :  * it is installed.
    1437              :  * Unknown filesystems or filesystems which do not support checking result in errors.
    1438              :  *
    1439              :  * Returns: whether filesystem check is available
    1440              :  *
    1441              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1442              :  */
    1443            5 : gboolean  bd_fs_can_check (const gchar *type, gchar **required_utility, GError **error) {
    1444            5 :     return _bd_fs_can_check (type, required_utility, error);
    1445              : }
    1446              : 
    1447              : 
    1448            0 : static gboolean  bd_fs_can_repair_stub (const gchar *type G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1449            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_repair' called, but not implemented!");
    1450            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1451              :                 "The function 'bd_fs_can_repair' called, but not implemented!");
    1452            0 :     return FALSE;
    1453              : }
    1454              : 
    1455              : static gboolean  (*_bd_fs_can_repair) (const gchar *type, gchar **required_utility, GError **error) = bd_fs_can_repair_stub;
    1456              : 
    1457              : /**
    1458              :  * bd_fs_can_repair:
    1459              :  * @type: the filesystem type to be tested for installed repair support
    1460              :  * @required_utility: (out) (transfer full): the utility binary which is required for repairing (if missing i.e. return FALSE but no error)
    1461              :  * @error: (out) (optional): place to store error (if any)
    1462              :  *
    1463              :  * Searches for the required utility to repair the given filesystem and returns whether
    1464              :  * it is installed.
    1465              :  * Unknown filesystems or filesystems which do not support reparing result in errors.
    1466              :  *
    1467              :  * Returns: whether filesystem repair is available
    1468              :  *
    1469              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1470              :  */
    1471            5 : gboolean  bd_fs_can_repair (const gchar *type, gchar **required_utility, GError **error) {
    1472            5 :     return _bd_fs_can_repair (type, required_utility, error);
    1473              : }
    1474              : 
    1475              : 
    1476            0 : static gboolean  bd_fs_can_set_label_stub (const gchar *type G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1477            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_set_label' called, but not implemented!");
    1478            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1479              :                 "The function 'bd_fs_can_set_label' called, but not implemented!");
    1480            0 :     return FALSE;
    1481              : }
    1482              : 
    1483              : static gboolean  (*_bd_fs_can_set_label) (const gchar *type, gchar **required_utility, GError **error) = bd_fs_can_set_label_stub;
    1484              : 
    1485              : /**
    1486              :  * bd_fs_can_set_label:
    1487              :  * @type: the filesystem type to be tested for installed label support
    1488              :  * @required_utility: (out) (transfer full): the utility binary which is required for relabeling (if missing i.e. return FALSE but no error)
    1489              :  * @error: (out) (optional): place to store error (if any)
    1490              :  *
    1491              :  * Searches for the required utility to set the label of the given filesystem and returns whether
    1492              :  * it is installed.
    1493              :  * Unknown filesystems or filesystems which do not support setting the label result in errors.
    1494              :  *
    1495              :  * Returns: whether setting filesystem label is available
    1496              :  *
    1497              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1498              :  */
    1499            3 : gboolean  bd_fs_can_set_label (const gchar *type, gchar **required_utility, GError **error) {
    1500            3 :     return _bd_fs_can_set_label (type, required_utility, error);
    1501              : }
    1502              : 
    1503              : 
    1504            0 : static gboolean  bd_fs_can_set_uuid_stub (const gchar *type G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1505            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_set_uuid' called, but not implemented!");
    1506            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1507              :                 "The function 'bd_fs_can_set_uuid' called, but not implemented!");
    1508            0 :     return FALSE;
    1509              : }
    1510              : 
    1511              : static gboolean  (*_bd_fs_can_set_uuid) (const gchar *type, gchar **required_utility, GError **error) = bd_fs_can_set_uuid_stub;
    1512              : 
    1513              : /**
    1514              :  * bd_fs_can_set_uuid:
    1515              :  * @type: the filesystem type to be tested for installed UUID support
    1516              :  * @required_utility: (out) (transfer full): the utility binary which is required for setting UUID (if missing i.e. return FALSE but no error)
    1517              :  * @error: (out) (optional): place to store error (if any)
    1518              :  *
    1519              :  * Searches for the required utility to set the UUID of the given filesystem and returns whether
    1520              :  * it is installed.
    1521              :  * Unknown filesystems or filesystems which do not support setting the UUID result in errors.
    1522              :  *
    1523              :  * Returns: whether setting filesystem UUID is available
    1524              :  *
    1525              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1526              :  */
    1527            4 : gboolean  bd_fs_can_set_uuid (const gchar *type, gchar **required_utility, GError **error) {
    1528            4 :     return _bd_fs_can_set_uuid (type, required_utility, error);
    1529              : }
    1530              : 
    1531              : 
    1532            0 : static gboolean  bd_fs_can_get_size_stub (const gchar *type G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1533            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_get_size' called, but not implemented!");
    1534            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1535              :                 "The function 'bd_fs_can_get_size' called, but not implemented!");
    1536            0 :     return FALSE;
    1537              : }
    1538              : 
    1539              : static gboolean  (*_bd_fs_can_get_size) (const gchar *type, gchar **required_utility, GError **error) = bd_fs_can_get_size_stub;
    1540              : 
    1541              : /**
    1542              :  * bd_fs_can_get_size:
    1543              :  * @type: the filesystem type to be tested for installed size querying support
    1544              :  * @required_utility: (out) (transfer full): the utility binary which is required
    1545              :  *                                           for size querying (if missing i.e. return FALSE but no error)
    1546              :  * @error: (out) (optional): place to store error (if any)
    1547              :  *
    1548              :  * Searches for the required utility to get size of the given filesystem and
    1549              :  * returns whether it is installed.
    1550              :  * Unknown filesystems or filesystems which do not support size querying result in errors.
    1551              :  *
    1552              :  * Returns: whether getting filesystem size is available
    1553              :  *
    1554              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1555              :  */
    1556            3 : gboolean  bd_fs_can_get_size (const gchar *type, gchar **required_utility, GError **error) {
    1557            3 :     return _bd_fs_can_get_size (type, required_utility, error);
    1558              : }
    1559              : 
    1560              : 
    1561            0 : static gboolean  bd_fs_can_get_free_space_stub (const gchar *type G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1562            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_get_free_space' called, but not implemented!");
    1563            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1564              :                 "The function 'bd_fs_can_get_free_space' called, but not implemented!");
    1565            0 :     return FALSE;
    1566              : }
    1567              : 
    1568              : static gboolean  (*_bd_fs_can_get_free_space) (const gchar *type, gchar **required_utility, GError **error) = bd_fs_can_get_free_space_stub;
    1569              : 
    1570              : /**
    1571              :  * bd_fs_can_get_free_space:
    1572              :  * @type: the filesystem type to be tested for installed free space querying support
    1573              :  * @required_utility: (out) (transfer full): the utility binary which is required
    1574              :  *                                           for free space querying (if missing i.e. return FALSE but no error)
    1575              :  * @error: (out) (optional): place to store error (if any)
    1576              :  *
    1577              :  * Searches for the required utility to get free space of the given filesystem and
    1578              :  * returns whether it is installed.
    1579              :  * Unknown filesystems or filesystems which do not support free space querying result in errors.
    1580              :  *
    1581              :  * Returns: whether getting filesystem free space is available
    1582              :  *
    1583              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1584              :  */
    1585            6 : gboolean  bd_fs_can_get_free_space (const gchar *type, gchar **required_utility, GError **error) {
    1586            6 :     return _bd_fs_can_get_free_space (type, required_utility, error);
    1587              : }
    1588              : 
    1589              : 
    1590            0 : static gboolean  bd_fs_can_get_min_size_stub (const gchar *type G_GNUC_UNUSED, gchar **required_utility G_GNUC_UNUSED, GError **error) {
    1591            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_can_get_min_size' called, but not implemented!");
    1592            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1593              :                 "The function 'bd_fs_can_get_min_size' called, but not implemented!");
    1594            0 :     return FALSE;
    1595              : }
    1596              : 
    1597              : static gboolean  (*_bd_fs_can_get_min_size) (const gchar *type, gchar **required_utility, GError **error) = bd_fs_can_get_min_size_stub;
    1598              : 
    1599              : /**
    1600              :  * bd_fs_can_get_min_size:
    1601              :  * @type: the filesystem type to be tested for installed minimum size querying support
    1602              :  * @required_utility: (out) (transfer full): the utility binary which is required
    1603              :  *                                           for size querying (if missing i.e. return FALSE but no error)
    1604              :  * @error: (out) (optional): place to store error (if any)
    1605              :  *
    1606              :  * Searches for the required utility to get minimum size of the given filesystem and
    1607              :  * returns whether it is installed.
    1608              :  * Unknown filesystems or filesystems which do not support minimum size querying result in errors.
    1609              :  *
    1610              :  * Returns: whether getting filesystem size is available
    1611              :  *
    1612              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY
    1613              :  */
    1614            7 : gboolean  bd_fs_can_get_min_size (const gchar *type, gchar **required_utility, GError **error) {
    1615            7 :     return _bd_fs_can_get_min_size (type, required_utility, error);
    1616              : }
    1617              : 
    1618              : 
    1619            0 : static gboolean  bd_fs_mkfs_stub (const gchar *device G_GNUC_UNUSED, const gchar *fstype G_GNUC_UNUSED, BDFSMkfsOptions *options G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1620            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_mkfs' called, but not implemented!");
    1621            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1622              :                 "The function 'bd_fs_mkfs' called, but not implemented!");
    1623            0 :     return FALSE;
    1624              : }
    1625              : 
    1626              : static gboolean  (*_bd_fs_mkfs) (const gchar *device, const gchar *fstype, BDFSMkfsOptions *options, const BDExtraArg **extra, GError **error) = bd_fs_mkfs_stub;
    1627              : 
    1628              : /**
    1629              :  * bd_fs_mkfs:
    1630              :  * @device: the device to create the new filesystem on
    1631              :  * @fstype: name of the filesystem to create (e.g. "ext4")
    1632              :  * @options: additional options like label or UUID for the filesystem
    1633              :  * @extra: (nullable) (array zero-terminated=1): extra mkfs options not provided in @options
    1634              :  * @error: (out) (optional): place to store error (if any)
    1635              :  *
    1636              :  * This is a helper function for creating filesystems with extra options.
    1637              :  * This is the same as running a filesystem-specific function like %bd_fs_ext4_mkfs
    1638              :  * and manually specifying the extra command line options. %BDFSMkfsOptions
    1639              :  * removes the need to specify supported options for selected filesystems,
    1640              :  * make sure to check whether @fstype supports these options (see %bd_fs_can_mkfs)
    1641              :  * for details.
    1642              :  *
    1643              :  * When specifying additional mkfs options using @extra, it's caller's
    1644              :  * responsibility to make sure these options do not conflict with options
    1645              :  * specified using @options. Extra options are added after the @options and
    1646              :  * there are no additional checks for duplicate and/or conflicting options.
    1647              :  *
    1648              :  * Returns: whether @fstype was successfully created on @device or not.
    1649              :  *
    1650              :  * Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_MKFS
    1651              :  *
    1652              :  */
    1653           53 : gboolean  bd_fs_mkfs (const gchar *device, const gchar *fstype, BDFSMkfsOptions *options, const BDExtraArg **extra, GError **error) {
    1654           53 :     return _bd_fs_mkfs (device, fstype, options, extra, error);
    1655              : }
    1656              : 
    1657              : 
    1658            0 : static gboolean  bd_fs_ext2_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1659            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_mkfs' called, but not implemented!");
    1660            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1661              :                 "The function 'bd_fs_ext2_mkfs' called, but not implemented!");
    1662            0 :     return FALSE;
    1663              : }
    1664              : 
    1665              : static gboolean  (*_bd_fs_ext2_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_ext2_mkfs_stub;
    1666              : 
    1667              : /**
    1668              :  * bd_fs_ext2_mkfs:
    1669              :  * @device: the device to create a new ext2 fs on
    1670              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    1671              :  *                                                 passed to the 'mke2fs' utility)
    1672              :  * @error: (out) (optional): place to store error (if any)
    1673              :  *
    1674              :  * Returns: whether a new ext2 fs was successfully created on @device or not
    1675              :  *
    1676              :  * Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_MKFS
    1677              :  */
    1678           17 : gboolean  bd_fs_ext2_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    1679           17 :     return _bd_fs_ext2_mkfs (device, extra, error);
    1680              : }
    1681              : 
    1682              : 
    1683            0 : static gboolean  bd_fs_ext3_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1684            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_mkfs' called, but not implemented!");
    1685            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1686              :                 "The function 'bd_fs_ext3_mkfs' called, but not implemented!");
    1687            0 :     return FALSE;
    1688              : }
    1689              : 
    1690              : static gboolean  (*_bd_fs_ext3_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_ext3_mkfs_stub;
    1691              : 
    1692              : /**
    1693              :  * bd_fs_ext3_mkfs:
    1694              :  * @device: the device to create a new ext3 fs on
    1695              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    1696              :  *                                                 passed to the 'mke2fs' utility)
    1697              :  * @error: (out) (optional): place to store error (if any)
    1698              :  *
    1699              :  * Returns: whether a new ext3 fs was successfully created on @device or not
    1700              :  *
    1701              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_MKFS
    1702              :  */
    1703           15 : gboolean  bd_fs_ext3_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    1704           15 :     return _bd_fs_ext3_mkfs (device, extra, error);
    1705              : }
    1706              : 
    1707              : 
    1708            0 : static gboolean  bd_fs_ext4_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1709            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_mkfs' called, but not implemented!");
    1710            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1711              :                 "The function 'bd_fs_ext4_mkfs' called, but not implemented!");
    1712            0 :     return FALSE;
    1713              : }
    1714              : 
    1715              : static gboolean  (*_bd_fs_ext4_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_ext4_mkfs_stub;
    1716              : 
    1717              : /**
    1718              :  * bd_fs_ext4_mkfs:
    1719              :  * @device: the device to create a new ext4 fs on
    1720              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    1721              :  *                                                 passed to the 'mkfs.ext4' utility)
    1722              :  * @error: (out) (optional): place to store error (if any)
    1723              :  *
    1724              :  * Returns: whether a new ext4 fs was successfully created on @device or not
    1725              :  *
    1726              :  * Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_MKFS
    1727              :  */
    1728           23 : gboolean  bd_fs_ext4_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    1729           23 :     return _bd_fs_ext4_mkfs (device, extra, error);
    1730              : }
    1731              : 
    1732              : 
    1733            0 : static gboolean  bd_fs_ext2_check_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1734            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_check' called, but not implemented!");
    1735            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1736              :                 "The function 'bd_fs_ext2_check' called, but not implemented!");
    1737            0 :     return FALSE;
    1738              : }
    1739              : 
    1740              : static gboolean  (*_bd_fs_ext2_check) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_ext2_check_stub;
    1741              : 
    1742              : /**
    1743              :  * bd_fs_ext2_check:
    1744              :  * @device: the device the file system on which to check
    1745              :  * @extra: (nullable) (array zero-terminated=1): extra options for the check (right now
    1746              :  *                                                 passed to the 'e2fsck' utility)
    1747              :  * @error: (out) (optional): place to store error (if any)
    1748              :  *
    1749              :  * Returns: whether an ext2 file system on the @device is clean or not
    1750              :  *
    1751              :  * Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_CHECK
    1752              :  */
    1753            1 : gboolean  bd_fs_ext2_check (const gchar *device, const BDExtraArg **extra, GError **error) {
    1754            1 :     return _bd_fs_ext2_check (device, extra, error);
    1755              : }
    1756              : 
    1757              : 
    1758            0 : static gboolean  bd_fs_ext3_check_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1759            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_check' called, but not implemented!");
    1760            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1761              :                 "The function 'bd_fs_ext3_check' called, but not implemented!");
    1762            0 :     return FALSE;
    1763              : }
    1764              : 
    1765              : static gboolean  (*_bd_fs_ext3_check) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_ext3_check_stub;
    1766              : 
    1767              : /**
    1768              :  * bd_fs_ext3_check:
    1769              :  * @device: the device the file system on which to check
    1770              :  * @extra: (nullable) (array zero-terminated=1): extra options for the check (right now
    1771              :  *                                                 passed to the 'e2fsck' utility)
    1772              :  * @error: (out) (optional): place to store error (if any)
    1773              :  *
    1774              :  * Returns: whether an ext3 file system on the @device is clean or not
    1775              :  *
    1776              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_CHECK
    1777              :  */
    1778            1 : gboolean  bd_fs_ext3_check (const gchar *device, const BDExtraArg **extra, GError **error) {
    1779            1 :     return _bd_fs_ext3_check (device, extra, error);
    1780              : }
    1781              : 
    1782              : 
    1783            0 : static gboolean  bd_fs_ext4_check_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1784            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_check' called, but not implemented!");
    1785            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1786              :                 "The function 'bd_fs_ext4_check' called, but not implemented!");
    1787            0 :     return FALSE;
    1788              : }
    1789              : 
    1790              : static gboolean  (*_bd_fs_ext4_check) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_ext4_check_stub;
    1791              : 
    1792              : /**
    1793              :  * bd_fs_ext4_check:
    1794              :  * @device: the device the file system on which to check
    1795              :  * @extra: (nullable) (array zero-terminated=1): extra options for the check (right now
    1796              :  *                                                 passed to the 'e2fsck' utility)
    1797              :  * @error: (out) (optional): place to store error (if any)
    1798              :  *
    1799              :  * Returns: whether an ext4 file system on the @device is clean or not
    1800              :  *
    1801              :  * Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_CHECK
    1802              :  */
    1803            4 : gboolean  bd_fs_ext4_check (const gchar *device, const BDExtraArg **extra, GError **error) {
    1804            4 :     return _bd_fs_ext4_check (device, extra, error);
    1805              : }
    1806              : 
    1807              : 
    1808            0 : static gboolean  bd_fs_ext2_repair_stub (const gchar *device G_GNUC_UNUSED, gboolean unsafe G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1809            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_repair' called, but not implemented!");
    1810            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1811              :                 "The function 'bd_fs_ext2_repair' called, but not implemented!");
    1812            0 :     return FALSE;
    1813              : }
    1814              : 
    1815              : static gboolean  (*_bd_fs_ext2_repair) (const gchar *device, gboolean unsafe, const BDExtraArg **extra, GError **error) = bd_fs_ext2_repair_stub;
    1816              : 
    1817              : /**
    1818              :  * bd_fs_ext2_repair:
    1819              :  * @device: the device the file system on which to repair
    1820              :  * @unsafe: whether to do unsafe operations too
    1821              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    1822              :  *                                                 passed to the 'e2fsck' utility)
    1823              :  * @error: (out) (optional): place to store error (if any)
    1824              :  *
    1825              :  * Returns: whether an ext2 file system on the @device was successfully repaired
    1826              :  *          (if needed) or not (error is set in that case)
    1827              :  *
    1828              :  * Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_REPAIR
    1829              :  */
    1830            3 : gboolean  bd_fs_ext2_repair (const gchar *device, gboolean unsafe, const BDExtraArg **extra, GError **error) {
    1831            3 :     return _bd_fs_ext2_repair (device, unsafe, extra, error);
    1832              : }
    1833              : 
    1834              : 
    1835            0 : static gboolean  bd_fs_ext3_repair_stub (const gchar *device G_GNUC_UNUSED, gboolean unsafe G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1836            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_repair' called, but not implemented!");
    1837            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1838              :                 "The function 'bd_fs_ext3_repair' called, but not implemented!");
    1839            0 :     return FALSE;
    1840              : }
    1841              : 
    1842              : static gboolean  (*_bd_fs_ext3_repair) (const gchar *device, gboolean unsafe, const BDExtraArg **extra, GError **error) = bd_fs_ext3_repair_stub;
    1843              : 
    1844              : /**
    1845              :  * bd_fs_ext3_repair:
    1846              :  * @device: the device the file system on which to repair
    1847              :  * @unsafe: whether to do unsafe operations too
    1848              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    1849              :  *                                                 passed to the 'e2fsck' utility)
    1850              :  * @error: (out) (optional): place to store error (if any)
    1851              :  *
    1852              :  * Returns: whether an ext3 file system on the @device was successfully repaired
    1853              :  *          (if needed) or not (error is set in that case)
    1854              :  *
    1855              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_REPAIR
    1856              :  */
    1857            3 : gboolean  bd_fs_ext3_repair (const gchar *device, gboolean unsafe, const BDExtraArg **extra, GError **error) {
    1858            3 :     return _bd_fs_ext3_repair (device, unsafe, extra, error);
    1859              : }
    1860              : 
    1861              : 
    1862            0 : static gboolean  bd_fs_ext4_repair_stub (const gchar *device G_GNUC_UNUSED, gboolean unsafe G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    1863            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_repair' called, but not implemented!");
    1864            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1865              :                 "The function 'bd_fs_ext4_repair' called, but not implemented!");
    1866            0 :     return FALSE;
    1867              : }
    1868              : 
    1869              : static gboolean  (*_bd_fs_ext4_repair) (const gchar *device, gboolean unsafe, const BDExtraArg **extra, GError **error) = bd_fs_ext4_repair_stub;
    1870              : 
    1871              : /**
    1872              :  * bd_fs_ext4_repair:
    1873              :  * @device: the device the file system on which to repair
    1874              :  * @unsafe: whether to do unsafe operations too
    1875              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    1876              :  *                                                 passed to the 'e2fsck' utility)
    1877              :  * @error: (out) (optional): place to store error (if any)
    1878              :  *
    1879              :  * Returns: whether an ext4 file system on the @device was successfully repaired
    1880              :  *          (if needed) or not (error is set in that case)
    1881              :  *
    1882              :  * Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_REPAIR
    1883              :  */
    1884            5 : gboolean  bd_fs_ext4_repair (const gchar *device, gboolean unsafe, const BDExtraArg **extra, GError **error) {
    1885            5 :     return _bd_fs_ext4_repair (device, unsafe, extra, error);
    1886              : }
    1887              : 
    1888              : 
    1889            0 : static gboolean  bd_fs_ext2_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    1890            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_set_label' called, but not implemented!");
    1891            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1892              :                 "The function 'bd_fs_ext2_set_label' called, but not implemented!");
    1893            0 :     return FALSE;
    1894              : }
    1895              : 
    1896              : static gboolean  (*_bd_fs_ext2_set_label) (const gchar *device, const gchar *label, GError **error) = bd_fs_ext2_set_label_stub;
    1897              : 
    1898              : /**
    1899              :  * bd_fs_ext2_set_label:
    1900              :  * @device: the device the file system on which to set label for
    1901              :  * @label: label to set
    1902              :  * @error: (out) (optional): place to store error (if any)
    1903              :  *
    1904              :  * Returns: whether the label of ext2 file system on the @device was
    1905              :  *          successfully set or not
    1906              :  *
    1907              :  * Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_SET_LABEL
    1908              :  */
    1909            3 : gboolean  bd_fs_ext2_set_label (const gchar *device, const gchar *label, GError **error) {
    1910            3 :     return _bd_fs_ext2_set_label (device, label, error);
    1911              : }
    1912              : 
    1913              : 
    1914            0 : static gboolean  bd_fs_ext3_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    1915            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_set_label' called, but not implemented!");
    1916            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1917              :                 "The function 'bd_fs_ext3_set_label' called, but not implemented!");
    1918            0 :     return FALSE;
    1919              : }
    1920              : 
    1921              : static gboolean  (*_bd_fs_ext3_set_label) (const gchar *device, const gchar *label, GError **error) = bd_fs_ext3_set_label_stub;
    1922              : 
    1923              : /**
    1924              :  * bd_fs_ext3_set_label:
    1925              :  * @device: the device the file system on which to set label for
    1926              :  * @label: label to set
    1927              :  * @error: (out) (optional): place to store error (if any)
    1928              :  *
    1929              :  * Returns: whether the label of ext3 file system on the @device was
    1930              :  *          successfully set or not
    1931              :  *
    1932              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_SET_LABEL
    1933              :  */
    1934            3 : gboolean  bd_fs_ext3_set_label (const gchar *device, const gchar *label, GError **error) {
    1935            3 :     return _bd_fs_ext3_set_label (device, label, error);
    1936              : }
    1937              : 
    1938              : 
    1939            0 : static gboolean  bd_fs_ext4_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    1940            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_set_label' called, but not implemented!");
    1941            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1942              :                 "The function 'bd_fs_ext4_set_label' called, but not implemented!");
    1943            0 :     return FALSE;
    1944              : }
    1945              : 
    1946              : static gboolean  (*_bd_fs_ext4_set_label) (const gchar *device, const gchar *label, GError **error) = bd_fs_ext4_set_label_stub;
    1947              : 
    1948              : /**
    1949              :  * bd_fs_ext4_set_label:
    1950              :  * @device: the device the file system on which to set label for
    1951              :  * @label: label to set
    1952              :  * @error: (out) (optional): place to store error (if any)
    1953              :  *
    1954              :  * Returns: whether the label of ext4 file system on the @device was
    1955              :  *          successfully set or not
    1956              :  *
    1957              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_SET_LABEL
    1958              :  */
    1959            5 : gboolean  bd_fs_ext4_set_label (const gchar *device, const gchar *label, GError **error) {
    1960            5 :     return _bd_fs_ext4_set_label (device, label, error);
    1961              : }
    1962              : 
    1963              : 
    1964            0 : static gboolean  bd_fs_ext2_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    1965            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_check_label' called, but not implemented!");
    1966            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1967              :                 "The function 'bd_fs_ext2_check_label' called, but not implemented!");
    1968            0 :     return FALSE;
    1969              : }
    1970              : 
    1971              : static gboolean  (*_bd_fs_ext2_check_label) (const gchar *label, GError **error) = bd_fs_ext2_check_label_stub;
    1972              : 
    1973              : /**
    1974              :  * bd_fs_ext2_check_label:
    1975              :  * @label: label to check
    1976              :  * @error: (out) (optional): place to store error
    1977              :  *
    1978              :  * Returns: whether @label is a valid label for the ext2 file system or not
    1979              :  *          (reason is provided in @error)
    1980              :  *
    1981              :  * Tech category: always available
    1982              :  */
    1983            8 : gboolean  bd_fs_ext2_check_label (const gchar *label, GError **error) {
    1984            8 :     return _bd_fs_ext2_check_label (label, error);
    1985              : }
    1986              : 
    1987              : 
    1988            0 : static gboolean  bd_fs_ext3_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    1989            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_check_label' called, but not implemented!");
    1990            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    1991              :                 "The function 'bd_fs_ext3_check_label' called, but not implemented!");
    1992            0 :     return FALSE;
    1993              : }
    1994              : 
    1995              : static gboolean  (*_bd_fs_ext3_check_label) (const gchar *label, GError **error) = bd_fs_ext3_check_label_stub;
    1996              : 
    1997              : /**
    1998              :  * bd_fs_ext3_check_label:
    1999              :  * @label: label to check
    2000              :  * @error: (out) (optional): place to store error (if any)
    2001              :  *
    2002              :  * Returns: whether @label is a valid label for the ext3 file system or not
    2003              :  *          (reason is provided in @error)
    2004              :  *
    2005              :  * Tech category: always available
    2006              :  */
    2007            2 : gboolean  bd_fs_ext3_check_label (const gchar *label, GError **error) {
    2008            2 :     return _bd_fs_ext3_check_label (label, error);
    2009              : }
    2010              : 
    2011              : 
    2012            0 : static gboolean  bd_fs_ext4_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    2013            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_check_label' called, but not implemented!");
    2014            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2015              :                 "The function 'bd_fs_ext4_check_label' called, but not implemented!");
    2016            0 :     return FALSE;
    2017              : }
    2018              : 
    2019              : static gboolean  (*_bd_fs_ext4_check_label) (const gchar *label, GError **error) = bd_fs_ext4_check_label_stub;
    2020              : 
    2021              : /**
    2022              :  * bd_fs_ext4_check_label:
    2023              :  * @label: label to check
    2024              :  * @error: (out) (optional): place to store error (if any)
    2025              :  *
    2026              :  * Returns: whether @label is a valid label for the ext4 file system or not
    2027              :  *          (reason is provided in @error)
    2028              :  *
    2029              :  * Tech category: always available
    2030              :  */
    2031            4 : gboolean  bd_fs_ext4_check_label (const gchar *label, GError **error) {
    2032            4 :     return _bd_fs_ext4_check_label (label, error);
    2033              : }
    2034              : 
    2035              : 
    2036            0 : static gboolean  bd_fs_ext2_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2037            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_set_uuid' called, but not implemented!");
    2038            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2039              :                 "The function 'bd_fs_ext2_set_uuid' called, but not implemented!");
    2040            0 :     return FALSE;
    2041              : }
    2042              : 
    2043              : static gboolean  (*_bd_fs_ext2_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_ext2_set_uuid_stub;
    2044              : 
    2045              : /**
    2046              :  * bd_fs_ext2_set_uuid:
    2047              :  * @device: the device the file system on which to set UUID for
    2048              :  * @uuid: (nullable): UUID to set %NULL to generate a new one
    2049              :  *                      UUID can also be one of "clear", "random" and "time" to clear,
    2050              :  *                      generate a new random/time-based UUID
    2051              :  * @error: (out) (optional): place to store error (if any)
    2052              :  *
    2053              :  * Returns: whether the UUID of ext2 file system on the @device was
    2054              :  *          successfully set or not
    2055              :  *
    2056              :  * Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_SET_UUID
    2057              :  */
    2058            5 : gboolean  bd_fs_ext2_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    2059            5 :     return _bd_fs_ext2_set_uuid (device, uuid, error);
    2060              : }
    2061              : 
    2062              : 
    2063            0 : static gboolean  bd_fs_ext3_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2064            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_set_uuid' called, but not implemented!");
    2065            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2066              :                 "The function 'bd_fs_ext3_set_uuid' called, but not implemented!");
    2067            0 :     return FALSE;
    2068              : }
    2069              : 
    2070              : static gboolean  (*_bd_fs_ext3_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_ext3_set_uuid_stub;
    2071              : 
    2072              : /**
    2073              :  * bd_fs_ext3_set_uuid:
    2074              :  * @device: the device the file system on which to set UUID for
    2075              :  * @uuid: (nullable): UUID to set %NULL to generate a new one
    2076              :  *                      UUID can also be one of "clear", "random" and "time" to clear,
    2077              :  *                      generate a new random/time-based UUID
    2078              :  * @error: (out) (optional): place to store error (if any)
    2079              :  *
    2080              :  * Returns: whether the UUID of ext3 file system on the @device was
    2081              :  *          successfully set or not
    2082              :  *
    2083              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_SET_UUID
    2084              :  */
    2085            5 : gboolean  bd_fs_ext3_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    2086            5 :     return _bd_fs_ext3_set_uuid (device, uuid, error);
    2087              : }
    2088              : 
    2089              : 
    2090            0 : static gboolean  bd_fs_ext4_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2091            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_set_uuid' called, but not implemented!");
    2092            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2093              :                 "The function 'bd_fs_ext4_set_uuid' called, but not implemented!");
    2094            0 :     return FALSE;
    2095              : }
    2096              : 
    2097              : static gboolean  (*_bd_fs_ext4_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_ext4_set_uuid_stub;
    2098              : 
    2099              : /**
    2100              :  * bd_fs_ext4_set_uuid:
    2101              :  * @device: the device the file system on which to set UUID for
    2102              :  * @uuid: (nullable): UUID to set %NULL to generate a new one
    2103              :  *                      UUID can also be one of "clear", "random" and "time" to clear,
    2104              :  *                      generate a new random/time-based UUID
    2105              :  * @error: (out) (optional): place to store error (if any)
    2106              :  *
    2107              :  * Returns: whether the UUID of ext4 file system on the @device was
    2108              :  *          successfully set or not
    2109              :  *
    2110              :  * Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_SET_UUID
    2111              :  */
    2112            7 : gboolean  bd_fs_ext4_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    2113            7 :     return _bd_fs_ext4_set_uuid (device, uuid, error);
    2114              : }
    2115              : 
    2116              : 
    2117            0 : static gboolean  bd_fs_ext2_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2118            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_check_uuid' called, but not implemented!");
    2119            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2120              :                 "The function 'bd_fs_ext2_check_uuid' called, but not implemented!");
    2121            0 :     return FALSE;
    2122              : }
    2123              : 
    2124              : static gboolean  (*_bd_fs_ext2_check_uuid) (const gchar *uuid, GError **error) = bd_fs_ext2_check_uuid_stub;
    2125              : 
    2126              : /**
    2127              :  * bd_fs_ext2_check_uuid:
    2128              :  * @uuid: UUID to check
    2129              :  * @error: (out) (optional): place to store error
    2130              :  *
    2131              :  * Returns: whether @uuid is a valid UUID for the ext2 file system or not
    2132              :  *          (reason is provided in @error)
    2133              :  *
    2134              :  * Tech category: always available
    2135              :  */
    2136            2 : gboolean  bd_fs_ext2_check_uuid (const gchar *uuid, GError **error) {
    2137            2 :     return _bd_fs_ext2_check_uuid (uuid, error);
    2138              : }
    2139              : 
    2140              : 
    2141            0 : static gboolean  bd_fs_ext3_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2142            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_check_uuid' called, but not implemented!");
    2143            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2144              :                 "The function 'bd_fs_ext3_check_uuid' called, but not implemented!");
    2145            0 :     return FALSE;
    2146              : }
    2147              : 
    2148              : static gboolean  (*_bd_fs_ext3_check_uuid) (const gchar *uuid, GError **error) = bd_fs_ext3_check_uuid_stub;
    2149              : 
    2150              : /**
    2151              :  * bd_fs_ext3_check_uuid:
    2152              :  * @uuid: UUID to check
    2153              :  * @error: (out) (optional): place to store error
    2154              :  *
    2155              :  * Returns: whether @uuid is a valid UUID for the ext3 file system or not
    2156              :  *          (reason is provided in @error)
    2157              :  *
    2158              :  * Tech category: always available
    2159              :  */
    2160            2 : gboolean  bd_fs_ext3_check_uuid (const gchar *uuid, GError **error) {
    2161            2 :     return _bd_fs_ext3_check_uuid (uuid, error);
    2162              : }
    2163              : 
    2164              : 
    2165            0 : static gboolean  bd_fs_ext4_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2166            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_check_uuid' called, but not implemented!");
    2167            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2168              :                 "The function 'bd_fs_ext4_check_uuid' called, but not implemented!");
    2169            0 :     return FALSE;
    2170              : }
    2171              : 
    2172              : static gboolean  (*_bd_fs_ext4_check_uuid) (const gchar *uuid, GError **error) = bd_fs_ext4_check_uuid_stub;
    2173              : 
    2174              : /**
    2175              :  * bd_fs_ext4_check_uuid:
    2176              :  * @uuid: UUID to check
    2177              :  * @error: (out) (optional): place to store error
    2178              :  *
    2179              :  * Returns: whether @uuid is a valid UUID for the ext4 file system or not
    2180              :  *          (reason is provided in @error)
    2181              :  *
    2182              :  * Tech category: always available
    2183              :  */
    2184            3 : gboolean  bd_fs_ext4_check_uuid (const gchar *uuid, GError **error) {
    2185            3 :     return _bd_fs_ext4_check_uuid (uuid, error);
    2186              : }
    2187              : 
    2188              : 
    2189            0 : static BDFSExt2Info* bd_fs_ext2_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    2190            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_get_info' called, but not implemented!");
    2191            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2192              :                 "The function 'bd_fs_ext2_get_info' called, but not implemented!");
    2193            0 :     return NULL;
    2194              : }
    2195              : 
    2196              : static BDFSExt2Info* (*_bd_fs_ext2_get_info) (const gchar *device, GError **error) = bd_fs_ext2_get_info_stub;
    2197              : 
    2198              : /**
    2199              :  * bd_fs_ext2_get_info:
    2200              :  * @device: the device the file system of which to get info for
    2201              :  * @error: (out) (optional): place to store error (if any)
    2202              :  *
    2203              :  * Returns: (transfer full): information about the file system on @device or
    2204              :  *                           %NULL in case of error
    2205              :  *
    2206              :  * Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_QUERY
    2207              :  */
    2208           19 : BDFSExt2Info* bd_fs_ext2_get_info (const gchar *device, GError **error) {
    2209           19 :     return _bd_fs_ext2_get_info (device, error);
    2210              : }
    2211              : 
    2212              : 
    2213            0 : static BDFSExt3Info* bd_fs_ext3_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    2214            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_get_info' called, but not implemented!");
    2215            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2216              :                 "The function 'bd_fs_ext3_get_info' called, but not implemented!");
    2217            0 :     return NULL;
    2218              : }
    2219              : 
    2220              : static BDFSExt3Info* (*_bd_fs_ext3_get_info) (const gchar *device, GError **error) = bd_fs_ext3_get_info_stub;
    2221              : 
    2222              : /**
    2223              :  * bd_fs_ext3_get_info:
    2224              :  * @device: the device the file system of which to get info for
    2225              :  * @error: (out) (optional): place to store error (if any)
    2226              :  *
    2227              :  * Returns: (transfer full): information about the file system on @device or
    2228              :  *                           %NULL in case of error
    2229              :  *
    2230              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_QUERY
    2231              :  */
    2232           18 : BDFSExt3Info* bd_fs_ext3_get_info (const gchar *device, GError **error) {
    2233           18 :     return _bd_fs_ext3_get_info (device, error);
    2234              : }
    2235              : 
    2236              : 
    2237            0 : static BDFSExt4Info* bd_fs_ext4_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    2238            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_get_info' called, but not implemented!");
    2239            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2240              :                 "The function 'bd_fs_ext4_get_info' called, but not implemented!");
    2241            0 :     return NULL;
    2242              : }
    2243              : 
    2244              : static BDFSExt4Info* (*_bd_fs_ext4_get_info) (const gchar *device, GError **error) = bd_fs_ext4_get_info_stub;
    2245              : 
    2246              : /**
    2247              :  * bd_fs_ext4_get_info:
    2248              :  * @device: the device the file system of which to get info for
    2249              :  * @error: (out) (optional): place to store error (if any)
    2250              :  *
    2251              :  * Returns: (transfer full): information about the file system on @device or
    2252              :  *                           %NULL in case of error
    2253              :  *
    2254              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_QUERY
    2255              :  */
    2256           45 : BDFSExt4Info* bd_fs_ext4_get_info (const gchar *device, GError **error) {
    2257           45 :     return _bd_fs_ext4_get_info (device, error);
    2258              : }
    2259              : 
    2260              : 
    2261            0 : static gboolean  bd_fs_ext2_resize_stub (const gchar *device G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2262            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_resize' called, but not implemented!");
    2263            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2264              :                 "The function 'bd_fs_ext2_resize' called, but not implemented!");
    2265            0 :     return FALSE;
    2266              : }
    2267              : 
    2268              : static gboolean  (*_bd_fs_ext2_resize) (const gchar *device, guint64 new_size, const BDExtraArg **extra, GError **error) = bd_fs_ext2_resize_stub;
    2269              : 
    2270              : /**
    2271              :  * bd_fs_ext2_resize:
    2272              :  * @device: the device the file system of which to resize
    2273              :  * @new_size: new requested size for the file system (if 0, the file system is
    2274              :  *            adapted to the underlying block device)
    2275              :  * @extra: (nullable) (array zero-terminated=1): extra options for the resize (right now
    2276              :  *                                                 passed to the 'resize2fs' utility)
    2277              :  * @error: (out) (optional): place to store error (if any)
    2278              :  *
    2279              :  * Returns: whether the file system on @device was successfully resized or not
    2280              :  *
    2281              :  * Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_RESIZE
    2282              :  */
    2283            5 : gboolean  bd_fs_ext2_resize (const gchar *device, guint64 new_size, const BDExtraArg **extra, GError **error) {
    2284            5 :     return _bd_fs_ext2_resize (device, new_size, extra, error);
    2285              : }
    2286              : 
    2287              : 
    2288            0 : static gboolean  bd_fs_ext3_resize_stub (const gchar *device G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2289            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_resize' called, but not implemented!");
    2290            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2291              :                 "The function 'bd_fs_ext3_resize' called, but not implemented!");
    2292            0 :     return FALSE;
    2293              : }
    2294              : 
    2295              : static gboolean  (*_bd_fs_ext3_resize) (const gchar *device, guint64 new_size, const BDExtraArg **extra, GError **error) = bd_fs_ext3_resize_stub;
    2296              : 
    2297              : /**
    2298              :  * bd_fs_ext3_resize:
    2299              :  * @device: the device the file system of which to resize
    2300              :  * @new_size: new requested size for the file system (if 0, the file system is
    2301              :  *            adapted to the underlying block device)
    2302              :  * @extra: (nullable) (array zero-terminated=1): extra options for the resize (right now
    2303              :  *                                                 passed to the 'resize2fs' utility)
    2304              :  * @error: (out) (optional): place to store error (if any)
    2305              :  *
    2306              :  * Returns: whether the file system on @device was successfully resized or not
    2307              :  *
    2308              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_RESIZE
    2309              :  */
    2310            5 : gboolean  bd_fs_ext3_resize (const gchar *device, guint64 new_size, const BDExtraArg **extra, GError **error) {
    2311            5 :     return _bd_fs_ext3_resize (device, new_size, extra, error);
    2312              : }
    2313              : 
    2314              : 
    2315            0 : static gboolean  bd_fs_ext4_resize_stub (const gchar *device G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2316            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_resize' called, but not implemented!");
    2317            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2318              :                 "The function 'bd_fs_ext4_resize' called, but not implemented!");
    2319            0 :     return FALSE;
    2320              : }
    2321              : 
    2322              : static gboolean  (*_bd_fs_ext4_resize) (const gchar *device, guint64 new_size, const BDExtraArg **extra, GError **error) = bd_fs_ext4_resize_stub;
    2323              : 
    2324              : /**
    2325              :  * bd_fs_ext4_resize:
    2326              :  * @device: the device the file system of which to resize
    2327              :  * @new_size: new requested size for the file system (if 0, the file system is
    2328              :  *            adapted to the underlying block device)
    2329              :  * @extra: (nullable) (array zero-terminated=1): extra options for the resize (right now
    2330              :  *                                                 passed to the 'resize2fs' utility)
    2331              :  * @error: (out) (optional): place to store error (if any)
    2332              :  *
    2333              :  * Returns: whether the file system on @device was successfully resized or not
    2334              :  *
    2335              :  * Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_RESIZE
    2336              :  */
    2337           11 : gboolean  bd_fs_ext4_resize (const gchar *device, guint64 new_size, const BDExtraArg **extra, GError **error) {
    2338           11 :     return _bd_fs_ext4_resize (device, new_size, extra, error);
    2339              : }
    2340              : 
    2341              : 
    2342            0 : static guint64  bd_fs_ext2_get_min_size_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    2343            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext2_get_min_size' called, but not implemented!");
    2344            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2345              :                 "The function 'bd_fs_ext2_get_min_size' called, but not implemented!");
    2346            0 :     return 0;
    2347              : }
    2348              : 
    2349              : static guint64  (*_bd_fs_ext2_get_min_size) (const gchar *device, GError **error) = bd_fs_ext2_get_min_size_stub;
    2350              : 
    2351              : /**
    2352              :  * bd_fs_ext2_get_min_size:
    2353              :  * @device: the device containing the file system to get min size for
    2354              :  * @error: (out) (optional): place to store error (if any)
    2355              :  *
    2356              :  * Returns: smallest shrunken filesystem size as reported by resize2fs
    2357              :  *          in case of error 0 is returned and @error is set
    2358              :  *
    2359              :  * Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_RESIZE
    2360              :  */
    2361            4 : guint64  bd_fs_ext2_get_min_size (const gchar *device, GError **error) {
    2362            4 :     return _bd_fs_ext2_get_min_size (device, error);
    2363              : }
    2364              : 
    2365              : 
    2366            0 : static guint64  bd_fs_ext3_get_min_size_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    2367            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext3_get_min_size' called, but not implemented!");
    2368            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2369              :                 "The function 'bd_fs_ext3_get_min_size' called, but not implemented!");
    2370            0 :     return 0;
    2371              : }
    2372              : 
    2373              : static guint64  (*_bd_fs_ext3_get_min_size) (const gchar *device, GError **error) = bd_fs_ext3_get_min_size_stub;
    2374              : 
    2375              : /**
    2376              :  * bd_fs_ext3_get_min_size:
    2377              :  * @device: the device containing the file system to get min size for
    2378              :  * @error: (out) (optional): place to store error (if any)
    2379              :  *
    2380              :  * Returns: smallest shrunken filesystem size as reported by resize2fs
    2381              :  *          in case of error 0 is returned and @error is set
    2382              :  *
    2383              :  * Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_RESIZE
    2384              :  */
    2385            1 : guint64  bd_fs_ext3_get_min_size (const gchar *device, GError **error) {
    2386            1 :     return _bd_fs_ext3_get_min_size (device, error);
    2387              : }
    2388              : 
    2389              : 
    2390            0 : static guint64  bd_fs_ext4_get_min_size_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    2391            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ext4_get_min_size' called, but not implemented!");
    2392            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2393              :                 "The function 'bd_fs_ext4_get_min_size' called, but not implemented!");
    2394            0 :     return 0;
    2395              : }
    2396              : 
    2397              : static guint64  (*_bd_fs_ext4_get_min_size) (const gchar *device, GError **error) = bd_fs_ext4_get_min_size_stub;
    2398              : 
    2399              : /**
    2400              :  * bd_fs_ext4_get_min_size:
    2401              :  * @device: the device containing the file system to get min size for
    2402              :  * @error: (out) (optional): place to store error (if any)
    2403              :  *
    2404              :  * Returns: smallest shrunken filesystem size as reported by resize2fs
    2405              :  *          in case of error 0 is returned and @error is set
    2406              :  *
    2407              :  * Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_RESIZE
    2408              :  */
    2409            1 : guint64  bd_fs_ext4_get_min_size (const gchar *device, GError **error) {
    2410            1 :     return _bd_fs_ext4_get_min_size (device, error);
    2411              : }
    2412              : 
    2413              : 
    2414            0 : static gboolean  bd_fs_xfs_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2415            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_xfs_mkfs' called, but not implemented!");
    2416            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2417              :                 "The function 'bd_fs_xfs_mkfs' called, but not implemented!");
    2418            0 :     return FALSE;
    2419              : }
    2420              : 
    2421              : static gboolean  (*_bd_fs_xfs_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_xfs_mkfs_stub;
    2422              : 
    2423              : /**
    2424              :  * bd_fs_xfs_mkfs:
    2425              :  * @device: the device to create a new xfs fs on
    2426              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    2427              :  *                                                 passed to the 'mkfs.xfs' utility)
    2428              :  * @error: (out) (optional): place to store error (if any)
    2429              :  *
    2430              :  * Returns: whether a new xfs fs was successfully created on @device or not
    2431              :  *
    2432              :  * Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_MKFS
    2433              :  */
    2434           24 : gboolean  bd_fs_xfs_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    2435           24 :     return _bd_fs_xfs_mkfs (device, extra, error);
    2436              : }
    2437              : 
    2438              : 
    2439            0 : static gboolean  bd_fs_xfs_check_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2440            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_xfs_check' called, but not implemented!");
    2441            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2442              :                 "The function 'bd_fs_xfs_check' called, but not implemented!");
    2443            0 :     return FALSE;
    2444              : }
    2445              : 
    2446              : static gboolean  (*_bd_fs_xfs_check) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_xfs_check_stub;
    2447              : 
    2448              : /**
    2449              :  * bd_fs_xfs_check:
    2450              :  * @device: the device containing the file system to check
    2451              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    2452              :  *                                               passed to the 'xfs_repair' utility)
    2453              :  * @error: (out) (optional): place to store error (if any)
    2454              :  *
    2455              :  * Returns: whether an xfs file system on the @device is clean or not
    2456              :  *
    2457              :  * Note: If the file system is mounted RW, it will always be reported as not
    2458              :  *       clean!
    2459              :  *
    2460              :  * Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_CHECK
    2461              :  */
    2462            5 : gboolean  bd_fs_xfs_check (const gchar *device, const BDExtraArg **extra, GError **error) {
    2463            5 :     return _bd_fs_xfs_check (device, extra, error);
    2464              : }
    2465              : 
    2466              : 
    2467            0 : static gboolean  bd_fs_xfs_repair_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2468            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_xfs_repair' called, but not implemented!");
    2469            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2470              :                 "The function 'bd_fs_xfs_repair' called, but not implemented!");
    2471            0 :     return FALSE;
    2472              : }
    2473              : 
    2474              : static gboolean  (*_bd_fs_xfs_repair) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_xfs_repair_stub;
    2475              : 
    2476              : /**
    2477              :  * bd_fs_xfs_repair:
    2478              :  * @device: the device containing the file system to repair
    2479              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    2480              :  *                                                 passed to the 'xfs_repair' utility)
    2481              :  * @error: (out) (optional): place to store error (if any)
    2482              :  *
    2483              :  * Returns: whether an xfs file system on the @device was successfully repaired
    2484              :  *          (if needed) or not (error is set in that case)
    2485              :  *
    2486              :  * Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_REPAIR
    2487              :  */
    2488            5 : gboolean  bd_fs_xfs_repair (const gchar *device, const BDExtraArg **extra, GError **error) {
    2489            5 :     return _bd_fs_xfs_repair (device, extra, error);
    2490              : }
    2491              : 
    2492              : 
    2493            0 : static gboolean  bd_fs_xfs_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    2494            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_xfs_set_label' called, but not implemented!");
    2495            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2496              :                 "The function 'bd_fs_xfs_set_label' called, but not implemented!");
    2497            0 :     return FALSE;
    2498              : }
    2499              : 
    2500              : static gboolean  (*_bd_fs_xfs_set_label) (const gchar *device, const gchar *label, GError **error) = bd_fs_xfs_set_label_stub;
    2501              : 
    2502              : /**
    2503              :  * bd_fs_xfs_set_label:
    2504              :  * @device: the device containing the file system to set label for
    2505              :  * @label: label to set
    2506              :  * @error: (out) (optional): place to store error (if any)
    2507              :  *
    2508              :  * Returns: whether the label of xfs file system on the @device was
    2509              :  *          successfully set or not
    2510              :  *
    2511              :  * Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_SET_LABEL
    2512              :  */
    2513            5 : gboolean  bd_fs_xfs_set_label (const gchar *device, const gchar *label, GError **error) {
    2514            5 :     return _bd_fs_xfs_set_label (device, label, error);
    2515              : }
    2516              : 
    2517              : 
    2518            0 : static gboolean  bd_fs_xfs_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    2519            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_xfs_check_label' called, but not implemented!");
    2520            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2521              :                 "The function 'bd_fs_xfs_check_label' called, but not implemented!");
    2522            0 :     return FALSE;
    2523              : }
    2524              : 
    2525              : static gboolean  (*_bd_fs_xfs_check_label) (const gchar *label, GError **error) = bd_fs_xfs_check_label_stub;
    2526              : 
    2527              : /**
    2528              :  * bd_fs_xfs_check_label:
    2529              :  * @label: label to check
    2530              :  * @error: (out) (optional): place to store error
    2531              :  *
    2532              :  * Returns: whether @label is a valid label for the xfs file system or not
    2533              :  *          (reason is provided in @error)
    2534              :  *
    2535              :  * Tech category: always available
    2536              :  */
    2537            5 : gboolean  bd_fs_xfs_check_label (const gchar *label, GError **error) {
    2538            5 :     return _bd_fs_xfs_check_label (label, error);
    2539              : }
    2540              : 
    2541              : 
    2542            0 : static gboolean  bd_fs_xfs_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2543            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_xfs_set_uuid' called, but not implemented!");
    2544            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2545              :                 "The function 'bd_fs_xfs_set_uuid' called, but not implemented!");
    2546            0 :     return FALSE;
    2547              : }
    2548              : 
    2549              : static gboolean  (*_bd_fs_xfs_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_xfs_set_uuid_stub;
    2550              : 
    2551              : /**
    2552              :  * bd_fs_xfs_set_uuid:
    2553              :  * @device: the device containing the file system to set uuid for
    2554              :  * @uuid: (nullable): UUID to set %NULL to generate a new one
    2555              :  *                      UUID can also be one of "nil" and "generate" to clear or
    2556              :  *                      generate a new UUID
    2557              :  * @error: (out) (optional): place to store error (if any)
    2558              :  *
    2559              :  * Returns: whether the UUID of xfs file system on the @device was
    2560              :  *          successfully set or not
    2561              :  *
    2562              :  * Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_SET_UUID
    2563              :  */
    2564            6 : gboolean  bd_fs_xfs_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    2565            6 :     return _bd_fs_xfs_set_uuid (device, uuid, error);
    2566              : }
    2567              : 
    2568              : 
    2569            0 : static BDFSXfsInfo* bd_fs_xfs_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    2570            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_xfs_get_info' called, but not implemented!");
    2571            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2572              :                 "The function 'bd_fs_xfs_get_info' called, but not implemented!");
    2573            0 :     return NULL;
    2574              : }
    2575              : 
    2576              : static BDFSXfsInfo* (*_bd_fs_xfs_get_info) (const gchar *device, GError **error) = bd_fs_xfs_get_info_stub;
    2577              : 
    2578              : /**
    2579              :  * bd_fs_xfs_get_info:
    2580              :  * @device: the device containing the file system to get info for (device must
    2581              :             be mounted, trying to get info for an unmounted device will result
    2582              :             in an error)
    2583              :  * @error: (out) (optional): place to store error (if any)
    2584              :  *
    2585              :  * Returns: (transfer full): information about the file system on @device or
    2586              :  *                           %NULL in case of error
    2587              :  *
    2588              :  * Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_QUERY
    2589              :  */
    2590           41 : BDFSXfsInfo* bd_fs_xfs_get_info (const gchar *device, GError **error) {
    2591           41 :     return _bd_fs_xfs_get_info (device, error);
    2592              : }
    2593              : 
    2594              : 
    2595            0 : static gboolean  bd_fs_xfs_resize_stub (const gchar *mpoint G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2596            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_xfs_resize' called, but not implemented!");
    2597            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2598              :                 "The function 'bd_fs_xfs_resize' called, but not implemented!");
    2599            0 :     return FALSE;
    2600              : }
    2601              : 
    2602              : static gboolean  (*_bd_fs_xfs_resize) (const gchar *mpoint, guint64 new_size, const BDExtraArg **extra, GError **error) = bd_fs_xfs_resize_stub;
    2603              : 
    2604              : /**
    2605              :  * bd_fs_xfs_resize:
    2606              :  * @mpoint: the mount point of the file system to resize
    2607              :  * @new_size: new requested size for the file system *in file system blocks* (see bd_fs_xfs_get_info())
    2608              :  *            (if 0, the file system is adapted to the underlying block device)
    2609              :  * @extra: (nullable) (array zero-terminated=1): extra options for the resize (right now
    2610              :  *                                                 passed to the 'xfs_growfs' utility)
    2611              :  * @error: (out) (optional): place to store error (if any)
    2612              :  *
    2613              :  * Returns: whether the file system mounted on @mpoint was successfully resized or not
    2614              :  *
    2615              :  * Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_RESIZE
    2616              :  */
    2617           16 : gboolean  bd_fs_xfs_resize (const gchar *mpoint, guint64 new_size, const BDExtraArg **extra, GError **error) {
    2618           16 :     return _bd_fs_xfs_resize (mpoint, new_size, extra, error);
    2619              : }
    2620              : 
    2621              : 
    2622            0 : static gboolean  bd_fs_vfat_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2623            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_vfat_mkfs' called, but not implemented!");
    2624            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2625              :                 "The function 'bd_fs_vfat_mkfs' called, but not implemented!");
    2626            0 :     return FALSE;
    2627              : }
    2628              : 
    2629              : static gboolean  (*_bd_fs_vfat_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_vfat_mkfs_stub;
    2630              : 
    2631              : /**
    2632              :  * bd_fs_vfat_mkfs:
    2633              :  * @device: the device to create a new vfat fs on
    2634              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    2635              :  *                                                 passed to the 'mkfs.vfat' utility)
    2636              :  * @error: (out) (optional): place to store error (if any)
    2637              :  *
    2638              :  * Please remember that FAT labels should always be uppercase.
    2639              :  *
    2640              :  * Returns: whether a new vfat fs was successfully created on @device or not
    2641              :  *
    2642              :  * Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_MKFS
    2643              :  */
    2644           21 : gboolean  bd_fs_vfat_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    2645           21 :     return _bd_fs_vfat_mkfs (device, extra, error);
    2646              : }
    2647              : 
    2648              : 
    2649            0 : static gboolean  bd_fs_vfat_check_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2650            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_vfat_check' called, but not implemented!");
    2651            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2652              :                 "The function 'bd_fs_vfat_check' called, but not implemented!");
    2653            0 :     return FALSE;
    2654              : }
    2655              : 
    2656              : static gboolean  (*_bd_fs_vfat_check) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_vfat_check_stub;
    2657              : 
    2658              : /**
    2659              :  * bd_fs_vfat_check:
    2660              :  * @device: the device containing the file system to check
    2661              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    2662              :  *                                                 passed to the 'fsck.vfat' utility)
    2663              :  * @error: (out) (optional): place to store error (if any)
    2664              :  *
    2665              :  * Returns: whether an vfat file system on the @device is clean or not
    2666              :  *
    2667              :  * Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_CHECK
    2668              :  */
    2669            2 : gboolean  bd_fs_vfat_check (const gchar *device, const BDExtraArg **extra, GError **error) {
    2670            2 :     return _bd_fs_vfat_check (device, extra, error);
    2671              : }
    2672              : 
    2673              : 
    2674            0 : static gboolean  bd_fs_vfat_repair_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2675            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_vfat_repair' called, but not implemented!");
    2676            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2677              :                 "The function 'bd_fs_vfat_repair' called, but not implemented!");
    2678            0 :     return FALSE;
    2679              : }
    2680              : 
    2681              : static gboolean  (*_bd_fs_vfat_repair) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_vfat_repair_stub;
    2682              : 
    2683              : /**
    2684              :  * bd_fs_vfat_repair:
    2685              :  * @device: the device containing the file system to repair
    2686              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    2687              :  *                                                 passed to the 'fsck.vfat' utility)
    2688              :  * @error: (out) (optional): place to store error (if any)
    2689              :  *
    2690              :  * Returns: whether an vfat file system on the @device was successfully repaired
    2691              :  *          (if needed) or not (error is set in that case)
    2692              :  *
    2693              :  * Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_REPAIR
    2694              :  */
    2695            1 : gboolean  bd_fs_vfat_repair (const gchar *device, const BDExtraArg **extra, GError **error) {
    2696            1 :     return _bd_fs_vfat_repair (device, extra, error);
    2697              : }
    2698              : 
    2699              : 
    2700            0 : static gboolean  bd_fs_vfat_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    2701            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_vfat_set_label' called, but not implemented!");
    2702            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2703              :                 "The function 'bd_fs_vfat_set_label' called, but not implemented!");
    2704            0 :     return FALSE;
    2705              : }
    2706              : 
    2707              : static gboolean  (*_bd_fs_vfat_set_label) (const gchar *device, const gchar *label, GError **error) = bd_fs_vfat_set_label_stub;
    2708              : 
    2709              : /**
    2710              :  * bd_fs_vfat_set_label:
    2711              :  * @device: the device containing the file system to set label for
    2712              :  * @label: label to set
    2713              :  * @error: (out) (optional): place to store error (if any)
    2714              :  *
    2715              :  * Returns: whether the label of vfat file system on the @device was
    2716              :  *          successfully set or not
    2717              :  *
    2718              :  * Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_SET_LABEL
    2719              :  */
    2720            5 : gboolean  bd_fs_vfat_set_label (const gchar *device, const gchar *label, GError **error) {
    2721            5 :     return _bd_fs_vfat_set_label (device, label, error);
    2722              : }
    2723              : 
    2724              : 
    2725            0 : static gboolean  bd_fs_vfat_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    2726            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_vfat_check_label' called, but not implemented!");
    2727            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2728              :                 "The function 'bd_fs_vfat_check_label' called, but not implemented!");
    2729            0 :     return FALSE;
    2730              : }
    2731              : 
    2732              : static gboolean  (*_bd_fs_vfat_check_label) (const gchar *label, GError **error) = bd_fs_vfat_check_label_stub;
    2733              : 
    2734              : /**
    2735              :  * bd_fs_vfat_check_label:
    2736              :  * @label: label to check
    2737              :  * @error: (out) (optional): place to store error
    2738              :  *
    2739              :  * Returns: whether @label is a valid label for the vfat file system or not
    2740              :  *          (reason is provided in @error)
    2741              :  *
    2742              :  * Tech category: always available
    2743              :  */
    2744            4 : gboolean  bd_fs_vfat_check_label (const gchar *label, GError **error) {
    2745            4 :     return _bd_fs_vfat_check_label (label, error);
    2746              : }
    2747              : 
    2748              : 
    2749            0 : static gboolean  bd_fs_vfat_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2750            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_vfat_set_uuid' called, but not implemented!");
    2751            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2752              :                 "The function 'bd_fs_vfat_set_uuid' called, but not implemented!");
    2753            0 :     return FALSE;
    2754              : }
    2755              : 
    2756              : static gboolean  (*_bd_fs_vfat_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_vfat_set_uuid_stub;
    2757              : 
    2758              : /**
    2759              :  * bd_fs_vfat_set_uuid:
    2760              :  * @device: the device containing the file system to set uuid for
    2761              :  * @uuid: (nullable): volume ID to set or %NULL to generate a new one
    2762              :  * @error: (out) (optional): place to store error (if any)
    2763              :  *
    2764              :  * Returns: whether the volume ID of vfat file system on the @device was
    2765              :  *          successfully set or not
    2766              :  *
    2767              :  * Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_SET_UUID
    2768              :  */
    2769            5 : gboolean  bd_fs_vfat_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    2770            5 :     return _bd_fs_vfat_set_uuid (device, uuid, error);
    2771              : }
    2772              : 
    2773              : 
    2774            0 : static gboolean  bd_fs_vfat_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2775            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_vfat_check_uuid' called, but not implemented!");
    2776            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2777              :                 "The function 'bd_fs_vfat_check_uuid' called, but not implemented!");
    2778            0 :     return FALSE;
    2779              : }
    2780              : 
    2781              : static gboolean  (*_bd_fs_vfat_check_uuid) (const gchar *uuid, GError **error) = bd_fs_vfat_check_uuid_stub;
    2782              : 
    2783              : /**
    2784              :  * bd_fs_vfat_check_uuid:
    2785              :  * @uuid: UUID to check
    2786              :  * @error: (out) (optional): place to store error
    2787              :  *
    2788              :  * Returns: whether @uuid is a valid UUID for the vfat file system or not
    2789              :  *          (reason is provided in @error)
    2790              :  *
    2791              :  * Tech category: always available
    2792              :  */
    2793            7 : gboolean  bd_fs_vfat_check_uuid (const gchar *uuid, GError **error) {
    2794            7 :     return _bd_fs_vfat_check_uuid (uuid, error);
    2795              : }
    2796              : 
    2797              : 
    2798            0 : static BDFSVfatInfo* bd_fs_vfat_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    2799            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_vfat_get_info' called, but not implemented!");
    2800            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2801              :                 "The function 'bd_fs_vfat_get_info' called, but not implemented!");
    2802            0 :     return NULL;
    2803              : }
    2804              : 
    2805              : static BDFSVfatInfo* (*_bd_fs_vfat_get_info) (const gchar *device, GError **error) = bd_fs_vfat_get_info_stub;
    2806              : 
    2807              : /**
    2808              :  * bd_fs_vfat_get_info:
    2809              :  * @device: the device containing the file system to get info for
    2810              :  * @error: (out) (optional): place to store error (if any)
    2811              :  *
    2812              :  * Returns: (transfer full): information about the file system on @device or
    2813              :  *                           %NULL in case of error
    2814              :  *
    2815              :  * Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_QUERY
    2816              :  */
    2817           19 : BDFSVfatInfo* bd_fs_vfat_get_info (const gchar *device, GError **error) {
    2818           19 :     return _bd_fs_vfat_get_info (device, error);
    2819              : }
    2820              : 
    2821              : 
    2822            0 : static gboolean  bd_fs_vfat_resize_stub (const gchar *device G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, GError **error) {
    2823            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_vfat_resize' called, but not implemented!");
    2824            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2825              :                 "The function 'bd_fs_vfat_resize' called, but not implemented!");
    2826            0 :     return FALSE;
    2827              : }
    2828              : 
    2829              : static gboolean  (*_bd_fs_vfat_resize) (const gchar *device, guint64 new_size, GError **error) = bd_fs_vfat_resize_stub;
    2830              : 
    2831              : /**
    2832              :  * bd_fs_vfat_resize:
    2833              :  * @device: the device the file system of which to resize
    2834              :  * @new_size: new requested size for the file system (if 0, the file system is
    2835              :  *            adapted to the underlying block device)
    2836              :  * @error: (out) (optional): place to store error (if any)
    2837              :  *
    2838              :  * Returns: whether the file system on @device was successfully resized or not
    2839              :  *
    2840              :  * Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_RESIZE
    2841              :  */
    2842            6 : gboolean  bd_fs_vfat_resize (const gchar *device, guint64 new_size, GError **error) {
    2843            6 :     return _bd_fs_vfat_resize (device, new_size, error);
    2844              : }
    2845              : 
    2846              : 
    2847            0 : static gboolean  bd_fs_ntfs_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2848            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_mkfs' called, but not implemented!");
    2849            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2850              :                 "The function 'bd_fs_ntfs_mkfs' called, but not implemented!");
    2851            0 :     return FALSE;
    2852              : }
    2853              : 
    2854              : static gboolean  (*_bd_fs_ntfs_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_ntfs_mkfs_stub;
    2855              : 
    2856              : /**
    2857              :  * bd_fs_ntfs_mkfs:
    2858              :  * @device: the device to create a new ntfs fs on
    2859              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    2860              :  *                                                 passed to the 'mkntfs' utility)
    2861              :  * @error: (out) (optional): place to store error (if any)
    2862              :  *
    2863              :  * Returns: whether a new NTFS fs was successfully created on @device or not
    2864              :  *
    2865              :  * Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_MKFS
    2866              :  */
    2867           18 : gboolean  bd_fs_ntfs_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    2868           18 :     return _bd_fs_ntfs_mkfs (device, extra, error);
    2869              : }
    2870              : 
    2871              : 
    2872            0 : static gboolean  bd_fs_ntfs_check_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2873            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_check' called, but not implemented!");
    2874            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2875              :                 "The function 'bd_fs_ntfs_check' called, but not implemented!");
    2876            0 :     return FALSE;
    2877              : }
    2878              : 
    2879              : static gboolean  (*_bd_fs_ntfs_check) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_ntfs_check_stub;
    2880              : 
    2881              : /**
    2882              :  * bd_fs_ntfs_check:
    2883              :  * @device: the device containing the file system to check
    2884              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    2885              :  *                                               passed to the 'ntfsfix' utility)
    2886              :  * @error: (out) (optional): place to store error (if any)
    2887              :  *
    2888              :  * Returns: whether an ntfs file system on the @device is clean or not
    2889              :  *
    2890              :  * Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_CHECK
    2891              :  */
    2892            2 : gboolean  bd_fs_ntfs_check (const gchar *device, const BDExtraArg **extra, GError **error) {
    2893            2 :     return _bd_fs_ntfs_check (device, extra, error);
    2894              : }
    2895              : 
    2896              : 
    2897            0 : static gboolean  bd_fs_ntfs_repair_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    2898            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_repair' called, but not implemented!");
    2899            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2900              :                 "The function 'bd_fs_ntfs_repair' called, but not implemented!");
    2901            0 :     return FALSE;
    2902              : }
    2903              : 
    2904              : static gboolean  (*_bd_fs_ntfs_repair) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_ntfs_repair_stub;
    2905              : 
    2906              : /**
    2907              :  * bd_fs_ntfs_repair:
    2908              :  * @device: the device containing the file system to repair
    2909              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    2910              :  *                                               passed to the 'ntfsfix' utility)
    2911              :  * @error: (out) (optional): place to store error (if any)
    2912              :  *
    2913              :  * Returns: whether an NTFS file system on the @device was successfully repaired
    2914              :  *          (if needed) or not (error is set in that case)
    2915              :  *
    2916              :  * Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_REPAIR
    2917              :  */
    2918            9 : gboolean  bd_fs_ntfs_repair (const gchar *device, const BDExtraArg **extra, GError **error) {
    2919            9 :     return _bd_fs_ntfs_repair (device, extra, error);
    2920              : }
    2921              : 
    2922              : 
    2923            0 : static gboolean  bd_fs_ntfs_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    2924            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_set_label' called, but not implemented!");
    2925            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2926              :                 "The function 'bd_fs_ntfs_set_label' called, but not implemented!");
    2927            0 :     return FALSE;
    2928              : }
    2929              : 
    2930              : static gboolean  (*_bd_fs_ntfs_set_label) (const gchar *device, const gchar *label, GError **error) = bd_fs_ntfs_set_label_stub;
    2931              : 
    2932              : /**
    2933              :  * bd_fs_ntfs_set_label:
    2934              :  * @device: the device containing the file system to set the label for
    2935              :  * @label: label to set
    2936              :  * @error: (out) (optional): place to store error (if any)
    2937              :  *
    2938              :  * Returns: whether the label of the NTFS file system on the @device was
    2939              :  *          successfully set or not
    2940              :  *
    2941              :  * Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_SET_LABEL
    2942              :  */
    2943            5 : gboolean  bd_fs_ntfs_set_label (const gchar *device, const gchar *label, GError **error) {
    2944            5 :     return _bd_fs_ntfs_set_label (device, label, error);
    2945              : }
    2946              : 
    2947              : 
    2948            0 : static gboolean  bd_fs_ntfs_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    2949            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_check_label' called, but not implemented!");
    2950            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2951              :                 "The function 'bd_fs_ntfs_check_label' called, but not implemented!");
    2952            0 :     return FALSE;
    2953              : }
    2954              : 
    2955              : static gboolean  (*_bd_fs_ntfs_check_label) (const gchar *label, GError **error) = bd_fs_ntfs_check_label_stub;
    2956              : 
    2957              : /**
    2958              :  * bd_fs_ntfs_check_label:
    2959              :  * @label: label to check
    2960              :  * @error: (out) (optional): place to store error
    2961              :  *
    2962              :  * Returns: whether @label is a valid label for the ntfs file system or not
    2963              :  *          (reason is provided in @error)
    2964              :  *
    2965              :  * Tech category: always available
    2966              :  */
    2967            4 : gboolean  bd_fs_ntfs_check_label (const gchar *label, GError **error) {
    2968            4 :     return _bd_fs_ntfs_check_label (label, error);
    2969              : }
    2970              : 
    2971              : 
    2972            0 : static gboolean  bd_fs_ntfs_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2973            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_set_uuid' called, but not implemented!");
    2974            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    2975              :                 "The function 'bd_fs_ntfs_set_uuid' called, but not implemented!");
    2976            0 :     return FALSE;
    2977              : }
    2978              : 
    2979              : static gboolean  (*_bd_fs_ntfs_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_ntfs_set_uuid_stub;
    2980              : 
    2981              : /**
    2982              :  * bd_fs_ntfs_set_uuid:
    2983              :  * @device: the device containing the file system to set the UUID (serial number) for
    2984              :  * @uuid: (nullable): UUID to set or %NULL to generate a new one
    2985              :  * @error: (out) (optional): place to store error (if any)
    2986              :  *
    2987              :  * Returns: whether the UUID of the NTFS file system on the @device was
    2988              :  *          successfully set or not
    2989              :  *
    2990              :  * Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_SET_UUID
    2991              :  */
    2992            4 : gboolean  bd_fs_ntfs_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    2993            4 :     return _bd_fs_ntfs_set_uuid (device, uuid, error);
    2994              : }
    2995              : 
    2996              : 
    2997            0 : static gboolean  bd_fs_ntfs_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    2998            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_check_uuid' called, but not implemented!");
    2999            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3000              :                 "The function 'bd_fs_ntfs_check_uuid' called, but not implemented!");
    3001            0 :     return FALSE;
    3002              : }
    3003              : 
    3004              : static gboolean  (*_bd_fs_ntfs_check_uuid) (const gchar *uuid, GError **error) = bd_fs_ntfs_check_uuid_stub;
    3005              : 
    3006              : /**
    3007              :  * bd_fs_ntfs_check_uuid:
    3008              :  * @uuid: UUID to check
    3009              :  * @error: (out) (optional): place to store error
    3010              :  *
    3011              :  * Returns: whether @uuid is a valid UUID for the ntfs file system or not
    3012              :  *          (reason is provided in @error)
    3013              :  *
    3014              :  * Tech category: always available
    3015              :  */
    3016            4 : gboolean  bd_fs_ntfs_check_uuid (const gchar *uuid, GError **error) {
    3017            4 :     return _bd_fs_ntfs_check_uuid (uuid, error);
    3018              : }
    3019              : 
    3020              : 
    3021            0 : static gboolean  bd_fs_ntfs_resize_stub (const gchar *device G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, GError **error) {
    3022            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_resize' called, but not implemented!");
    3023            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3024              :                 "The function 'bd_fs_ntfs_resize' called, but not implemented!");
    3025            0 :     return FALSE;
    3026              : }
    3027              : 
    3028              : static gboolean  (*_bd_fs_ntfs_resize) (const gchar *device, guint64 new_size, GError **error) = bd_fs_ntfs_resize_stub;
    3029              : 
    3030              : /**
    3031              :  * bd_fs_ntfs_resize:
    3032              :  * @device: the device the file system of which to resize
    3033              :  * @new_size: new requested size for the file system in bytes (if 0, the file system
    3034              :  *            is adapted to the underlying block device)
    3035              :  * @error: (out) (optional): place to store error (if any)
    3036              :  *
    3037              :  * Returns: whether the file system on @device was successfully resized or not
    3038              :  *
    3039              :  * Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_RESIZE
    3040              :  */
    3041            5 : gboolean  bd_fs_ntfs_resize (const gchar *device, guint64 new_size, GError **error) {
    3042            5 :     return _bd_fs_ntfs_resize (device, new_size, error);
    3043              : }
    3044              : 
    3045              : 
    3046            0 : static BDFSNtfsInfo* bd_fs_ntfs_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    3047            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_get_info' called, but not implemented!");
    3048            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3049              :                 "The function 'bd_fs_ntfs_get_info' called, but not implemented!");
    3050            0 :     return NULL;
    3051              : }
    3052              : 
    3053              : static BDFSNtfsInfo* (*_bd_fs_ntfs_get_info) (const gchar *device, GError **error) = bd_fs_ntfs_get_info_stub;
    3054              : 
    3055              : /**
    3056              :  * bd_fs_ntfs_get_info:
    3057              :  * @device: the device containing the file system to get info for (device must
    3058              :             not be mounted, trying to get info for a mounted device will result
    3059              :             in an error)
    3060              :  * @error: (out) (optional): place to store error (if any)
    3061              :  *
    3062              :  * Returns: (transfer full): information about the file system on @device or
    3063              :  *                           %NULL in case of error
    3064              :  *
    3065              :  * Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_QUERY
    3066              :  */
    3067           17 : BDFSNtfsInfo* bd_fs_ntfs_get_info (const gchar *device, GError **error) {
    3068           17 :     return _bd_fs_ntfs_get_info (device, error);
    3069              : }
    3070              : 
    3071              : 
    3072            0 : static guint64  bd_fs_ntfs_get_min_size_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    3073            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_ntfs_get_min_size' called, but not implemented!");
    3074            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3075              :                 "The function 'bd_fs_ntfs_get_min_size' called, but not implemented!");
    3076            0 :     return 0;
    3077              : }
    3078              : 
    3079              : static guint64  (*_bd_fs_ntfs_get_min_size) (const gchar *device, GError **error) = bd_fs_ntfs_get_min_size_stub;
    3080              : 
    3081              : /**
    3082              :  * bd_fs_ntfs_get_min_size:
    3083              :  * @device: the device containing the file system to get min size for
    3084              :  * @error: (out) (optional): place to store error (if any)
    3085              :  *
    3086              :  * Returns: smallest shrunken filesystem size as reported by ntfsresize
    3087              :  *          in case of error 0 is returned and @error is set
    3088              :  *
    3089              :  * Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_RESIZE
    3090              :  */
    3091            2 : guint64  bd_fs_ntfs_get_min_size (const gchar *device, GError **error) {
    3092            2 :     return _bd_fs_ntfs_get_min_size (device, error);
    3093              : }
    3094              : 
    3095              : 
    3096            0 : static gboolean  bd_fs_f2fs_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3097            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_f2fs_mkfs' called, but not implemented!");
    3098            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3099              :                 "The function 'bd_fs_f2fs_mkfs' called, but not implemented!");
    3100            0 :     return FALSE;
    3101              : }
    3102              : 
    3103              : static gboolean  (*_bd_fs_f2fs_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_f2fs_mkfs_stub;
    3104              : 
    3105              : /**
    3106              :  * bd_fs_f2fs_mkfs:
    3107              :  * @device: the device to create a new f2fs fs on
    3108              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    3109              :  *                                                 passed to the 'mkfs.f2fs' utility)
    3110              :  * @error: (out) (optional): place to store error (if any)
    3111              :  *
    3112              :  * Returns: whether a new f2fs fs was successfully created on @device or not
    3113              :  *
    3114              :  * Tech category: %BD_FS_TECH_F2FS-%BD_FS_TECH_MODE_MKFS
    3115              :  */
    3116           18 : gboolean  bd_fs_f2fs_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    3117           18 :     return _bd_fs_f2fs_mkfs (device, extra, error);
    3118              : }
    3119              : 
    3120              : 
    3121            0 : static gboolean  bd_fs_f2fs_check_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3122            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_f2fs_check' called, but not implemented!");
    3123            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3124              :                 "The function 'bd_fs_f2fs_check' called, but not implemented!");
    3125            0 :     return FALSE;
    3126              : }
    3127              : 
    3128              : static gboolean  (*_bd_fs_f2fs_check) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_f2fs_check_stub;
    3129              : 
    3130              : /**
    3131              :  * bd_fs_f2fs_check:
    3132              :  * @device: the device containing the file system to check
    3133              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    3134              :  *                                                 passed to the 'fsck.f2fs' utility)
    3135              :  * @error: (out) (optional): place to store error (if any)
    3136              :  *
    3137              :  * Returns: whether an f2fs file system on the @device is clean or not
    3138              :  *
    3139              :  * Tech category: %BD_FS_TECH_F2FS-%BD_FS_TECH_MODE_CHECK
    3140              :  */
    3141            3 : gboolean  bd_fs_f2fs_check (const gchar *device, const BDExtraArg **extra, GError **error) {
    3142            3 :     return _bd_fs_f2fs_check (device, extra, error);
    3143              : }
    3144              : 
    3145              : 
    3146            0 : static gboolean  bd_fs_f2fs_repair_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3147            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_f2fs_repair' called, but not implemented!");
    3148            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3149              :                 "The function 'bd_fs_f2fs_repair' called, but not implemented!");
    3150            0 :     return FALSE;
    3151              : }
    3152              : 
    3153              : static gboolean  (*_bd_fs_f2fs_repair) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_f2fs_repair_stub;
    3154              : 
    3155              : /**
    3156              :  * bd_fs_f2fs_repair:
    3157              :  * @device: the device containing the file system to repair
    3158              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    3159              :  *                                                 passed to the 'fsck.f2fs' utility)
    3160              :  * @error: (out) (optional): place to store error (if any)
    3161              :  *
    3162              :  * Returns: whether an f2fs file system on the @device was successfully repaired
    3163              :  *          (if needed) or not (error is set in that case)
    3164              :  *
    3165              :  * Tech category: %BD_FS_TECH_F2FS-%BD_FS_TECH_MODE_REPAIR
    3166              :  */
    3167            3 : gboolean  bd_fs_f2fs_repair (const gchar *device, const BDExtraArg **extra, GError **error) {
    3168            3 :     return _bd_fs_f2fs_repair (device, extra, error);
    3169              : }
    3170              : 
    3171              : 
    3172            0 : static BDFSF2FSInfo* bd_fs_f2fs_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    3173            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_f2fs_get_info' called, but not implemented!");
    3174            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3175              :                 "The function 'bd_fs_f2fs_get_info' called, but not implemented!");
    3176            0 :     return NULL;
    3177              : }
    3178              : 
    3179              : static BDFSF2FSInfo* (*_bd_fs_f2fs_get_info) (const gchar *device, GError **error) = bd_fs_f2fs_get_info_stub;
    3180              : 
    3181              : /**
    3182              :  * bd_fs_f2fs_get_info:
    3183              :  * @device: the device containing the file system to get info for
    3184              :  * @error: (out) (optional): place to store error (if any)
    3185              :  *
    3186              :  * Returns: (transfer full): information about the file system on @device or
    3187              :  *                           %NULL in case of error
    3188              :  *
    3189              :  * Tech category: %BD_FS_TECH_F2FS-%BD_FS_TECH_MODE_QUERY
    3190              :  */
    3191            8 : BDFSF2FSInfo* bd_fs_f2fs_get_info (const gchar *device, GError **error) {
    3192            8 :     return _bd_fs_f2fs_get_info (device, error);
    3193              : }
    3194              : 
    3195              : 
    3196            0 : static gboolean  bd_fs_f2fs_resize_stub (const gchar *device G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, gboolean safe G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3197            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_f2fs_resize' called, but not implemented!");
    3198            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3199              :                 "The function 'bd_fs_f2fs_resize' called, but not implemented!");
    3200            0 :     return FALSE;
    3201              : }
    3202              : 
    3203              : static gboolean  (*_bd_fs_f2fs_resize) (const gchar *device, guint64 new_size, gboolean safe, const BDExtraArg **extra, GError **error) = bd_fs_f2fs_resize_stub;
    3204              : 
    3205              : /**
    3206              :  * bd_fs_f2fs_resize:
    3207              :  * @device: the device containing the file system to resize
    3208              :  * @new_size: new requested size for the file system *in file system sectors* (see bd_fs_f2fs_get_info())
    3209              :  *            (if 0, the file system is adapted to the underlying block device)
    3210              :  * @safe: whether to perform safe resize or not (does not resize metadata)
    3211              :  * @extra: (nullable) (array zero-terminated=1): extra options for the resize (right now
    3212              :  *                                                 passed to the 'resize.f2fs' utility)
    3213              :  * @error: (out) (optional): place to store error (if any)
    3214              :  *
    3215              :  * Returns: whether the file system on @device was successfully resized or not
    3216              :  *
    3217              :  * Tech category: %BD_FS_TECH_F2FS-%BD_FS_TECH_MODE_RESIZE
    3218              :  */
    3219            2 : gboolean  bd_fs_f2fs_resize (const gchar *device, guint64 new_size, gboolean safe, const BDExtraArg **extra, GError **error) {
    3220            2 :     return _bd_fs_f2fs_resize (device, new_size, safe, extra, error);
    3221              : }
    3222              : 
    3223              : 
    3224            0 : static gboolean  bd_fs_f2fs_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    3225            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_f2fs_check_label' called, but not implemented!");
    3226            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3227              :                 "The function 'bd_fs_f2fs_check_label' called, but not implemented!");
    3228            0 :     return FALSE;
    3229              : }
    3230              : 
    3231              : static gboolean  (*_bd_fs_f2fs_check_label) (const gchar *label, GError **error) = bd_fs_f2fs_check_label_stub;
    3232              : 
    3233              : /**
    3234              :  * bd_fs_f2fs_check_label:
    3235              :  * @label: label to check
    3236              :  * @error: (out) (optional): place to store error
    3237              :  *
    3238              :  * Returns: whether @label is a valid label for the f2fs file system or not
    3239              :  *          (reason is provided in @error)
    3240              :  *
    3241              :  * Tech category: always available
    3242              :  */
    3243            4 : gboolean  bd_fs_f2fs_check_label (const gchar *label, GError **error) {
    3244            4 :     return _bd_fs_f2fs_check_label (label, error);
    3245              : }
    3246              : 
    3247              : 
    3248            0 : static gboolean  bd_fs_nilfs2_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3249            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_nilfs2_mkfs' called, but not implemented!");
    3250            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3251              :                 "The function 'bd_fs_nilfs2_mkfs' called, but not implemented!");
    3252            0 :     return FALSE;
    3253              : }
    3254              : 
    3255              : static gboolean  (*_bd_fs_nilfs2_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_nilfs2_mkfs_stub;
    3256              : 
    3257              : /**
    3258              :  * bd_fs_nilfs2_mkfs:
    3259              :  * @device: the device to create a new nilfs fs on
    3260              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    3261              :  *                                                 passed to the 'mkfs.nilfs2' utility)
    3262              :  * @error: (out) (optional): place to store error (if any)
    3263              :  *
    3264              :  * Returns: whether a new nilfs fs was successfully created on @device or not
    3265              :  *
    3266              :  * Tech category: %BD_FS_TECH_NILFS2-%BD_FS_TECH_MODE_MKFS
    3267              :  */
    3268           22 : gboolean  bd_fs_nilfs2_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    3269           22 :     return _bd_fs_nilfs2_mkfs (device, extra, error);
    3270              : }
    3271              : 
    3272              : 
    3273            0 : static gboolean  bd_fs_nilfs2_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    3274            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_nilfs2_set_label' called, but not implemented!");
    3275            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3276              :                 "The function 'bd_fs_nilfs2_set_label' called, but not implemented!");
    3277            0 :     return FALSE;
    3278              : }
    3279              : 
    3280              : static gboolean  (*_bd_fs_nilfs2_set_label) (const gchar *device, const gchar *label, GError **error) = bd_fs_nilfs2_set_label_stub;
    3281              : 
    3282              : /**
    3283              :  * bd_fs_nilfs2_set_label:
    3284              :  * @device: the device containing the file system to set label for
    3285              :  * @label: label to set
    3286              :  * @error: (out) (optional): place to store error (if any)
    3287              :  *
    3288              :  * Returns: whether the label of nilfs file system on the @device was
    3289              :  *          successfully set or not
    3290              :  *
    3291              :  * Tech category: %BD_FS_TECH_NILFS2-%BD_FS_TECH_MODE_SET_LABEL
    3292              :  */
    3293            5 : gboolean  bd_fs_nilfs2_set_label (const gchar *device, const gchar *label, GError **error) {
    3294            5 :     return _bd_fs_nilfs2_set_label (device, label, error);
    3295              : }
    3296              : 
    3297              : 
    3298            0 : static gboolean  bd_fs_nilfs2_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    3299            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_nilfs2_check_label' called, but not implemented!");
    3300            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3301              :                 "The function 'bd_fs_nilfs2_check_label' called, but not implemented!");
    3302            0 :     return FALSE;
    3303              : }
    3304              : 
    3305              : static gboolean  (*_bd_fs_nilfs2_check_label) (const gchar *label, GError **error) = bd_fs_nilfs2_check_label_stub;
    3306              : 
    3307              : /**
    3308              :  * bd_fs_nilfs2_check_label:
    3309              :  * @label: label to check
    3310              :  * @error: (out) (optional): place to store error
    3311              :  *
    3312              :  * Returns: whether @label is a valid label for the nilfs2 file system or not
    3313              :  *          (reason is provided in @error)
    3314              :  *
    3315              :  * Tech category: always available
    3316              :  */
    3317            4 : gboolean  bd_fs_nilfs2_check_label (const gchar *label, GError **error) {
    3318            4 :     return _bd_fs_nilfs2_check_label (label, error);
    3319              : }
    3320              : 
    3321              : 
    3322            0 : static gboolean  bd_fs_nilfs2_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    3323            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_nilfs2_set_uuid' called, but not implemented!");
    3324            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3325              :                 "The function 'bd_fs_nilfs2_set_uuid' called, but not implemented!");
    3326            0 :     return FALSE;
    3327              : }
    3328              : 
    3329              : static gboolean  (*_bd_fs_nilfs2_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_nilfs2_set_uuid_stub;
    3330              : 
    3331              : /**
    3332              :  * bd_fs_nilfs2_set_uuid:
    3333              :  * @device: the device containing the file system to set UUID for
    3334              :  * @uuid: (nullable): UUID to set or %NULL to generate a new one
    3335              :  * @error: (out) (optional): place to store error (if any)
    3336              :  *
    3337              :  * Returns: whether the uuid of nilfs file system on the @device was
    3338              :  *          successfully set or not
    3339              :  *
    3340              :  * Tech category: %BD_FS_TECH_NILFS2-%BD_FS_TECH_MODE_SET_UUID
    3341              :  */
    3342            4 : gboolean  bd_fs_nilfs2_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    3343            4 :     return _bd_fs_nilfs2_set_uuid (device, uuid, error);
    3344              : }
    3345              : 
    3346              : 
    3347            0 : static gboolean  bd_fs_nilfs2_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    3348            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_nilfs2_check_uuid' called, but not implemented!");
    3349            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3350              :                 "The function 'bd_fs_nilfs2_check_uuid' called, but not implemented!");
    3351            0 :     return FALSE;
    3352              : }
    3353              : 
    3354              : static gboolean  (*_bd_fs_nilfs2_check_uuid) (const gchar *uuid, GError **error) = bd_fs_nilfs2_check_uuid_stub;
    3355              : 
    3356              : /**
    3357              :  * bd_fs_nilfs2_check_uuid:
    3358              :  * @uuid: UUID to check
    3359              :  * @error: (out) (optional): place to store error
    3360              :  *
    3361              :  * Returns: whether @uuid is a valid UUID for the nilfs file system or not
    3362              :  *          (reason is provided in @error)
    3363              :  *
    3364              :  * Tech category: always available
    3365              :  */
    3366            3 : gboolean  bd_fs_nilfs2_check_uuid (const gchar *uuid, GError **error) {
    3367            3 :     return _bd_fs_nilfs2_check_uuid (uuid, error);
    3368              : }
    3369              : 
    3370              : 
    3371            0 : static BDFSNILFS2Info* bd_fs_nilfs2_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    3372            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_nilfs2_get_info' called, but not implemented!");
    3373            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3374              :                 "The function 'bd_fs_nilfs2_get_info' called, but not implemented!");
    3375            0 :     return NULL;
    3376              : }
    3377              : 
    3378              : static BDFSNILFS2Info* (*_bd_fs_nilfs2_get_info) (const gchar *device, GError **error) = bd_fs_nilfs2_get_info_stub;
    3379              : 
    3380              : /**
    3381              :  * bd_fs_nilfs2_get_info:
    3382              :  * @device: the device containing the file system to get info for
    3383              :  * @error: (out) (optional): place to store error (if any)
    3384              :  *
    3385              :  * Returns: (transfer full): information about the file system on @device or
    3386              :  *                           %NULL in case of error
    3387              :  *
    3388              :  * Tech category: %BD_FS_TECH_NILFS2-%BD_FS_TECH_MODE_QUERY
    3389              :  */
    3390           17 : BDFSNILFS2Info* bd_fs_nilfs2_get_info (const gchar *device, GError **error) {
    3391           17 :     return _bd_fs_nilfs2_get_info (device, error);
    3392              : }
    3393              : 
    3394              : 
    3395            0 : static gboolean  bd_fs_nilfs2_resize_stub (const gchar *device G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, GError **error) {
    3396            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_nilfs2_resize' called, but not implemented!");
    3397            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3398              :                 "The function 'bd_fs_nilfs2_resize' called, but not implemented!");
    3399            0 :     return FALSE;
    3400              : }
    3401              : 
    3402              : static gboolean  (*_bd_fs_nilfs2_resize) (const gchar *device, guint64 new_size, GError **error) = bd_fs_nilfs2_resize_stub;
    3403              : 
    3404              : /**
    3405              :  * bd_fs_nilfs2_resize:
    3406              :  * @device: the device the file system of which to resize
    3407              :  * @new_size: new requested size for the file system (if 0, the file system is
    3408              :  *            adapted to the underlying block device)
    3409              :  * @error: (out) (optional): place to store error (if any)
    3410              :  *
    3411              :  * Returns: whether the file system on @device was successfully resized or not
    3412              :  *
    3413              :  * Tech category: %BD_FS_TECH_NILFS2-%BD_FS_TECH_MODE_RESIZE
    3414              :  */
    3415            7 : gboolean  bd_fs_nilfs2_resize (const gchar *device, guint64 new_size, GError **error) {
    3416            7 :     return _bd_fs_nilfs2_resize (device, new_size, error);
    3417              : }
    3418              : 
    3419              : 
    3420            0 : static gboolean  bd_fs_exfat_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3421            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_exfat_mkfs' called, but not implemented!");
    3422            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3423              :                 "The function 'bd_fs_exfat_mkfs' called, but not implemented!");
    3424            0 :     return FALSE;
    3425              : }
    3426              : 
    3427              : static gboolean  (*_bd_fs_exfat_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_exfat_mkfs_stub;
    3428              : 
    3429              : /**
    3430              :  * bd_fs_exfat_mkfs:
    3431              :  * @device: the device to create a new exfat fs on
    3432              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    3433              :  *                                                 passed to the 'mkexfatfs' utility)
    3434              :  * @error: (out) (optional): place to store error (if any)
    3435              :  *
    3436              :  * Returns: whether a new exfat fs was successfully created on @device or not
    3437              :  *
    3438              :  * Tech category: %BD_FS_TECH_EXFAT-%BD_FS_TECH_MODE_MKFS
    3439              :  */
    3440           14 : gboolean  bd_fs_exfat_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    3441           14 :     return _bd_fs_exfat_mkfs (device, extra, error);
    3442              : }
    3443              : 
    3444              : 
    3445            0 : static gboolean  bd_fs_exfat_check_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3446            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_exfat_check' called, but not implemented!");
    3447            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3448              :                 "The function 'bd_fs_exfat_check' called, but not implemented!");
    3449            0 :     return FALSE;
    3450              : }
    3451              : 
    3452              : static gboolean  (*_bd_fs_exfat_check) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_exfat_check_stub;
    3453              : 
    3454              : /**
    3455              :  * bd_fs_exfat_check:
    3456              :  * @device: the device containing the file system to check
    3457              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    3458              :  *                                                 passed to the 'exfatfsck' utility)
    3459              :  * @error: (out) (optional): place to store error (if any)
    3460              :  *
    3461              :  * Returns: whether the exfat file system on the @device is clean or not
    3462              :  *
    3463              :  * Tech category: %BD_FS_TECH_EXFAT-%BD_FS_TECH_MODE_CHECK
    3464              :  */
    3465            3 : gboolean  bd_fs_exfat_check (const gchar *device, const BDExtraArg **extra, GError **error) {
    3466            3 :     return _bd_fs_exfat_check (device, extra, error);
    3467              : }
    3468              : 
    3469              : 
    3470            0 : static gboolean  bd_fs_exfat_repair_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3471            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_exfat_repair' called, but not implemented!");
    3472            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3473              :                 "The function 'bd_fs_exfat_repair' called, but not implemented!");
    3474            0 :     return FALSE;
    3475              : }
    3476              : 
    3477              : static gboolean  (*_bd_fs_exfat_repair) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_exfat_repair_stub;
    3478              : 
    3479              : /**
    3480              :  * bd_fs_exfat_repair:
    3481              :  * @device: the device containing the file system to repair
    3482              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    3483              :  *                                                 passed to the 'exfatfsck' utility)
    3484              :  * @error: (out) (optional): place to store error (if any)
    3485              :  *
    3486              :  * Returns: whether the exfat file system on the @device was successfully repaired
    3487              :  *          (if needed) or not (error is set in that case)
    3488              :  *
    3489              :  * Tech category: %BD_FS_TECH_EXFAT-%BD_FS_TECH_MODE_REPAIR
    3490              :  */
    3491            3 : gboolean  bd_fs_exfat_repair (const gchar *device, const BDExtraArg **extra, GError **error) {
    3492            3 :     return _bd_fs_exfat_repair (device, extra, error);
    3493              : }
    3494              : 
    3495              : 
    3496            0 : static gboolean  bd_fs_exfat_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    3497            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_exfat_set_label' called, but not implemented!");
    3498            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3499              :                 "The function 'bd_fs_exfat_set_label' called, but not implemented!");
    3500            0 :     return FALSE;
    3501              : }
    3502              : 
    3503              : static gboolean  (*_bd_fs_exfat_set_label) (const gchar *device, const gchar *label, GError **error) = bd_fs_exfat_set_label_stub;
    3504              : 
    3505              : /**
    3506              :  * bd_fs_exfat_set_label:
    3507              :  * @device: the device containing the file system to set label for
    3508              :  * @label: label to set
    3509              :  * @error: (out) (optional): place to store error (if any)
    3510              :  *
    3511              :  * Returns: whether the label of exfat file system on the @device was
    3512              :  *          successfully set or not
    3513              :  *
    3514              :  * Tech category: %BD_FS_TECH_EXFAT-%BD_FS_TECH_MODE_SET_LABEL
    3515              :  */
    3516            5 : gboolean  bd_fs_exfat_set_label (const gchar *device, const gchar *label, GError **error) {
    3517            5 :     return _bd_fs_exfat_set_label (device, label, error);
    3518              : }
    3519              : 
    3520              : 
    3521            0 : static gboolean  bd_fs_exfat_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    3522            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_exfat_check_label' called, but not implemented!");
    3523            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3524              :                 "The function 'bd_fs_exfat_check_label' called, but not implemented!");
    3525            0 :     return FALSE;
    3526              : }
    3527              : 
    3528              : static gboolean  (*_bd_fs_exfat_check_label) (const gchar *label, GError **error) = bd_fs_exfat_check_label_stub;
    3529              : 
    3530              : /**
    3531              :  * bd_fs_exfat_check_label:
    3532              :  * @label: label to check
    3533              :  * @error: (out) (optional): place to store error
    3534              :  *
    3535              :  * Returns: whether @label is a valid label for the exfat file system or not
    3536              :  *          (reason is provided in @error)
    3537              :  *
    3538              :  * Tech category: always available
    3539              :  */
    3540            4 : gboolean  bd_fs_exfat_check_label (const gchar *label, GError **error) {
    3541            4 :     return _bd_fs_exfat_check_label (label, error);
    3542              : }
    3543              : 
    3544              : 
    3545            0 : static gboolean  bd_fs_exfat_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    3546            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_exfat_set_uuid' called, but not implemented!");
    3547            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3548              :                 "The function 'bd_fs_exfat_set_uuid' called, but not implemented!");
    3549            0 :     return FALSE;
    3550              : }
    3551              : 
    3552              : static gboolean  (*_bd_fs_exfat_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_exfat_set_uuid_stub;
    3553              : 
    3554              : /**
    3555              :  * bd_fs_exfat_set_uuid:
    3556              :  * @device: the device containing the file system to set uuid for
    3557              :  * @uuid: (nullable): volume ID to set or %NULL to generate a new one
    3558              :  * @error: (out) (optional): place to store error (if any)
    3559              :  *
    3560              :  * Returns: whether the volume ID of exFAT file system on the @device was
    3561              :  *          successfully set or not
    3562              :  *
    3563              :  * Tech category: %BD_FS_TECH_EXFAT-%BD_FS_TECH_MODE_SET_UUID
    3564              :  */
    3565            6 : gboolean  bd_fs_exfat_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    3566            6 :     return _bd_fs_exfat_set_uuid (device, uuid, error);
    3567              : }
    3568              : 
    3569              : 
    3570            0 : static gboolean  bd_fs_exfat_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    3571            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_exfat_check_uuid' called, but not implemented!");
    3572            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3573              :                 "The function 'bd_fs_exfat_check_uuid' called, but not implemented!");
    3574            0 :     return FALSE;
    3575              : }
    3576              : 
    3577              : static gboolean  (*_bd_fs_exfat_check_uuid) (const gchar *uuid, GError **error) = bd_fs_exfat_check_uuid_stub;
    3578              : 
    3579              : /**
    3580              :  * bd_fs_exfat_check_uuid:
    3581              :  * @uuid: UUID to check
    3582              :  * @error: (out) (optional): place to store error
    3583              :  *
    3584              :  * Returns: whether @uuid is a valid UUID for the exFAT file system or not
    3585              :  *          (reason is provided in @error)
    3586              :  *
    3587              :  * Tech category: always available
    3588              :  */
    3589            8 : gboolean  bd_fs_exfat_check_uuid (const gchar *uuid, GError **error) {
    3590            8 :     return _bd_fs_exfat_check_uuid (uuid, error);
    3591              : }
    3592              : 
    3593              : 
    3594            0 : static BDFSExfatInfo* bd_fs_exfat_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    3595            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_exfat_get_info' called, but not implemented!");
    3596            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3597              :                 "The function 'bd_fs_exfat_get_info' called, but not implemented!");
    3598            0 :     return NULL;
    3599              : }
    3600              : 
    3601              : static BDFSExfatInfo* (*_bd_fs_exfat_get_info) (const gchar *device, GError **error) = bd_fs_exfat_get_info_stub;
    3602              : 
    3603              : /**
    3604              :  * bd_fs_exfat_get_info:
    3605              :  * @device: the device containing the file system to get info for
    3606              :  * @error: (out) (optional): place to store error (if any)
    3607              :  *
    3608              :  * Returns: (transfer full): information about the file system on @device or
    3609              :  *                           %NULL in case of error
    3610              :  * Tech category: %BD_FS_TECH_EXFAT-%BD_FS_TECH_MODE_QUERY
    3611              :  */
    3612           11 : BDFSExfatInfo* bd_fs_exfat_get_info (const gchar *device, GError **error) {
    3613           11 :     return _bd_fs_exfat_get_info (device, error);
    3614              : }
    3615              : 
    3616              : 
    3617            0 : static gboolean  bd_fs_btrfs_mkfs_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3618            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_btrfs_mkfs' called, but not implemented!");
    3619            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3620              :                 "The function 'bd_fs_btrfs_mkfs' called, but not implemented!");
    3621            0 :     return FALSE;
    3622              : }
    3623              : 
    3624              : static gboolean  (*_bd_fs_btrfs_mkfs) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_btrfs_mkfs_stub;
    3625              : 
    3626              : /**
    3627              :  * bd_fs_btrfs_mkfs:
    3628              :  * @device: the device to create a new btrfs fs on
    3629              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    3630              :  *                                                 passed to the 'mkfs.btrfs' utility)
    3631              :  * @error: (out) (optional): place to store error (if any)
    3632              :  *
    3633              :  * Returns: whether a new btrfs fs was successfully created on @device or not
    3634              :  *
    3635              :  * Tech category: %BD_FS_TECH_BTRFS-%BD_FS_TECH_MODE_MKFS
    3636              :  *
    3637              :  */
    3638           22 : gboolean  bd_fs_btrfs_mkfs (const gchar *device, const BDExtraArg **extra, GError **error) {
    3639           22 :     return _bd_fs_btrfs_mkfs (device, extra, error);
    3640              : }
    3641              : 
    3642              : 
    3643            0 : static gboolean  bd_fs_btrfs_check_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3644            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_btrfs_check' called, but not implemented!");
    3645            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3646              :                 "The function 'bd_fs_btrfs_check' called, but not implemented!");
    3647            0 :     return FALSE;
    3648              : }
    3649              : 
    3650              : static gboolean  (*_bd_fs_btrfs_check) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_btrfs_check_stub;
    3651              : 
    3652              : /**
    3653              :  * bd_fs_btrfs_check:
    3654              :  * @device: the device containing the file system to check
    3655              :  * @extra: (nullable) (array zero-terminated=1): extra options for the check (right now
    3656              :  *                                                 passed to the 'btrfsck' utility)
    3657              :  * @error: (out) (optional): place to store error (if any)
    3658              :  *
    3659              :  * Returns: whether the filesystem was successfully checked or not
    3660              :  *
    3661              :  * Tech category: %BD_FS_TECH_BTRFS-%BD_FS_TECH_MODE_CHECK
    3662              :  */
    3663            3 : gboolean  bd_fs_btrfs_check (const gchar *device, const BDExtraArg **extra, GError **error) {
    3664            3 :     return _bd_fs_btrfs_check (device, extra, error);
    3665              : }
    3666              : 
    3667              : 
    3668            0 : static gboolean  bd_fs_btrfs_repair_stub (const gchar *device G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3669            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_btrfs_repair' called, but not implemented!");
    3670            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3671              :                 "The function 'bd_fs_btrfs_repair' called, but not implemented!");
    3672            0 :     return FALSE;
    3673              : }
    3674              : 
    3675              : static gboolean  (*_bd_fs_btrfs_repair) (const gchar *device, const BDExtraArg **extra, GError **error) = bd_fs_btrfs_repair_stub;
    3676              : 
    3677              : /**
    3678              :  * bd_fs_btrfs_repair:
    3679              :  * @device: the device containing the file system to repair
    3680              :  * @extra: (nullable) (array zero-terminated=1): extra options for the repair (right now
    3681              :  *                                                 passed to the 'btrfs' utility)
    3682              :  * @error: (out) (optional): place to store error (if any)
    3683              :  *
    3684              :  * Returns: whether the filesystem was successfully checked and repaired or not
    3685              :  *
    3686              :  * Tech category: %BD_FS_TECH_BTRFS-%BD_FS_TECH_MODE_REPAIR
    3687              :  */
    3688            3 : gboolean  bd_fs_btrfs_repair (const gchar *device, const BDExtraArg **extra, GError **error) {
    3689            3 :     return _bd_fs_btrfs_repair (device, extra, error);
    3690              : }
    3691              : 
    3692              : 
    3693            0 : static gboolean  bd_fs_btrfs_set_label_stub (const gchar *mpoint G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    3694            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_btrfs_set_label' called, but not implemented!");
    3695            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3696              :                 "The function 'bd_fs_btrfs_set_label' called, but not implemented!");
    3697            0 :     return FALSE;
    3698              : }
    3699              : 
    3700              : static gboolean  (*_bd_fs_btrfs_set_label) (const gchar *mpoint, const gchar *label, GError **error) = bd_fs_btrfs_set_label_stub;
    3701              : 
    3702              : /**
    3703              :  * bd_fs_btrfs_set_label:
    3704              :  * @mpoint: the mount point of the file system to set label for
    3705              :  * @label: label to set
    3706              :  * @error: (out) (optional): place to store error (if any)
    3707              :  *
    3708              :  * Returns: whether the label of Btrfs file system on the @mpoint was
    3709              :  *          successfully set or not
    3710              :  *
    3711              :  * Note: This function is intended to be used for btrfs filesystem on a single device,
    3712              :  *       for more complicated setups use the btrfs plugin instead.
    3713              :  *
    3714              :  * Tech category: %BD_FS_TECH_BTRFS-%BD_FS_TECH_MODE_SET_LABEL
    3715              :  */
    3716            5 : gboolean  bd_fs_btrfs_set_label (const gchar *mpoint, const gchar *label, GError **error) {
    3717            5 :     return _bd_fs_btrfs_set_label (mpoint, label, error);
    3718              : }
    3719              : 
    3720              : 
    3721            0 : static gboolean  bd_fs_btrfs_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    3722            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_btrfs_check_label' called, but not implemented!");
    3723            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3724              :                 "The function 'bd_fs_btrfs_check_label' called, but not implemented!");
    3725            0 :     return FALSE;
    3726              : }
    3727              : 
    3728              : static gboolean  (*_bd_fs_btrfs_check_label) (const gchar *label, GError **error) = bd_fs_btrfs_check_label_stub;
    3729              : 
    3730              : /**
    3731              :  * bd_fs_btrfs_check_label:
    3732              :  * @label: label to check
    3733              :  * @error: (out) (optional): place to store error
    3734              :  *
    3735              :  * Returns: whether @label is a valid label for the Btrfs file system or not
    3736              :  *          (reason is provided in @error)
    3737              :  *
    3738              :  * Note: This function is intended to be used for btrfs filesystem on a single device,
    3739              :  *       for more complicated setups use the btrfs plugin instead.
    3740              :  *
    3741              :  * Tech category: always available
    3742              :  */
    3743            5 : gboolean  bd_fs_btrfs_check_label (const gchar *label, GError **error) {
    3744            5 :     return _bd_fs_btrfs_check_label (label, error);
    3745              : }
    3746              : 
    3747              : 
    3748            0 : static gboolean  bd_fs_btrfs_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    3749            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_btrfs_set_uuid' called, but not implemented!");
    3750            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3751              :                 "The function 'bd_fs_btrfs_set_uuid' called, but not implemented!");
    3752            0 :     return FALSE;
    3753              : }
    3754              : 
    3755              : static gboolean  (*_bd_fs_btrfs_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_btrfs_set_uuid_stub;
    3756              : 
    3757              : /**
    3758              :  * bd_fs_btrfs_set_uuid:
    3759              :  * @device: the device containing the file system to set the UUID (serial number) for
    3760              :  * @uuid: (nullable): UUID to set or %NULL to generate a new one
    3761              :  * @error: (out) (optional): place to store error (if any)
    3762              :  *
    3763              :  * Returns: whether the UUID of the Btrfs file system on the @device was
    3764              :  *          successfully set or not
    3765              :  *
    3766              :  * Note: This function is intended to be used for btrfs filesystem on a single device,
    3767              :  *       for more complicated setups use the btrfs plugin instead.
    3768              :  *
    3769              :  * Tech category: %BD_FS_TECH_BTRFS-%BD_FS_TECH_MODE_SET_UUID
    3770              :  */
    3771            4 : gboolean  bd_fs_btrfs_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    3772            4 :     return _bd_fs_btrfs_set_uuid (device, uuid, error);
    3773              : }
    3774              : 
    3775              : 
    3776            0 : static gboolean  bd_fs_btrfs_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    3777            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_btrfs_check_uuid' called, but not implemented!");
    3778            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3779              :                 "The function 'bd_fs_btrfs_check_uuid' called, but not implemented!");
    3780            0 :     return FALSE;
    3781              : }
    3782              : 
    3783              : static gboolean  (*_bd_fs_btrfs_check_uuid) (const gchar *uuid, GError **error) = bd_fs_btrfs_check_uuid_stub;
    3784              : 
    3785              : /**
    3786              :  * bd_fs_btrfs_check_uuid:
    3787              :  * @uuid: UUID to check
    3788              :  * @error: (out) (optional): place to store error
    3789              :  *
    3790              :  * Returns: whether @uuid is a valid UUID for the Btrfs file system or not
    3791              :  *          (reason is provided in @error)
    3792              :  *
    3793              :  * Note: This function is intended to be used for btrfs filesystem on a single device,
    3794              :  *       for more complicated setups use the btrfs plugin instead.
    3795              :  *
    3796              :  * Tech category: always available
    3797              :  */
    3798            3 : gboolean  bd_fs_btrfs_check_uuid (const gchar *uuid, GError **error) {
    3799            3 :     return _bd_fs_btrfs_check_uuid (uuid, error);
    3800              : }
    3801              : 
    3802              : 
    3803            0 : static BDFSBtrfsInfo* bd_fs_btrfs_get_info_stub (const gchar *mpoint G_GNUC_UNUSED, GError **error) {
    3804            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_btrfs_get_info' called, but not implemented!");
    3805            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3806              :                 "The function 'bd_fs_btrfs_get_info' called, but not implemented!");
    3807            0 :     return NULL;
    3808              : }
    3809              : 
    3810              : static BDFSBtrfsInfo* (*_bd_fs_btrfs_get_info) (const gchar *mpoint, GError **error) = bd_fs_btrfs_get_info_stub;
    3811              : 
    3812              : /**
    3813              :  * bd_fs_btrfs_get_info:
    3814              :  * @mpoint: a mountpoint of the btrfs filesystem to get information about
    3815              :  * @error: (out) (optional): place to store error (if any)
    3816              :  *
    3817              :  * Returns: (transfer full): information about the file system on @device or
    3818              :  *                           %NULL in case of error
    3819              :  *
    3820              :  * Note: This function WON'T WORK for multi device btrfs filesystems,
    3821              :  *       for more complicated setups use the btrfs plugin instead.
    3822              :  *
    3823              :  * Tech category: %BD_FS_TECH_BTRFS-%BD_FS_TECH_MODE_QUERY
    3824              :  */
    3825           34 : BDFSBtrfsInfo* bd_fs_btrfs_get_info (const gchar *mpoint, GError **error) {
    3826           34 :     return _bd_fs_btrfs_get_info (mpoint, error);
    3827              : }
    3828              : 
    3829              : 
    3830            0 : static gboolean  bd_fs_btrfs_resize_stub (const gchar *mpoint G_GNUC_UNUSED, guint64 new_size G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3831            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_btrfs_resize' called, but not implemented!");
    3832            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3833              :                 "The function 'bd_fs_btrfs_resize' called, but not implemented!");
    3834            0 :     return FALSE;
    3835              : }
    3836              : 
    3837              : static gboolean  (*_bd_fs_btrfs_resize) (const gchar *mpoint, guint64 new_size, const BDExtraArg **extra, GError **error) = bd_fs_btrfs_resize_stub;
    3838              : 
    3839              : /**
    3840              :  * bd_fs_btrfs_resize:
    3841              :  * @mpoint: a mountpoint of the to be resized btrfs filesystem
    3842              :  * @new_size: requested new size
    3843              :  * @extra: (nullable) (array zero-terminated=1): extra options for the volume resize (right now
    3844              :  *                                                 passed to the 'btrfs' utility)
    3845              :  * @error: (out) (optional): place to store error (if any)
    3846              :  *
    3847              :  * Returns: whether the @mpoint filesystem was successfully resized to @new_size
    3848              :  * or not
    3849              :  *
    3850              :  * Note: This function WON'T WORK for multi device btrfs filesystems,
    3851              :  *       for more complicated setups use the btrfs plugin instead.
    3852              :  *
    3853              :  * Tech category: %BD_BTRFS_TECH_FS-%BD_BTRFS_TECH_MODE_MODIFY
    3854              :  */
    3855            9 : gboolean  bd_fs_btrfs_resize (const gchar *mpoint, guint64 new_size, const BDExtraArg **extra, GError **error) {
    3856            9 :     return _bd_fs_btrfs_resize (mpoint, new_size, extra, error);
    3857              : }
    3858              : 
    3859              : 
    3860            0 : static gboolean  bd_fs_udf_mkfs_stub (const gchar *device G_GNUC_UNUSED, const gchar *media_type G_GNUC_UNUSED, gchar *revision G_GNUC_UNUSED, guint64 block_size G_GNUC_UNUSED, const BDExtraArg **extra G_GNUC_UNUSED, GError **error) {
    3861            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_udf_mkfs' called, but not implemented!");
    3862            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3863              :                 "The function 'bd_fs_udf_mkfs' called, but not implemented!");
    3864            0 :     return FALSE;
    3865              : }
    3866              : 
    3867              : static gboolean  (*_bd_fs_udf_mkfs) (const gchar *device, const gchar *media_type, gchar *revision, guint64 block_size, const BDExtraArg **extra, GError **error) = bd_fs_udf_mkfs_stub;
    3868              : 
    3869              : /**
    3870              :  * bd_fs_udf_mkfs:
    3871              :  * @device: the device to create a new UDF fs on
    3872              :  * @media_type: (nullable): specify the media type or %NULL for default ('hd')
    3873              :  * @revision: (nullable): UDF revision to use or %NULL for default ('2.01')
    3874              :  * @block_size: block size in bytes or 0 for auto detection (device logical block size)
    3875              :  * @extra: (nullable) (array zero-terminated=1): extra options for the creation (right now
    3876              :  *                                                 passed to the 'mkudffs' utility)
    3877              :  * @error: (out) (optional): place to store error (if any)
    3878              :  *
    3879              :  * Returns: whether a new UDF fs was successfully created on @device or not
    3880              :  *
    3881              :  * Tech category: %BD_FS_TECH_UDF-%BD_FS_TECH_MODE_MKFS
    3882              :  */
    3883           12 : gboolean  bd_fs_udf_mkfs (const gchar *device, const gchar *media_type, gchar *revision, guint64 block_size, const BDExtraArg **extra, GError **error) {
    3884           12 :     return _bd_fs_udf_mkfs (device, media_type, revision, block_size, extra, error);
    3885              : }
    3886              : 
    3887              : 
    3888            0 : static gboolean  bd_fs_udf_set_label_stub (const gchar *device G_GNUC_UNUSED, const gchar *label G_GNUC_UNUSED, GError **error) {
    3889            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_udf_set_label' called, but not implemented!");
    3890            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3891              :                 "The function 'bd_fs_udf_set_label' called, but not implemented!");
    3892            0 :     return FALSE;
    3893              : }
    3894              : 
    3895              : static gboolean  (*_bd_fs_udf_set_label) (const gchar *device, const gchar *label, GError **error) = bd_fs_udf_set_label_stub;
    3896              : 
    3897              : /**
    3898              :  * bd_fs_udf_set_label:
    3899              :  * @device: the device containing the file system to set label for
    3900              :  * @label: label to set
    3901              :  * @error: (out) (optional): place to store error (if any)
    3902              :  *
    3903              :  * Note: This sets both Volume Identifier and Logical Volume Identifier. Volume Identifier
    3904              :  *       is truncated to 30 or 15 characters to accommodate to the different length limits
    3905              :  *       of these labels.
    3906              :  *
    3907              :  * Returns: whether the label of UDF file system on the @device was
    3908              :  *          successfully set or not
    3909              :  *
    3910              :  * Tech category: %BD_FS_TECH_UDF-%BD_FS_TECH_MODE_SET_LABEL
    3911              :  */
    3912            8 : gboolean  bd_fs_udf_set_label (const gchar *device, const gchar *label, GError **error) {
    3913            8 :     return _bd_fs_udf_set_label (device, label, error);
    3914              : }
    3915              : 
    3916              : 
    3917            0 : static gboolean  bd_fs_udf_check_label_stub (const gchar *label G_GNUC_UNUSED, GError **error) {
    3918            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_udf_check_label' called, but not implemented!");
    3919            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3920              :                 "The function 'bd_fs_udf_check_label' called, but not implemented!");
    3921            0 :     return FALSE;
    3922              : }
    3923              : 
    3924              : static gboolean  (*_bd_fs_udf_check_label) (const gchar *label, GError **error) = bd_fs_udf_check_label_stub;
    3925              : 
    3926              : /**
    3927              :  * bd_fs_udf_check_label:
    3928              :  * @label: label to check
    3929              :  * @error: (out) (optional): place to store error
    3930              :  *
    3931              :  * Note: This checks only whether @label adheres the length limits for Logical Volume Identifier,
    3932              :  *       not the stricter limits for Volume Identifier.
    3933              :  *
    3934              :  * Returns: whether @label is a valid label for the UDF file system or not
    3935              :  *          (reason is provided in @error)
    3936              :  *
    3937              :  * Tech category: always available
    3938              :  */
    3939           15 : gboolean  bd_fs_udf_check_label (const gchar *label, GError **error) {
    3940           15 :     return _bd_fs_udf_check_label (label, error);
    3941              : }
    3942              : 
    3943              : 
    3944            0 : static gboolean  bd_fs_udf_set_uuid_stub (const gchar *device G_GNUC_UNUSED, const gchar *uuid G_GNUC_UNUSED, GError **error) {
    3945            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_udf_set_uuid' called, but not implemented!");
    3946            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3947              :                 "The function 'bd_fs_udf_set_uuid' called, but not implemented!");
    3948            0 :     return FALSE;
    3949              : }
    3950              : 
    3951              : static gboolean  (*_bd_fs_udf_set_uuid) (const gchar *device, const gchar *uuid, GError **error) = bd_fs_udf_set_uuid_stub;
    3952              : 
    3953              : /**
    3954              :  * bd_fs_udf_set_uuid:
    3955              :  * @device: the device containing the file system to set the UUID (serial number) for
    3956              :  * @uuid: (nullable): UUID to set or %NULL to generate a new one
    3957              :  * @error: (out) (optional): place to store error (if any)
    3958              :  *
    3959              :  * Returns: whether the UUID of the UDF file system on the @device was
    3960              :  *          successfully set or not
    3961              :  *
    3962              :  * Tech category: %BD_FS_TECH_UDF-%BD_FS_TECH_MODE_SET_UUID
    3963              :  */
    3964            4 : gboolean  bd_fs_udf_set_uuid (const gchar *device, const gchar *uuid, GError **error) {
    3965            4 :     return _bd_fs_udf_set_uuid (device, uuid, error);
    3966              : }
    3967              : 
    3968              : 
    3969            0 : static gboolean  bd_fs_udf_check_uuid_stub (const gchar *uuid G_GNUC_UNUSED, GError **error) {
    3970            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_udf_check_uuid' called, but not implemented!");
    3971            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3972              :                 "The function 'bd_fs_udf_check_uuid' called, but not implemented!");
    3973            0 :     return FALSE;
    3974              : }
    3975              : 
    3976              : static gboolean  (*_bd_fs_udf_check_uuid) (const gchar *uuid, GError **error) = bd_fs_udf_check_uuid_stub;
    3977              : 
    3978              : /**
    3979              :  * bd_fs_udf_check_uuid:
    3980              :  * @uuid: UUID to check
    3981              :  * @error: (out) (optional): place to store error
    3982              :  *
    3983              :  * Returns: whether @uuid is a valid UUID for the UDF file system or not
    3984              :  *          (reason is provided in @error)
    3985              :  *
    3986              :  * Tech category: always available
    3987              :  */
    3988            5 : gboolean  bd_fs_udf_check_uuid (const gchar *uuid, GError **error) {
    3989            5 :     return _bd_fs_udf_check_uuid (uuid, error);
    3990              : }
    3991              : 
    3992              : 
    3993            0 : static BDFSUdfInfo* bd_fs_udf_get_info_stub (const gchar *device G_GNUC_UNUSED, GError **error) {
    3994            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_udf_get_info' called, but not implemented!");
    3995            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    3996              :                 "The function 'bd_fs_udf_get_info' called, but not implemented!");
    3997            0 :     return NULL;
    3998              : }
    3999              : 
    4000              : static BDFSUdfInfo* (*_bd_fs_udf_get_info) (const gchar *device, GError **error) = bd_fs_udf_get_info_stub;
    4001              : 
    4002              : /**
    4003              :  * bd_fs_udf_get_info:
    4004              :  * @device: the device containing the file system to get info for
    4005              :  * @error: (out) (optional): place to store error (if any)
    4006              :  *
    4007              :  * Returns: (transfer full): information about the file system on @device or
    4008              :  *                           %NULL in case of error
    4009              :  *
    4010              :  * Tech category: %BD_FS_TECH_UDF-%BD_FS_TECH_MODE_QUERY
    4011              :  */
    4012           14 : BDFSUdfInfo* bd_fs_udf_get_info (const gchar *device, GError **error) {
    4013           14 :     return _bd_fs_udf_get_info (device, error);
    4014              : }
    4015              : 
    4016              : 
    4017            0 : static const BDFSFeatures* bd_fs_features_stub (const gchar *fstype G_GNUC_UNUSED, GError **error) {
    4018            0 :     bd_utils_log_format (BD_UTILS_LOG_CRIT, "The function 'bd_fs_features' called, but not implemented!");
    4019            0 :     g_set_error (error, BD_INIT_ERROR, BD_INIT_ERROR_NOT_IMPLEMENTED,
    4020              :                 "The function 'bd_fs_features' called, but not implemented!");
    4021            0 :     return NULL;
    4022              : }
    4023              : 
    4024              : static const BDFSFeatures* (*_bd_fs_features) (const gchar *fstype, GError **error) = bd_fs_features_stub;
    4025              : 
    4026              : /**
    4027              :  * bd_fs_features:
    4028              :  * @fstype: name of the filesystem to get features for (e.g. "ext4")
    4029              :  * @error: (allow-none): (out): place to store error (if any)
    4030              :  *
    4031              :  * Returns (transfer-none): features supported by @fstype, see %BDFSFeatures for more information.
    4032              :  *
    4033              :  * Tech category: always available
    4034              :  *
    4035              :  */
    4036           11 : const BDFSFeatures* bd_fs_features (const gchar *fstype, GError **error) {
    4037           11 :     return _bd_fs_features (fstype, error);
    4038              : }
    4039              : 
    4040              : 
    4041          102 : static gpointer load_fs_from_plugin(const gchar *so_name) {
    4042          102 :     void *handle = NULL;
    4043          102 :     char *error = NULL;
    4044          102 :     gboolean (*init_fn) (void) = NULL;
    4045              : 
    4046          102 :     handle = dlopen(so_name, RTLD_LAZY);
    4047          102 :     if (!handle) {
    4048            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load module fs: %s", dlerror());
    4049            0 :         return NULL;
    4050              :     }
    4051              : 
    4052          102 :     dlerror();
    4053          102 :     * (void**) (&init_fn) = dlsym(handle, "bd_fs_init");
    4054          102 :     if ((error = dlerror()) != NULL)
    4055            0 :         bd_utils_log_format (BD_UTILS_LOG_DEBUG, "failed to load the init() function for fs: %s", error);
    4056              :     /* coverity[dead_error_condition] */
    4057          102 :     if (init_fn && !init_fn()) {
    4058            0 :         dlclose(handle);
    4059            0 :         return NULL;
    4060              :     }
    4061          102 :     init_fn = NULL;
    4062              : 
    4063          102 :     dlerror();
    4064          102 :     * (void**) (&_bd_fs_is_tech_avail) = dlsym(handle, "bd_fs_is_tech_avail");
    4065          102 :     if ((error = dlerror()) != NULL)
    4066            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_is_tech_avail: %s", error);
    4067              : 
    4068          102 :     dlerror();
    4069          102 :     * (void**) (&_bd_fs_supported_filesystems) = dlsym(handle, "bd_fs_supported_filesystems");
    4070          102 :     if ((error = dlerror()) != NULL)
    4071            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_supported_filesystems: %s", error);
    4072              : 
    4073          102 :     dlerror();
    4074          102 :     * (void**) (&_bd_fs_wipe) = dlsym(handle, "bd_fs_wipe");
    4075          102 :     if ((error = dlerror()) != NULL)
    4076            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_wipe: %s", error);
    4077              : 
    4078          102 :     dlerror();
    4079          102 :     * (void**) (&_bd_fs_clean) = dlsym(handle, "bd_fs_clean");
    4080          102 :     if ((error = dlerror()) != NULL)
    4081            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_clean: %s", error);
    4082              : 
    4083          102 :     dlerror();
    4084          102 :     * (void**) (&_bd_fs_get_fstype) = dlsym(handle, "bd_fs_get_fstype");
    4085          102 :     if ((error = dlerror()) != NULL)
    4086            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_get_fstype: %s", error);
    4087              : 
    4088          102 :     dlerror();
    4089          102 :     * (void**) (&_bd_fs_freeze) = dlsym(handle, "bd_fs_freeze");
    4090          102 :     if ((error = dlerror()) != NULL)
    4091            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_freeze: %s", error);
    4092              : 
    4093          102 :     dlerror();
    4094          102 :     * (void**) (&_bd_fs_unfreeze) = dlsym(handle, "bd_fs_unfreeze");
    4095          102 :     if ((error = dlerror()) != NULL)
    4096            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_unfreeze: %s", error);
    4097              : 
    4098          102 :     dlerror();
    4099          102 :     * (void**) (&_bd_fs_unmount) = dlsym(handle, "bd_fs_unmount");
    4100          102 :     if ((error = dlerror()) != NULL)
    4101            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_unmount: %s", error);
    4102              : 
    4103          102 :     dlerror();
    4104          102 :     * (void**) (&_bd_fs_mount) = dlsym(handle, "bd_fs_mount");
    4105          102 :     if ((error = dlerror()) != NULL)
    4106            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_mount: %s", error);
    4107              : 
    4108          102 :     dlerror();
    4109          102 :     * (void**) (&_bd_fs_get_mountpoint) = dlsym(handle, "bd_fs_get_mountpoint");
    4110          102 :     if ((error = dlerror()) != NULL)
    4111            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_get_mountpoint: %s", error);
    4112              : 
    4113          102 :     dlerror();
    4114          102 :     * (void**) (&_bd_fs_is_mountpoint) = dlsym(handle, "bd_fs_is_mountpoint");
    4115          102 :     if ((error = dlerror()) != NULL)
    4116            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_is_mountpoint: %s", error);
    4117              : 
    4118          102 :     dlerror();
    4119          102 :     * (void**) (&_bd_fs_resize) = dlsym(handle, "bd_fs_resize");
    4120          102 :     if ((error = dlerror()) != NULL)
    4121            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_resize: %s", error);
    4122              : 
    4123          102 :     dlerror();
    4124          102 :     * (void**) (&_bd_fs_repair) = dlsym(handle, "bd_fs_repair");
    4125          102 :     if ((error = dlerror()) != NULL)
    4126            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_repair: %s", error);
    4127              : 
    4128          102 :     dlerror();
    4129          102 :     * (void**) (&_bd_fs_check) = dlsym(handle, "bd_fs_check");
    4130          102 :     if ((error = dlerror()) != NULL)
    4131            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_check: %s", error);
    4132              : 
    4133          102 :     dlerror();
    4134          102 :     * (void**) (&_bd_fs_check_label) = dlsym(handle, "bd_fs_check_label");
    4135          102 :     if ((error = dlerror()) != NULL)
    4136            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_check_label: %s", error);
    4137              : 
    4138          102 :     dlerror();
    4139          102 :     * (void**) (&_bd_fs_set_label) = dlsym(handle, "bd_fs_set_label");
    4140          102 :     if ((error = dlerror()) != NULL)
    4141            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_set_label: %s", error);
    4142              : 
    4143          102 :     dlerror();
    4144          102 :     * (void**) (&_bd_fs_check_uuid) = dlsym(handle, "bd_fs_check_uuid");
    4145          102 :     if ((error = dlerror()) != NULL)
    4146            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_check_uuid: %s", error);
    4147              : 
    4148          102 :     dlerror();
    4149          102 :     * (void**) (&_bd_fs_set_uuid) = dlsym(handle, "bd_fs_set_uuid");
    4150          102 :     if ((error = dlerror()) != NULL)
    4151            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_set_uuid: %s", error);
    4152              : 
    4153          102 :     dlerror();
    4154          102 :     * (void**) (&_bd_fs_xfs_check_uuid) = dlsym(handle, "bd_fs_xfs_check_uuid");
    4155          102 :     if ((error = dlerror()) != NULL)
    4156            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_xfs_check_uuid: %s", error);
    4157              : 
    4158          102 :     dlerror();
    4159          102 :     * (void**) (&_bd_fs_get_size) = dlsym(handle, "bd_fs_get_size");
    4160          102 :     if ((error = dlerror()) != NULL)
    4161            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_get_size: %s", error);
    4162              : 
    4163          102 :     dlerror();
    4164          102 :     * (void**) (&_bd_fs_get_free_space) = dlsym(handle, "bd_fs_get_free_space");
    4165          102 :     if ((error = dlerror()) != NULL)
    4166            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_get_free_space: %s", error);
    4167              : 
    4168          102 :     dlerror();
    4169          102 :     * (void**) (&_bd_fs_get_min_size) = dlsym(handle, "bd_fs_get_min_size");
    4170          102 :     if ((error = dlerror()) != NULL)
    4171            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_get_min_size: %s", error);
    4172              : 
    4173          102 :     dlerror();
    4174          102 :     * (void**) (&_bd_fs_can_get_info) = dlsym(handle, "bd_fs_can_get_info");
    4175          102 :     if ((error = dlerror()) != NULL)
    4176            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_get_info: %s", error);
    4177              : 
    4178          102 :     dlerror();
    4179          102 :     * (void**) (&_bd_fs_can_mkfs) = dlsym(handle, "bd_fs_can_mkfs");
    4180          102 :     if ((error = dlerror()) != NULL)
    4181            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_mkfs: %s", error);
    4182              : 
    4183          102 :     dlerror();
    4184          102 :     * (void**) (&_bd_fs_can_resize) = dlsym(handle, "bd_fs_can_resize");
    4185          102 :     if ((error = dlerror()) != NULL)
    4186            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_resize: %s", error);
    4187              : 
    4188          102 :     dlerror();
    4189          102 :     * (void**) (&_bd_fs_can_check) = dlsym(handle, "bd_fs_can_check");
    4190          102 :     if ((error = dlerror()) != NULL)
    4191            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_check: %s", error);
    4192              : 
    4193          102 :     dlerror();
    4194          102 :     * (void**) (&_bd_fs_can_repair) = dlsym(handle, "bd_fs_can_repair");
    4195          102 :     if ((error = dlerror()) != NULL)
    4196            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_repair: %s", error);
    4197              : 
    4198          102 :     dlerror();
    4199          102 :     * (void**) (&_bd_fs_can_set_label) = dlsym(handle, "bd_fs_can_set_label");
    4200          102 :     if ((error = dlerror()) != NULL)
    4201            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_set_label: %s", error);
    4202              : 
    4203          102 :     dlerror();
    4204          102 :     * (void**) (&_bd_fs_can_set_uuid) = dlsym(handle, "bd_fs_can_set_uuid");
    4205          102 :     if ((error = dlerror()) != NULL)
    4206            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_set_uuid: %s", error);
    4207              : 
    4208          102 :     dlerror();
    4209          102 :     * (void**) (&_bd_fs_can_get_size) = dlsym(handle, "bd_fs_can_get_size");
    4210          102 :     if ((error = dlerror()) != NULL)
    4211            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_get_size: %s", error);
    4212              : 
    4213          102 :     dlerror();
    4214          102 :     * (void**) (&_bd_fs_can_get_free_space) = dlsym(handle, "bd_fs_can_get_free_space");
    4215          102 :     if ((error = dlerror()) != NULL)
    4216            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_get_free_space: %s", error);
    4217              : 
    4218          102 :     dlerror();
    4219          102 :     * (void**) (&_bd_fs_can_get_min_size) = dlsym(handle, "bd_fs_can_get_min_size");
    4220          102 :     if ((error = dlerror()) != NULL)
    4221            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_can_get_min_size: %s", error);
    4222              : 
    4223          102 :     dlerror();
    4224          102 :     * (void**) (&_bd_fs_mkfs) = dlsym(handle, "bd_fs_mkfs");
    4225          102 :     if ((error = dlerror()) != NULL)
    4226            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_mkfs: %s", error);
    4227              : 
    4228          102 :     dlerror();
    4229          102 :     * (void**) (&_bd_fs_ext2_mkfs) = dlsym(handle, "bd_fs_ext2_mkfs");
    4230          102 :     if ((error = dlerror()) != NULL)
    4231            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_mkfs: %s", error);
    4232              : 
    4233          102 :     dlerror();
    4234          102 :     * (void**) (&_bd_fs_ext3_mkfs) = dlsym(handle, "bd_fs_ext3_mkfs");
    4235          102 :     if ((error = dlerror()) != NULL)
    4236            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_mkfs: %s", error);
    4237              : 
    4238          102 :     dlerror();
    4239          102 :     * (void**) (&_bd_fs_ext4_mkfs) = dlsym(handle, "bd_fs_ext4_mkfs");
    4240          102 :     if ((error = dlerror()) != NULL)
    4241            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_mkfs: %s", error);
    4242              : 
    4243          102 :     dlerror();
    4244          102 :     * (void**) (&_bd_fs_ext2_check) = dlsym(handle, "bd_fs_ext2_check");
    4245          102 :     if ((error = dlerror()) != NULL)
    4246            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_check: %s", error);
    4247              : 
    4248          102 :     dlerror();
    4249          102 :     * (void**) (&_bd_fs_ext3_check) = dlsym(handle, "bd_fs_ext3_check");
    4250          102 :     if ((error = dlerror()) != NULL)
    4251            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_check: %s", error);
    4252              : 
    4253          102 :     dlerror();
    4254          102 :     * (void**) (&_bd_fs_ext4_check) = dlsym(handle, "bd_fs_ext4_check");
    4255          102 :     if ((error = dlerror()) != NULL)
    4256            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_check: %s", error);
    4257              : 
    4258          102 :     dlerror();
    4259          102 :     * (void**) (&_bd_fs_ext2_repair) = dlsym(handle, "bd_fs_ext2_repair");
    4260          102 :     if ((error = dlerror()) != NULL)
    4261            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_repair: %s", error);
    4262              : 
    4263          102 :     dlerror();
    4264          102 :     * (void**) (&_bd_fs_ext3_repair) = dlsym(handle, "bd_fs_ext3_repair");
    4265          102 :     if ((error = dlerror()) != NULL)
    4266            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_repair: %s", error);
    4267              : 
    4268          102 :     dlerror();
    4269          102 :     * (void**) (&_bd_fs_ext4_repair) = dlsym(handle, "bd_fs_ext4_repair");
    4270          102 :     if ((error = dlerror()) != NULL)
    4271            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_repair: %s", error);
    4272              : 
    4273          102 :     dlerror();
    4274          102 :     * (void**) (&_bd_fs_ext2_set_label) = dlsym(handle, "bd_fs_ext2_set_label");
    4275          102 :     if ((error = dlerror()) != NULL)
    4276            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_set_label: %s", error);
    4277              : 
    4278          102 :     dlerror();
    4279          102 :     * (void**) (&_bd_fs_ext3_set_label) = dlsym(handle, "bd_fs_ext3_set_label");
    4280          102 :     if ((error = dlerror()) != NULL)
    4281            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_set_label: %s", error);
    4282              : 
    4283          102 :     dlerror();
    4284          102 :     * (void**) (&_bd_fs_ext4_set_label) = dlsym(handle, "bd_fs_ext4_set_label");
    4285          102 :     if ((error = dlerror()) != NULL)
    4286            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_set_label: %s", error);
    4287              : 
    4288          102 :     dlerror();
    4289          102 :     * (void**) (&_bd_fs_ext2_check_label) = dlsym(handle, "bd_fs_ext2_check_label");
    4290          102 :     if ((error = dlerror()) != NULL)
    4291            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_check_label: %s", error);
    4292              : 
    4293          102 :     dlerror();
    4294          102 :     * (void**) (&_bd_fs_ext3_check_label) = dlsym(handle, "bd_fs_ext3_check_label");
    4295          102 :     if ((error = dlerror()) != NULL)
    4296            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_check_label: %s", error);
    4297              : 
    4298          102 :     dlerror();
    4299          102 :     * (void**) (&_bd_fs_ext4_check_label) = dlsym(handle, "bd_fs_ext4_check_label");
    4300          102 :     if ((error = dlerror()) != NULL)
    4301            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_check_label: %s", error);
    4302              : 
    4303          102 :     dlerror();
    4304          102 :     * (void**) (&_bd_fs_ext2_set_uuid) = dlsym(handle, "bd_fs_ext2_set_uuid");
    4305          102 :     if ((error = dlerror()) != NULL)
    4306            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_set_uuid: %s", error);
    4307              : 
    4308          102 :     dlerror();
    4309          102 :     * (void**) (&_bd_fs_ext3_set_uuid) = dlsym(handle, "bd_fs_ext3_set_uuid");
    4310          102 :     if ((error = dlerror()) != NULL)
    4311            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_set_uuid: %s", error);
    4312              : 
    4313          102 :     dlerror();
    4314          102 :     * (void**) (&_bd_fs_ext4_set_uuid) = dlsym(handle, "bd_fs_ext4_set_uuid");
    4315          102 :     if ((error = dlerror()) != NULL)
    4316            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_set_uuid: %s", error);
    4317              : 
    4318          102 :     dlerror();
    4319          102 :     * (void**) (&_bd_fs_ext2_check_uuid) = dlsym(handle, "bd_fs_ext2_check_uuid");
    4320          102 :     if ((error = dlerror()) != NULL)
    4321            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_check_uuid: %s", error);
    4322              : 
    4323          102 :     dlerror();
    4324          102 :     * (void**) (&_bd_fs_ext3_check_uuid) = dlsym(handle, "bd_fs_ext3_check_uuid");
    4325          102 :     if ((error = dlerror()) != NULL)
    4326            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_check_uuid: %s", error);
    4327              : 
    4328          102 :     dlerror();
    4329          102 :     * (void**) (&_bd_fs_ext4_check_uuid) = dlsym(handle, "bd_fs_ext4_check_uuid");
    4330          102 :     if ((error = dlerror()) != NULL)
    4331            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_check_uuid: %s", error);
    4332              : 
    4333          102 :     dlerror();
    4334          102 :     * (void**) (&_bd_fs_ext2_get_info) = dlsym(handle, "bd_fs_ext2_get_info");
    4335          102 :     if ((error = dlerror()) != NULL)
    4336            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_get_info: %s", error);
    4337              : 
    4338          102 :     dlerror();
    4339          102 :     * (void**) (&_bd_fs_ext3_get_info) = dlsym(handle, "bd_fs_ext3_get_info");
    4340          102 :     if ((error = dlerror()) != NULL)
    4341            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_get_info: %s", error);
    4342              : 
    4343          102 :     dlerror();
    4344          102 :     * (void**) (&_bd_fs_ext4_get_info) = dlsym(handle, "bd_fs_ext4_get_info");
    4345          102 :     if ((error = dlerror()) != NULL)
    4346            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_get_info: %s", error);
    4347              : 
    4348          102 :     dlerror();
    4349          102 :     * (void**) (&_bd_fs_ext2_resize) = dlsym(handle, "bd_fs_ext2_resize");
    4350          102 :     if ((error = dlerror()) != NULL)
    4351            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_resize: %s", error);
    4352              : 
    4353          102 :     dlerror();
    4354          102 :     * (void**) (&_bd_fs_ext3_resize) = dlsym(handle, "bd_fs_ext3_resize");
    4355          102 :     if ((error = dlerror()) != NULL)
    4356            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_resize: %s", error);
    4357              : 
    4358          102 :     dlerror();
    4359          102 :     * (void**) (&_bd_fs_ext4_resize) = dlsym(handle, "bd_fs_ext4_resize");
    4360          102 :     if ((error = dlerror()) != NULL)
    4361            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_resize: %s", error);
    4362              : 
    4363          102 :     dlerror();
    4364          102 :     * (void**) (&_bd_fs_ext2_get_min_size) = dlsym(handle, "bd_fs_ext2_get_min_size");
    4365          102 :     if ((error = dlerror()) != NULL)
    4366            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext2_get_min_size: %s", error);
    4367              : 
    4368          102 :     dlerror();
    4369          102 :     * (void**) (&_bd_fs_ext3_get_min_size) = dlsym(handle, "bd_fs_ext3_get_min_size");
    4370          102 :     if ((error = dlerror()) != NULL)
    4371            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext3_get_min_size: %s", error);
    4372              : 
    4373          102 :     dlerror();
    4374          102 :     * (void**) (&_bd_fs_ext4_get_min_size) = dlsym(handle, "bd_fs_ext4_get_min_size");
    4375          102 :     if ((error = dlerror()) != NULL)
    4376            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ext4_get_min_size: %s", error);
    4377              : 
    4378          102 :     dlerror();
    4379          102 :     * (void**) (&_bd_fs_xfs_mkfs) = dlsym(handle, "bd_fs_xfs_mkfs");
    4380          102 :     if ((error = dlerror()) != NULL)
    4381            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_xfs_mkfs: %s", error);
    4382              : 
    4383          102 :     dlerror();
    4384          102 :     * (void**) (&_bd_fs_xfs_check) = dlsym(handle, "bd_fs_xfs_check");
    4385          102 :     if ((error = dlerror()) != NULL)
    4386            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_xfs_check: %s", error);
    4387              : 
    4388          102 :     dlerror();
    4389          102 :     * (void**) (&_bd_fs_xfs_repair) = dlsym(handle, "bd_fs_xfs_repair");
    4390          102 :     if ((error = dlerror()) != NULL)
    4391            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_xfs_repair: %s", error);
    4392              : 
    4393          102 :     dlerror();
    4394          102 :     * (void**) (&_bd_fs_xfs_set_label) = dlsym(handle, "bd_fs_xfs_set_label");
    4395          102 :     if ((error = dlerror()) != NULL)
    4396            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_xfs_set_label: %s", error);
    4397              : 
    4398          102 :     dlerror();
    4399          102 :     * (void**) (&_bd_fs_xfs_check_label) = dlsym(handle, "bd_fs_xfs_check_label");
    4400          102 :     if ((error = dlerror()) != NULL)
    4401            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_xfs_check_label: %s", error);
    4402              : 
    4403          102 :     dlerror();
    4404          102 :     * (void**) (&_bd_fs_xfs_set_uuid) = dlsym(handle, "bd_fs_xfs_set_uuid");
    4405          102 :     if ((error = dlerror()) != NULL)
    4406            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_xfs_set_uuid: %s", error);
    4407              : 
    4408          102 :     dlerror();
    4409          102 :     * (void**) (&_bd_fs_xfs_get_info) = dlsym(handle, "bd_fs_xfs_get_info");
    4410          102 :     if ((error = dlerror()) != NULL)
    4411            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_xfs_get_info: %s", error);
    4412              : 
    4413          102 :     dlerror();
    4414          102 :     * (void**) (&_bd_fs_xfs_resize) = dlsym(handle, "bd_fs_xfs_resize");
    4415          102 :     if ((error = dlerror()) != NULL)
    4416            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_xfs_resize: %s", error);
    4417              : 
    4418          102 :     dlerror();
    4419          102 :     * (void**) (&_bd_fs_vfat_mkfs) = dlsym(handle, "bd_fs_vfat_mkfs");
    4420          102 :     if ((error = dlerror()) != NULL)
    4421            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_vfat_mkfs: %s", error);
    4422              : 
    4423          102 :     dlerror();
    4424          102 :     * (void**) (&_bd_fs_vfat_check) = dlsym(handle, "bd_fs_vfat_check");
    4425          102 :     if ((error = dlerror()) != NULL)
    4426            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_vfat_check: %s", error);
    4427              : 
    4428          102 :     dlerror();
    4429          102 :     * (void**) (&_bd_fs_vfat_repair) = dlsym(handle, "bd_fs_vfat_repair");
    4430          102 :     if ((error = dlerror()) != NULL)
    4431            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_vfat_repair: %s", error);
    4432              : 
    4433          102 :     dlerror();
    4434          102 :     * (void**) (&_bd_fs_vfat_set_label) = dlsym(handle, "bd_fs_vfat_set_label");
    4435          102 :     if ((error = dlerror()) != NULL)
    4436            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_vfat_set_label: %s", error);
    4437              : 
    4438          102 :     dlerror();
    4439          102 :     * (void**) (&_bd_fs_vfat_check_label) = dlsym(handle, "bd_fs_vfat_check_label");
    4440          102 :     if ((error = dlerror()) != NULL)
    4441            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_vfat_check_label: %s", error);
    4442              : 
    4443          102 :     dlerror();
    4444          102 :     * (void**) (&_bd_fs_vfat_set_uuid) = dlsym(handle, "bd_fs_vfat_set_uuid");
    4445          102 :     if ((error = dlerror()) != NULL)
    4446            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_vfat_set_uuid: %s", error);
    4447              : 
    4448          102 :     dlerror();
    4449          102 :     * (void**) (&_bd_fs_vfat_check_uuid) = dlsym(handle, "bd_fs_vfat_check_uuid");
    4450          102 :     if ((error = dlerror()) != NULL)
    4451            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_vfat_check_uuid: %s", error);
    4452              : 
    4453          102 :     dlerror();
    4454          102 :     * (void**) (&_bd_fs_vfat_get_info) = dlsym(handle, "bd_fs_vfat_get_info");
    4455          102 :     if ((error = dlerror()) != NULL)
    4456            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_vfat_get_info: %s", error);
    4457              : 
    4458          102 :     dlerror();
    4459          102 :     * (void**) (&_bd_fs_vfat_resize) = dlsym(handle, "bd_fs_vfat_resize");
    4460          102 :     if ((error = dlerror()) != NULL)
    4461            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_vfat_resize: %s", error);
    4462              : 
    4463          102 :     dlerror();
    4464          102 :     * (void**) (&_bd_fs_ntfs_mkfs) = dlsym(handle, "bd_fs_ntfs_mkfs");
    4465          102 :     if ((error = dlerror()) != NULL)
    4466            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_mkfs: %s", error);
    4467              : 
    4468          102 :     dlerror();
    4469          102 :     * (void**) (&_bd_fs_ntfs_check) = dlsym(handle, "bd_fs_ntfs_check");
    4470          102 :     if ((error = dlerror()) != NULL)
    4471            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_check: %s", error);
    4472              : 
    4473          102 :     dlerror();
    4474          102 :     * (void**) (&_bd_fs_ntfs_repair) = dlsym(handle, "bd_fs_ntfs_repair");
    4475          102 :     if ((error = dlerror()) != NULL)
    4476            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_repair: %s", error);
    4477              : 
    4478          102 :     dlerror();
    4479          102 :     * (void**) (&_bd_fs_ntfs_set_label) = dlsym(handle, "bd_fs_ntfs_set_label");
    4480          102 :     if ((error = dlerror()) != NULL)
    4481            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_set_label: %s", error);
    4482              : 
    4483          102 :     dlerror();
    4484          102 :     * (void**) (&_bd_fs_ntfs_check_label) = dlsym(handle, "bd_fs_ntfs_check_label");
    4485          102 :     if ((error = dlerror()) != NULL)
    4486            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_check_label: %s", error);
    4487              : 
    4488          102 :     dlerror();
    4489          102 :     * (void**) (&_bd_fs_ntfs_set_uuid) = dlsym(handle, "bd_fs_ntfs_set_uuid");
    4490          102 :     if ((error = dlerror()) != NULL)
    4491            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_set_uuid: %s", error);
    4492              : 
    4493          102 :     dlerror();
    4494          102 :     * (void**) (&_bd_fs_ntfs_check_uuid) = dlsym(handle, "bd_fs_ntfs_check_uuid");
    4495          102 :     if ((error = dlerror()) != NULL)
    4496            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_check_uuid: %s", error);
    4497              : 
    4498          102 :     dlerror();
    4499          102 :     * (void**) (&_bd_fs_ntfs_resize) = dlsym(handle, "bd_fs_ntfs_resize");
    4500          102 :     if ((error = dlerror()) != NULL)
    4501            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_resize: %s", error);
    4502              : 
    4503          102 :     dlerror();
    4504          102 :     * (void**) (&_bd_fs_ntfs_get_info) = dlsym(handle, "bd_fs_ntfs_get_info");
    4505          102 :     if ((error = dlerror()) != NULL)
    4506            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_get_info: %s", error);
    4507              : 
    4508          102 :     dlerror();
    4509          102 :     * (void**) (&_bd_fs_ntfs_get_min_size) = dlsym(handle, "bd_fs_ntfs_get_min_size");
    4510          102 :     if ((error = dlerror()) != NULL)
    4511            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_ntfs_get_min_size: %s", error);
    4512              : 
    4513          102 :     dlerror();
    4514          102 :     * (void**) (&_bd_fs_f2fs_mkfs) = dlsym(handle, "bd_fs_f2fs_mkfs");
    4515          102 :     if ((error = dlerror()) != NULL)
    4516            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_f2fs_mkfs: %s", error);
    4517              : 
    4518          102 :     dlerror();
    4519          102 :     * (void**) (&_bd_fs_f2fs_check) = dlsym(handle, "bd_fs_f2fs_check");
    4520          102 :     if ((error = dlerror()) != NULL)
    4521            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_f2fs_check: %s", error);
    4522              : 
    4523          102 :     dlerror();
    4524          102 :     * (void**) (&_bd_fs_f2fs_repair) = dlsym(handle, "bd_fs_f2fs_repair");
    4525          102 :     if ((error = dlerror()) != NULL)
    4526            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_f2fs_repair: %s", error);
    4527              : 
    4528          102 :     dlerror();
    4529          102 :     * (void**) (&_bd_fs_f2fs_get_info) = dlsym(handle, "bd_fs_f2fs_get_info");
    4530          102 :     if ((error = dlerror()) != NULL)
    4531            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_f2fs_get_info: %s", error);
    4532              : 
    4533          102 :     dlerror();
    4534          102 :     * (void**) (&_bd_fs_f2fs_resize) = dlsym(handle, "bd_fs_f2fs_resize");
    4535          102 :     if ((error = dlerror()) != NULL)
    4536            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_f2fs_resize: %s", error);
    4537              : 
    4538          102 :     dlerror();
    4539          102 :     * (void**) (&_bd_fs_f2fs_check_label) = dlsym(handle, "bd_fs_f2fs_check_label");
    4540          102 :     if ((error = dlerror()) != NULL)
    4541            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_f2fs_check_label: %s", error);
    4542              : 
    4543          102 :     dlerror();
    4544          102 :     * (void**) (&_bd_fs_nilfs2_mkfs) = dlsym(handle, "bd_fs_nilfs2_mkfs");
    4545          102 :     if ((error = dlerror()) != NULL)
    4546            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_nilfs2_mkfs: %s", error);
    4547              : 
    4548          102 :     dlerror();
    4549          102 :     * (void**) (&_bd_fs_nilfs2_set_label) = dlsym(handle, "bd_fs_nilfs2_set_label");
    4550          102 :     if ((error = dlerror()) != NULL)
    4551            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_nilfs2_set_label: %s", error);
    4552              : 
    4553          102 :     dlerror();
    4554          102 :     * (void**) (&_bd_fs_nilfs2_check_label) = dlsym(handle, "bd_fs_nilfs2_check_label");
    4555          102 :     if ((error = dlerror()) != NULL)
    4556            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_nilfs2_check_label: %s", error);
    4557              : 
    4558          102 :     dlerror();
    4559          102 :     * (void**) (&_bd_fs_nilfs2_set_uuid) = dlsym(handle, "bd_fs_nilfs2_set_uuid");
    4560          102 :     if ((error = dlerror()) != NULL)
    4561            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_nilfs2_set_uuid: %s", error);
    4562              : 
    4563          102 :     dlerror();
    4564          102 :     * (void**) (&_bd_fs_nilfs2_check_uuid) = dlsym(handle, "bd_fs_nilfs2_check_uuid");
    4565          102 :     if ((error = dlerror()) != NULL)
    4566            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_nilfs2_check_uuid: %s", error);
    4567              : 
    4568          102 :     dlerror();
    4569          102 :     * (void**) (&_bd_fs_nilfs2_get_info) = dlsym(handle, "bd_fs_nilfs2_get_info");
    4570          102 :     if ((error = dlerror()) != NULL)
    4571            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_nilfs2_get_info: %s", error);
    4572              : 
    4573          102 :     dlerror();
    4574          102 :     * (void**) (&_bd_fs_nilfs2_resize) = dlsym(handle, "bd_fs_nilfs2_resize");
    4575          102 :     if ((error = dlerror()) != NULL)
    4576            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_nilfs2_resize: %s", error);
    4577              : 
    4578          102 :     dlerror();
    4579          102 :     * (void**) (&_bd_fs_exfat_mkfs) = dlsym(handle, "bd_fs_exfat_mkfs");
    4580          102 :     if ((error = dlerror()) != NULL)
    4581            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_exfat_mkfs: %s", error);
    4582              : 
    4583          102 :     dlerror();
    4584          102 :     * (void**) (&_bd_fs_exfat_check) = dlsym(handle, "bd_fs_exfat_check");
    4585          102 :     if ((error = dlerror()) != NULL)
    4586            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_exfat_check: %s", error);
    4587              : 
    4588          102 :     dlerror();
    4589          102 :     * (void**) (&_bd_fs_exfat_repair) = dlsym(handle, "bd_fs_exfat_repair");
    4590          102 :     if ((error = dlerror()) != NULL)
    4591            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_exfat_repair: %s", error);
    4592              : 
    4593          102 :     dlerror();
    4594          102 :     * (void**) (&_bd_fs_exfat_set_label) = dlsym(handle, "bd_fs_exfat_set_label");
    4595          102 :     if ((error = dlerror()) != NULL)
    4596            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_exfat_set_label: %s", error);
    4597              : 
    4598          102 :     dlerror();
    4599          102 :     * (void**) (&_bd_fs_exfat_check_label) = dlsym(handle, "bd_fs_exfat_check_label");
    4600          102 :     if ((error = dlerror()) != NULL)
    4601            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_exfat_check_label: %s", error);
    4602              : 
    4603          102 :     dlerror();
    4604          102 :     * (void**) (&_bd_fs_exfat_set_uuid) = dlsym(handle, "bd_fs_exfat_set_uuid");
    4605          102 :     if ((error = dlerror()) != NULL)
    4606            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_exfat_set_uuid: %s", error);
    4607              : 
    4608          102 :     dlerror();
    4609          102 :     * (void**) (&_bd_fs_exfat_check_uuid) = dlsym(handle, "bd_fs_exfat_check_uuid");
    4610          102 :     if ((error = dlerror()) != NULL)
    4611            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_exfat_check_uuid: %s", error);
    4612              : 
    4613          102 :     dlerror();
    4614          102 :     * (void**) (&_bd_fs_exfat_get_info) = dlsym(handle, "bd_fs_exfat_get_info");
    4615          102 :     if ((error = dlerror()) != NULL)
    4616            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_exfat_get_info: %s", error);
    4617              : 
    4618          102 :     dlerror();
    4619          102 :     * (void**) (&_bd_fs_btrfs_mkfs) = dlsym(handle, "bd_fs_btrfs_mkfs");
    4620          102 :     if ((error = dlerror()) != NULL)
    4621            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_btrfs_mkfs: %s", error);
    4622              : 
    4623          102 :     dlerror();
    4624          102 :     * (void**) (&_bd_fs_btrfs_check) = dlsym(handle, "bd_fs_btrfs_check");
    4625          102 :     if ((error = dlerror()) != NULL)
    4626            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_btrfs_check: %s", error);
    4627              : 
    4628          102 :     dlerror();
    4629          102 :     * (void**) (&_bd_fs_btrfs_repair) = dlsym(handle, "bd_fs_btrfs_repair");
    4630          102 :     if ((error = dlerror()) != NULL)
    4631            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_btrfs_repair: %s", error);
    4632              : 
    4633          102 :     dlerror();
    4634          102 :     * (void**) (&_bd_fs_btrfs_set_label) = dlsym(handle, "bd_fs_btrfs_set_label");
    4635          102 :     if ((error = dlerror()) != NULL)
    4636            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_btrfs_set_label: %s", error);
    4637              : 
    4638          102 :     dlerror();
    4639          102 :     * (void**) (&_bd_fs_btrfs_check_label) = dlsym(handle, "bd_fs_btrfs_check_label");
    4640          102 :     if ((error = dlerror()) != NULL)
    4641            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_btrfs_check_label: %s", error);
    4642              : 
    4643          102 :     dlerror();
    4644          102 :     * (void**) (&_bd_fs_btrfs_set_uuid) = dlsym(handle, "bd_fs_btrfs_set_uuid");
    4645          102 :     if ((error = dlerror()) != NULL)
    4646            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_btrfs_set_uuid: %s", error);
    4647              : 
    4648          102 :     dlerror();
    4649          102 :     * (void**) (&_bd_fs_btrfs_check_uuid) = dlsym(handle, "bd_fs_btrfs_check_uuid");
    4650          102 :     if ((error = dlerror()) != NULL)
    4651            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_btrfs_check_uuid: %s", error);
    4652              : 
    4653          102 :     dlerror();
    4654          102 :     * (void**) (&_bd_fs_btrfs_get_info) = dlsym(handle, "bd_fs_btrfs_get_info");
    4655          102 :     if ((error = dlerror()) != NULL)
    4656            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_btrfs_get_info: %s", error);
    4657              : 
    4658          102 :     dlerror();
    4659          102 :     * (void**) (&_bd_fs_btrfs_resize) = dlsym(handle, "bd_fs_btrfs_resize");
    4660          102 :     if ((error = dlerror()) != NULL)
    4661            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_btrfs_resize: %s", error);
    4662              : 
    4663          102 :     dlerror();
    4664          102 :     * (void**) (&_bd_fs_udf_mkfs) = dlsym(handle, "bd_fs_udf_mkfs");
    4665          102 :     if ((error = dlerror()) != NULL)
    4666            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_udf_mkfs: %s", error);
    4667              : 
    4668          102 :     dlerror();
    4669          102 :     * (void**) (&_bd_fs_udf_set_label) = dlsym(handle, "bd_fs_udf_set_label");
    4670          102 :     if ((error = dlerror()) != NULL)
    4671            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_udf_set_label: %s", error);
    4672              : 
    4673          102 :     dlerror();
    4674          102 :     * (void**) (&_bd_fs_udf_check_label) = dlsym(handle, "bd_fs_udf_check_label");
    4675          102 :     if ((error = dlerror()) != NULL)
    4676            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_udf_check_label: %s", error);
    4677              : 
    4678          102 :     dlerror();
    4679          102 :     * (void**) (&_bd_fs_udf_set_uuid) = dlsym(handle, "bd_fs_udf_set_uuid");
    4680          102 :     if ((error = dlerror()) != NULL)
    4681            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_udf_set_uuid: %s", error);
    4682              : 
    4683          102 :     dlerror();
    4684          102 :     * (void**) (&_bd_fs_udf_check_uuid) = dlsym(handle, "bd_fs_udf_check_uuid");
    4685          102 :     if ((error = dlerror()) != NULL)
    4686            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_udf_check_uuid: %s", error);
    4687              : 
    4688          102 :     dlerror();
    4689          102 :     * (void**) (&_bd_fs_udf_get_info) = dlsym(handle, "bd_fs_udf_get_info");
    4690          102 :     if ((error = dlerror()) != NULL)
    4691            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_udf_get_info: %s", error);
    4692              : 
    4693          102 :     dlerror();
    4694          102 :     * (void**) (&_bd_fs_features) = dlsym(handle, "bd_fs_features");
    4695          102 :     if ((error = dlerror()) != NULL)
    4696            0 :         bd_utils_log_format (BD_UTILS_LOG_WARNING, "failed to load bd_fs_features: %s", error);
    4697              : 
    4698          102 :     return handle;
    4699              : }
    4700              : 
    4701          102 : static gboolean unload_fs (gpointer handle) {
    4702          102 :     char *error = NULL;
    4703          102 :     gboolean (*close_fn) (void) = NULL;
    4704              : 
    4705          102 :     _bd_fs_is_tech_avail = bd_fs_is_tech_avail_stub;
    4706          102 :     _bd_fs_supported_filesystems = bd_fs_supported_filesystems_stub;
    4707          102 :     _bd_fs_wipe = bd_fs_wipe_stub;
    4708          102 :     _bd_fs_clean = bd_fs_clean_stub;
    4709          102 :     _bd_fs_get_fstype = bd_fs_get_fstype_stub;
    4710          102 :     _bd_fs_freeze = bd_fs_freeze_stub;
    4711          102 :     _bd_fs_unfreeze = bd_fs_unfreeze_stub;
    4712          102 :     _bd_fs_unmount = bd_fs_unmount_stub;
    4713          102 :     _bd_fs_mount = bd_fs_mount_stub;
    4714          102 :     _bd_fs_get_mountpoint = bd_fs_get_mountpoint_stub;
    4715          102 :     _bd_fs_is_mountpoint = bd_fs_is_mountpoint_stub;
    4716          102 :     _bd_fs_resize = bd_fs_resize_stub;
    4717          102 :     _bd_fs_repair = bd_fs_repair_stub;
    4718          102 :     _bd_fs_check = bd_fs_check_stub;
    4719          102 :     _bd_fs_check_label = bd_fs_check_label_stub;
    4720          102 :     _bd_fs_set_label = bd_fs_set_label_stub;
    4721          102 :     _bd_fs_check_uuid = bd_fs_check_uuid_stub;
    4722          102 :     _bd_fs_set_uuid = bd_fs_set_uuid_stub;
    4723          102 :     _bd_fs_xfs_check_uuid = bd_fs_xfs_check_uuid_stub;
    4724          102 :     _bd_fs_get_size = bd_fs_get_size_stub;
    4725          102 :     _bd_fs_get_free_space = bd_fs_get_free_space_stub;
    4726          102 :     _bd_fs_get_min_size = bd_fs_get_min_size_stub;
    4727          102 :     _bd_fs_can_get_info = bd_fs_can_get_info_stub;
    4728          102 :     _bd_fs_can_mkfs = bd_fs_can_mkfs_stub;
    4729          102 :     _bd_fs_can_resize = bd_fs_can_resize_stub;
    4730          102 :     _bd_fs_can_check = bd_fs_can_check_stub;
    4731          102 :     _bd_fs_can_repair = bd_fs_can_repair_stub;
    4732          102 :     _bd_fs_can_set_label = bd_fs_can_set_label_stub;
    4733          102 :     _bd_fs_can_set_uuid = bd_fs_can_set_uuid_stub;
    4734          102 :     _bd_fs_can_get_size = bd_fs_can_get_size_stub;
    4735          102 :     _bd_fs_can_get_free_space = bd_fs_can_get_free_space_stub;
    4736          102 :     _bd_fs_can_get_min_size = bd_fs_can_get_min_size_stub;
    4737          102 :     _bd_fs_mkfs = bd_fs_mkfs_stub;
    4738          102 :     _bd_fs_ext2_mkfs = bd_fs_ext2_mkfs_stub;
    4739          102 :     _bd_fs_ext3_mkfs = bd_fs_ext3_mkfs_stub;
    4740          102 :     _bd_fs_ext4_mkfs = bd_fs_ext4_mkfs_stub;
    4741          102 :     _bd_fs_ext2_check = bd_fs_ext2_check_stub;
    4742          102 :     _bd_fs_ext3_check = bd_fs_ext3_check_stub;
    4743          102 :     _bd_fs_ext4_check = bd_fs_ext4_check_stub;
    4744          102 :     _bd_fs_ext2_repair = bd_fs_ext2_repair_stub;
    4745          102 :     _bd_fs_ext3_repair = bd_fs_ext3_repair_stub;
    4746          102 :     _bd_fs_ext4_repair = bd_fs_ext4_repair_stub;
    4747          102 :     _bd_fs_ext2_set_label = bd_fs_ext2_set_label_stub;
    4748          102 :     _bd_fs_ext3_set_label = bd_fs_ext3_set_label_stub;
    4749          102 :     _bd_fs_ext4_set_label = bd_fs_ext4_set_label_stub;
    4750          102 :     _bd_fs_ext2_check_label = bd_fs_ext2_check_label_stub;
    4751          102 :     _bd_fs_ext3_check_label = bd_fs_ext3_check_label_stub;
    4752          102 :     _bd_fs_ext4_check_label = bd_fs_ext4_check_label_stub;
    4753          102 :     _bd_fs_ext2_set_uuid = bd_fs_ext2_set_uuid_stub;
    4754          102 :     _bd_fs_ext3_set_uuid = bd_fs_ext3_set_uuid_stub;
    4755          102 :     _bd_fs_ext4_set_uuid = bd_fs_ext4_set_uuid_stub;
    4756          102 :     _bd_fs_ext2_check_uuid = bd_fs_ext2_check_uuid_stub;
    4757          102 :     _bd_fs_ext3_check_uuid = bd_fs_ext3_check_uuid_stub;
    4758          102 :     _bd_fs_ext4_check_uuid = bd_fs_ext4_check_uuid_stub;
    4759          102 :     _bd_fs_ext2_get_info = bd_fs_ext2_get_info_stub;
    4760          102 :     _bd_fs_ext3_get_info = bd_fs_ext3_get_info_stub;
    4761          102 :     _bd_fs_ext4_get_info = bd_fs_ext4_get_info_stub;
    4762          102 :     _bd_fs_ext2_resize = bd_fs_ext2_resize_stub;
    4763          102 :     _bd_fs_ext3_resize = bd_fs_ext3_resize_stub;
    4764          102 :     _bd_fs_ext4_resize = bd_fs_ext4_resize_stub;
    4765          102 :     _bd_fs_ext2_get_min_size = bd_fs_ext2_get_min_size_stub;
    4766          102 :     _bd_fs_ext3_get_min_size = bd_fs_ext3_get_min_size_stub;
    4767          102 :     _bd_fs_ext4_get_min_size = bd_fs_ext4_get_min_size_stub;
    4768          102 :     _bd_fs_xfs_mkfs = bd_fs_xfs_mkfs_stub;
    4769          102 :     _bd_fs_xfs_check = bd_fs_xfs_check_stub;
    4770          102 :     _bd_fs_xfs_repair = bd_fs_xfs_repair_stub;
    4771          102 :     _bd_fs_xfs_set_label = bd_fs_xfs_set_label_stub;
    4772          102 :     _bd_fs_xfs_check_label = bd_fs_xfs_check_label_stub;
    4773          102 :     _bd_fs_xfs_set_uuid = bd_fs_xfs_set_uuid_stub;
    4774          102 :     _bd_fs_xfs_get_info = bd_fs_xfs_get_info_stub;
    4775          102 :     _bd_fs_xfs_resize = bd_fs_xfs_resize_stub;
    4776          102 :     _bd_fs_vfat_mkfs = bd_fs_vfat_mkfs_stub;
    4777          102 :     _bd_fs_vfat_check = bd_fs_vfat_check_stub;
    4778          102 :     _bd_fs_vfat_repair = bd_fs_vfat_repair_stub;
    4779          102 :     _bd_fs_vfat_set_label = bd_fs_vfat_set_label_stub;
    4780          102 :     _bd_fs_vfat_check_label = bd_fs_vfat_check_label_stub;
    4781          102 :     _bd_fs_vfat_set_uuid = bd_fs_vfat_set_uuid_stub;
    4782          102 :     _bd_fs_vfat_check_uuid = bd_fs_vfat_check_uuid_stub;
    4783          102 :     _bd_fs_vfat_get_info = bd_fs_vfat_get_info_stub;
    4784          102 :     _bd_fs_vfat_resize = bd_fs_vfat_resize_stub;
    4785          102 :     _bd_fs_ntfs_mkfs = bd_fs_ntfs_mkfs_stub;
    4786          102 :     _bd_fs_ntfs_check = bd_fs_ntfs_check_stub;
    4787          102 :     _bd_fs_ntfs_repair = bd_fs_ntfs_repair_stub;
    4788          102 :     _bd_fs_ntfs_set_label = bd_fs_ntfs_set_label_stub;
    4789          102 :     _bd_fs_ntfs_check_label = bd_fs_ntfs_check_label_stub;
    4790          102 :     _bd_fs_ntfs_set_uuid = bd_fs_ntfs_set_uuid_stub;
    4791          102 :     _bd_fs_ntfs_check_uuid = bd_fs_ntfs_check_uuid_stub;
    4792          102 :     _bd_fs_ntfs_resize = bd_fs_ntfs_resize_stub;
    4793          102 :     _bd_fs_ntfs_get_info = bd_fs_ntfs_get_info_stub;
    4794          102 :     _bd_fs_ntfs_get_min_size = bd_fs_ntfs_get_min_size_stub;
    4795          102 :     _bd_fs_f2fs_mkfs = bd_fs_f2fs_mkfs_stub;
    4796          102 :     _bd_fs_f2fs_check = bd_fs_f2fs_check_stub;
    4797          102 :     _bd_fs_f2fs_repair = bd_fs_f2fs_repair_stub;
    4798          102 :     _bd_fs_f2fs_get_info = bd_fs_f2fs_get_info_stub;
    4799          102 :     _bd_fs_f2fs_resize = bd_fs_f2fs_resize_stub;
    4800          102 :     _bd_fs_f2fs_check_label = bd_fs_f2fs_check_label_stub;
    4801          102 :     _bd_fs_nilfs2_mkfs = bd_fs_nilfs2_mkfs_stub;
    4802          102 :     _bd_fs_nilfs2_set_label = bd_fs_nilfs2_set_label_stub;
    4803          102 :     _bd_fs_nilfs2_check_label = bd_fs_nilfs2_check_label_stub;
    4804          102 :     _bd_fs_nilfs2_set_uuid = bd_fs_nilfs2_set_uuid_stub;
    4805          102 :     _bd_fs_nilfs2_check_uuid = bd_fs_nilfs2_check_uuid_stub;
    4806          102 :     _bd_fs_nilfs2_get_info = bd_fs_nilfs2_get_info_stub;
    4807          102 :     _bd_fs_nilfs2_resize = bd_fs_nilfs2_resize_stub;
    4808          102 :     _bd_fs_exfat_mkfs = bd_fs_exfat_mkfs_stub;
    4809          102 :     _bd_fs_exfat_check = bd_fs_exfat_check_stub;
    4810          102 :     _bd_fs_exfat_repair = bd_fs_exfat_repair_stub;
    4811          102 :     _bd_fs_exfat_set_label = bd_fs_exfat_set_label_stub;
    4812          102 :     _bd_fs_exfat_check_label = bd_fs_exfat_check_label_stub;
    4813          102 :     _bd_fs_exfat_set_uuid = bd_fs_exfat_set_uuid_stub;
    4814          102 :     _bd_fs_exfat_check_uuid = bd_fs_exfat_check_uuid_stub;
    4815          102 :     _bd_fs_exfat_get_info = bd_fs_exfat_get_info_stub;
    4816          102 :     _bd_fs_btrfs_mkfs = bd_fs_btrfs_mkfs_stub;
    4817          102 :     _bd_fs_btrfs_check = bd_fs_btrfs_check_stub;
    4818          102 :     _bd_fs_btrfs_repair = bd_fs_btrfs_repair_stub;
    4819          102 :     _bd_fs_btrfs_set_label = bd_fs_btrfs_set_label_stub;
    4820          102 :     _bd_fs_btrfs_check_label = bd_fs_btrfs_check_label_stub;
    4821          102 :     _bd_fs_btrfs_set_uuid = bd_fs_btrfs_set_uuid_stub;
    4822          102 :     _bd_fs_btrfs_check_uuid = bd_fs_btrfs_check_uuid_stub;
    4823          102 :     _bd_fs_btrfs_get_info = bd_fs_btrfs_get_info_stub;
    4824          102 :     _bd_fs_btrfs_resize = bd_fs_btrfs_resize_stub;
    4825          102 :     _bd_fs_udf_mkfs = bd_fs_udf_mkfs_stub;
    4826          102 :     _bd_fs_udf_set_label = bd_fs_udf_set_label_stub;
    4827          102 :     _bd_fs_udf_check_label = bd_fs_udf_check_label_stub;
    4828          102 :     _bd_fs_udf_set_uuid = bd_fs_udf_set_uuid_stub;
    4829          102 :     _bd_fs_udf_check_uuid = bd_fs_udf_check_uuid_stub;
    4830          102 :     _bd_fs_udf_get_info = bd_fs_udf_get_info_stub;
    4831          102 :     _bd_fs_features = bd_fs_features_stub;
    4832              : 
    4833          102 :     dlerror();
    4834          102 :     * (void**) (&close_fn) = dlsym(handle, "bd_fs_close");
    4835          102 :     if (((error = dlerror()) != NULL) || !close_fn)
    4836            0 :         bd_utils_log_format (BD_UTILS_LOG_DEBUG, "failed to load the close_plugin() function for fs: %s", error);
    4837              :     /* coverity[dead_error_condition] */
    4838          102 :     if (close_fn) {
    4839          102 :         close_fn();
    4840              :     }
    4841              : 
    4842          102 :     return dlclose(handle) == 0;
    4843              : }
    4844              : 
        

Generated by: LCOV version 2.0-1