Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 4e5591c2fc1b30f4ea5e2eab4c3a695acc404e39 100 lines 2.8 kB view raw
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* 3 * Defines for NTFS kernel bitmap handling. 4 * 5 * Copyright (c) 2004 Anton Altaparmakov 6 */ 7 8#ifndef _LINUX_NTFS_BITMAP_H 9#define _LINUX_NTFS_BITMAP_H 10 11#include <linux/fs.h> 12 13#include "volume.h" 14 15int ntfs_trim_fs(struct ntfs_volume *vol, struct fstrim_range *range); 16int __ntfs_bitmap_set_bits_in_run(struct inode *vi, const s64 start_bit, 17 const s64 count, const u8 value, const bool is_rollback); 18 19/* 20 * ntfs_bitmap_set_bits_in_run - set a run of bits in a bitmap to a value 21 * @vi: vfs inode describing the bitmap 22 * @start_bit: first bit to set 23 * @count: number of bits to set 24 * @value: value to set the bits to (i.e. 0 or 1) 25 * 26 * Set @count bits starting at bit @start_bit in the bitmap described by the 27 * vfs inode @vi to @value, where @value is either 0 or 1. 28 * 29 * Return 0 on success and -errno on error. 30 */ 31static inline int ntfs_bitmap_set_bits_in_run(struct inode *vi, 32 const s64 start_bit, const s64 count, const u8 value) 33{ 34 return __ntfs_bitmap_set_bits_in_run(vi, start_bit, count, value, 35 false); 36} 37 38/* 39 * ntfs_bitmap_set_run - set a run of bits in a bitmap 40 * @vi: vfs inode describing the bitmap 41 * @start_bit: first bit to set 42 * @count: number of bits to set 43 * 44 * Set @count bits starting at bit @start_bit in the bitmap described by the 45 * vfs inode @vi. 46 * 47 * Return 0 on success and -errno on error. 48 */ 49static inline int ntfs_bitmap_set_run(struct inode *vi, const s64 start_bit, 50 const s64 count) 51{ 52 return ntfs_bitmap_set_bits_in_run(vi, start_bit, count, 1); 53} 54 55/* 56 * ntfs_bitmap_clear_run - clear a run of bits in a bitmap 57 * @vi: vfs inode describing the bitmap 58 * @start_bit: first bit to clear 59 * @count: number of bits to clear 60 * 61 * Clear @count bits starting at bit @start_bit in the bitmap described by the 62 * vfs inode @vi. 63 * 64 * Return 0 on success and -errno on error. 65 */ 66static inline int ntfs_bitmap_clear_run(struct inode *vi, const s64 start_bit, 67 const s64 count) 68{ 69 return ntfs_bitmap_set_bits_in_run(vi, start_bit, count, 0); 70} 71 72/* 73 * ntfs_bitmap_set_bit - set a bit in a bitmap 74 * @vi: vfs inode describing the bitmap 75 * @bit: bit to set 76 * 77 * Set bit @bit in the bitmap described by the vfs inode @vi. 78 * 79 * Return 0 on success and -errno on error. 80 */ 81static inline int ntfs_bitmap_set_bit(struct inode *vi, const s64 bit) 82{ 83 return ntfs_bitmap_set_run(vi, bit, 1); 84} 85 86/* 87 * ntfs_bitmap_clear_bit - clear a bit in a bitmap 88 * @vi: vfs inode describing the bitmap 89 * @bit: bit to clear 90 * 91 * Clear bit @bit in the bitmap described by the vfs inode @vi. 92 * 93 * Return 0 on success and -errno on error. 94 */ 95static inline int ntfs_bitmap_clear_bit(struct inode *vi, const s64 bit) 96{ 97 return ntfs_bitmap_clear_run(vi, bit, 1); 98} 99 100#endif /* defined _LINUX_NTFS_BITMAP_H */