The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/fs/ntfs/bitmap.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * bitmap.h - Defines for NTFS kernel bitmap handling.  Part of the Linux-NTFS
    3  *            project.
    4  *
    5  * Copyright (c) 2004 Anton Altaparmakov
    6  *
    7  * This program/include file is free software; you can redistribute it and/or
    8  * modify it under the terms of the GNU General Public License as published
    9  * by the Free Software Foundation; either version 2 of the License, or
   10  * (at your option) any later version.
   11  *
   12  * This program/include file is distributed in the hope that it will be
   13  * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
   14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   15  * GNU General Public License for more details.
   16  *
   17  * You should have received a copy of the GNU General Public License
   18  * along with this program (in the main directory of the Linux-NTFS
   19  * distribution in the file COPYING); if not, write to the Free Software
   20  * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   21  */
   22 
   23 #ifndef _LINUX_NTFS_BITMAP_H
   24 #define _LINUX_NTFS_BITMAP_H
   25 
   26 #ifdef NTFS_RW
   27 
   28 #include <linux/fs.h>
   29 
   30 #include "types.h"
   31 
   32 extern int __ntfs_bitmap_set_bits_in_run(struct inode *vi, const s64 start_bit,
   33                 const s64 count, const u8 value, const bool is_rollback);
   34 
   35 /**
   36  * ntfs_bitmap_set_bits_in_run - set a run of bits in a bitmap to a value
   37  * @vi:                 vfs inode describing the bitmap
   38  * @start_bit:          first bit to set
   39  * @count:              number of bits to set
   40  * @value:              value to set the bits to (i.e. 0 or 1)
   41  *
   42  * Set @count bits starting at bit @start_bit in the bitmap described by the
   43  * vfs inode @vi to @value, where @value is either 0 or 1.
   44  *
   45  * Return 0 on success and -errno on error.
   46  */
   47 static inline int ntfs_bitmap_set_bits_in_run(struct inode *vi,
   48                 const s64 start_bit, const s64 count, const u8 value)
   49 {
   50         return __ntfs_bitmap_set_bits_in_run(vi, start_bit, count, value,
   51                         false);
   52 }
   53 
   54 /**
   55  * ntfs_bitmap_set_run - set a run of bits in a bitmap
   56  * @vi:         vfs inode describing the bitmap
   57  * @start_bit:  first bit to set
   58  * @count:      number of bits to set
   59  *
   60  * Set @count bits starting at bit @start_bit in the bitmap described by the
   61  * vfs inode @vi.
   62  *
   63  * Return 0 on success and -errno on error.
   64  */
   65 static inline int ntfs_bitmap_set_run(struct inode *vi, const s64 start_bit,
   66                 const s64 count)
   67 {
   68         return ntfs_bitmap_set_bits_in_run(vi, start_bit, count, 1);
   69 }
   70 
   71 /**
   72  * ntfs_bitmap_clear_run - clear a run of bits in a bitmap
   73  * @vi:         vfs inode describing the bitmap
   74  * @start_bit:  first bit to clear
   75  * @count:      number of bits to clear
   76  *
   77  * Clear @count bits starting at bit @start_bit in the bitmap described by the
   78  * vfs inode @vi.
   79  *
   80  * Return 0 on success and -errno on error.
   81  */
   82 static inline int ntfs_bitmap_clear_run(struct inode *vi, const s64 start_bit,
   83                 const s64 count)
   84 {
   85         return ntfs_bitmap_set_bits_in_run(vi, start_bit, count, 0);
   86 }
   87 
   88 /**
   89  * ntfs_bitmap_set_bit - set a bit in a bitmap
   90  * @vi:         vfs inode describing the bitmap
   91  * @bit:        bit to set
   92  *
   93  * Set 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_set_bit(struct inode *vi, const s64 bit)
   98 {
   99         return ntfs_bitmap_set_run(vi, bit, 1);
  100 }
  101 
  102 /**
  103  * ntfs_bitmap_clear_bit - clear a bit in a bitmap
  104  * @vi:         vfs inode describing the bitmap
  105  * @bit:        bit to clear
  106  *
  107  * Clear bit @bit in the bitmap described by the vfs inode @vi.
  108  *
  109  * Return 0 on success and -errno on error.
  110  */
  111 static inline int ntfs_bitmap_clear_bit(struct inode *vi, const s64 bit)
  112 {
  113         return ntfs_bitmap_clear_run(vi, bit, 1);
  114 }
  115 
  116 #endif /* NTFS_RW */
  117 
  118 #endif /* defined _LINUX_NTFS_BITMAP_H */

Cache object: 25a99710ea92d23edf558feae75927d9


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.