代码拉取完成,页面将自动刷新
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2021. Huawei Technologies Co., Ltd. All rights reserved.
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef EUFS_CONST_H
#define EUFS_CONST_H
/* EULER */
#define EUFS_SUPER_MAGIC 0x50C9
/* Mount flags */
#define EUFS_MOUNT_ERRORS_RO 0x000001 /* Remount fs ro on errors */
#define EUFS_MOUNT_ERRORS_PANIC 0x000002 /* Panic on errors */
#define EUFS_MOUNT_FORMAT 0x000004 /* was FS formatted on mount? */
#define NULL_ADDR ((u64)-1ll)
#define NULL_VAL (0)
#define NULL_ADDR_PTR ((void *)(NULL_ADDR))
/* FS Limits */
#define EUFS_MAX_NAME_LEN (255)
#define EUFS_LINK_MAX (32000) /* max links to a file */
/* layout: hash_len (u64) + sym_link + trailing zero */
#define EUFS_MAX_SYMLINK_LEN (PAGE_SIZE - sizeof(u64) - 1)
#define EUFS_SYMLINK_HASHLEN_LEN(hashlen) (((hashlen) >> 48) & 0xfff)
#define EUFS_SYMLINK_SIZE(len) ((len) + sizeof(u64) + 1)
#define EUFS_BLOCK_SIZE (4096)
#define EUFS_BLOCK_SIZE_BITS (12)
/* The initial height is 0 when the file tree contains no or one block */
#define EUFS_MAX_FILE_TREE_HEIGHT 3
#define EUFS_FILE_TREE_DEGREE_SHIFT 9
#define EUFS_FILE_TREE_DEGREE (1U << EUFS_FILE_TREE_DEGREE_SHIFT)
#define EUFS_MAX_FILE_BLK_CNT \
(1ll << (EUFS_MAX_FILE_TREE_HEIGHT * EUFS_FILE_TREE_DEGREE_SHIFT))
#define EUFS_MAX_FILE_SIZE (4096ll * EUFS_MAX_FILE_BLK_CNT)
#define EUFS_POISON_POINTER ((void *)0x1010101010101010UL)
#define EUFS_POISON_VALUE ((u64)0x1010101010101010UL)
#define CACHELINE_SIZE (64)
#define EUFS_ALLOC_BLOCKS_ZERO_NONE (0x0) /* Zero none NULL_ADDR pages */
#define EUFS_ALLOC_BLOCKS_ZERO_ALL (0x1) /* Zero all NULL_ADDR pages */
#define EUFS_ALLOC_BLOCKS_ZERO_EDGE (0x2) /* Zero edge NULL_ADDR pages */
#define EUFS_INODE_SIZE (CACHELINE_SIZE * 2)
#define NV_DICT_CAPACITY (512ULL)
/*
* EOC stands for "End Of Chain".
*
* When volatile bucket (namely table[idx]) is EUFS_DIR_EOC_PTR,
* it means that both volatile bucket and persist bucket are empty.
* When volatile bucket is NULL, it just means that volatile
* bucket is empty.
*
* When volatile_next is EUFS_DIR_EOC, it means current entry is
* the last one in the chain although its next may still points
* to an entry (because the setting and persistence of next are
* deferred). When volatile_next is NULL, it means next should be
* checked to ensure whether or not the current entry is the last
* one in the chain.
*/
#define EUFS_DIR_EOC ((u64)-1)
#define EUFS_DIR_EOC_PTR ((void *)EUFS_DIR_EOC)
/* DIR DELeted NEW dentry */
#define EUFS_DIR_DELNEW ((u64)0x3030303030303030UL)
#endif /* EUFS_CONST_H */
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。