blob: 3b6f40540aaf23630cc25b4fb9a1279541a4f3f1 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (C) 2018-2024 Oracle. All Rights Reserved.
* Author: Darrick J. Wong <djwong@kernel.org>
*/
#ifndef XFS_SCRUB_UNICRASH_H_
#define XFS_SCRUB_UNICRASH_H_
struct unicrash;
/* Unicode name collision detection. */
#ifdef HAVE_LIBICU
struct dirent;
int unicrash_dir_init(struct unicrash **ucp, struct scrub_ctx *ctx,
struct xfs_bulkstat *bstat);
int unicrash_xattr_init(struct unicrash **ucp, struct scrub_ctx *ctx,
struct xfs_bulkstat *bstat);
int unicrash_fs_label_init(struct unicrash **ucp, struct scrub_ctx *ctx);
void unicrash_free(struct unicrash *uc);
int unicrash_check_dir_name(struct unicrash *uc, struct descr *dsc,
struct dirent *dirent);
int unicrash_check_xattr_name(struct unicrash *uc, struct descr *dsc,
const char *attrname);
int unicrash_check_fs_label(struct unicrash *uc, struct descr *dsc,
const char *label);
bool unicrash_load(void);
void unicrash_unload(void);
#else
# define unicrash_dir_init(u, c, b) (0)
# define unicrash_xattr_init(u, c, b) (0)
# define unicrash_fs_label_init(u, c) (0)
# define unicrash_free(u) do {(u) = (u);} while (0)
# define unicrash_check_dir_name(u, d, n) (0)
# define unicrash_check_xattr_name(u, d, n) (0)
# define unicrash_check_fs_label(u, d, n) (0)
# define unicrash_load() (0)
# define unicrash_unload() do { } while (0)
#endif /* HAVE_LIBICU */
#endif /* XFS_SCRUB_UNICRASH_H_ */