154568cb3Sopenharmony_ci/*
254568cb3Sopenharmony_ci * Copyright (c) 2022-2022 Huawei Technologies Co., Ltd. All rights reserved.
354568cb3Sopenharmony_ci *
454568cb3Sopenharmony_ci * UniProton is licensed under Mulan PSL v2.
554568cb3Sopenharmony_ci * You can use this software according to the terms and conditions of the Mulan PSL v2.
654568cb3Sopenharmony_ci * You may obtain a copy of Mulan PSL v2 at:
754568cb3Sopenharmony_ci *          http://license.coscl.org.cn/MulanPSL2
854568cb3Sopenharmony_ci * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
954568cb3Sopenharmony_ci * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
1054568cb3Sopenharmony_ci * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
1154568cb3Sopenharmony_ci * See the Mulan PSL v2 for more details.
1254568cb3Sopenharmony_ci * Create: 2022-09-21
1354568cb3Sopenharmony_ci * Description: 文件系统vfs层
1454568cb3Sopenharmony_ci */
1554568cb3Sopenharmony_ci
1654568cb3Sopenharmony_ci#ifndef VFS_MAPS_H
1754568cb3Sopenharmony_ci#define VFS_MAPS_H
1854568cb3Sopenharmony_ci
1954568cb3Sopenharmony_ci#include "prt_fs.h"
2054568cb3Sopenharmony_ci
2154568cb3Sopenharmony_cistruct TagMountOps;
2254568cb3Sopenharmony_ci
2354568cb3Sopenharmony_cistruct TagFsManagement {
2454568cb3Sopenharmony_ci    S32 (*fdisk)(const char *dev, S32 *lengthArray, S32 partNum);
2554568cb3Sopenharmony_ci    S32 (*format)(const char *partName, void *data);
2654568cb3Sopenharmony_ci};
2754568cb3Sopenharmony_ci
2854568cb3Sopenharmony_cistruct TagFsMap {
2954568cb3Sopenharmony_ci    const char                   *fsType;
3054568cb3Sopenharmony_ci    const struct TagMountOps     *fsMops;
3154568cb3Sopenharmony_ci    const struct TagFileOps      *fsFops;
3254568cb3Sopenharmony_ci    const struct TagFsManagement *fsMgt;
3354568cb3Sopenharmony_ci    U32                          fsRefs;
3454568cb3Sopenharmony_ci    struct TagFsMap              *next;
3554568cb3Sopenharmony_ci};
3654568cb3Sopenharmony_ci
3754568cb3Sopenharmony_ciS32 OsFsRegister(const char *fsType, struct TagMountOps *fsMops,
3854568cb3Sopenharmony_ci                 struct TagFileOps *fsFops, struct TagFsManagement *fsMgt);
3954568cb3Sopenharmony_cistruct TagFsMap *OsVfsGetFsMap(const char *fsType);
4054568cb3Sopenharmony_ciS32 OsVfsFsMgtDisk(const char *dev, const char *fsType, S32 *lengthArray, S32 partNum);
4154568cb3Sopenharmony_ciS32 OsVfsFsMgtFormat(const char *partName, char *fsType, void *data);
4254568cb3Sopenharmony_ci#endif /* VFS_MAPS_H */
43