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