root/fs/ntfs/bitmap.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. ntfs_bitmap_set_bits_in_run
  2. ntfs_bitmap_set_run
  3. ntfs_bitmap_clear_run
  4. ntfs_bitmap_set_bit
  5. ntfs_bitmap_clear_bit

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

/* [<][>][^][v][top][bottom][index][help] */