forked from Minki/linux
a1d312de77
Based on 1 normalized pattern(s): this program include file is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program include file 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 you should have received a copy of the gnu general public license along with this program in the main directory of the linux [ntfs] distribution in the file copying if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 43 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Richard Fontana <rfontana@redhat.com> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075212.517001706@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
105 lines
2.8 KiB
C
105 lines
2.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* bitmap.h - Defines for NTFS kernel bitmap handling. Part of the Linux-NTFS
|
|
* project.
|
|
*
|
|
* Copyright (c) 2004 Anton Altaparmakov
|
|
*/
|
|
|
|
#ifndef _LINUX_NTFS_BITMAP_H
|
|
#define _LINUX_NTFS_BITMAP_H
|
|
|
|
#ifdef NTFS_RW
|
|
|
|
#include <linux/fs.h>
|
|
|
|
#include "types.h"
|
|
|
|
extern int __ntfs_bitmap_set_bits_in_run(struct inode *vi, const s64 start_bit,
|
|
const s64 count, const u8 value, const bool is_rollback);
|
|
|
|
/**
|
|
* ntfs_bitmap_set_bits_in_run - set a run of bits in a bitmap to a value
|
|
* @vi: vfs inode describing the bitmap
|
|
* @start_bit: first bit to set
|
|
* @count: number of bits to set
|
|
* @value: value to set the bits to (i.e. 0 or 1)
|
|
*
|
|
* Set @count bits starting at bit @start_bit in the bitmap described by the
|
|
* vfs inode @vi to @value, where @value is either 0 or 1.
|
|
*
|
|
* Return 0 on success and -errno on error.
|
|
*/
|
|
static inline int ntfs_bitmap_set_bits_in_run(struct inode *vi,
|
|
const s64 start_bit, const s64 count, const u8 value)
|
|
{
|
|
return __ntfs_bitmap_set_bits_in_run(vi, start_bit, count, value,
|
|
false);
|
|
}
|
|
|
|
/**
|
|
* ntfs_bitmap_set_run - set a run of bits in a bitmap
|
|
* @vi: vfs inode describing the bitmap
|
|
* @start_bit: first bit to set
|
|
* @count: number of bits to set
|
|
*
|
|
* Set @count bits starting at bit @start_bit in the bitmap described by the
|
|
* vfs inode @vi.
|
|
*
|
|
* Return 0 on success and -errno on error.
|
|
*/
|
|
static inline int ntfs_bitmap_set_run(struct inode *vi, const s64 start_bit,
|
|
const s64 count)
|
|
{
|
|
return ntfs_bitmap_set_bits_in_run(vi, start_bit, count, 1);
|
|
}
|
|
|
|
/**
|
|
* ntfs_bitmap_clear_run - clear a run of bits in a bitmap
|
|
* @vi: vfs inode describing the bitmap
|
|
* @start_bit: first bit to clear
|
|
* @count: number of bits to clear
|
|
*
|
|
* Clear @count bits starting at bit @start_bit in the bitmap described by the
|
|
* vfs inode @vi.
|
|
*
|
|
* Return 0 on success and -errno on error.
|
|
*/
|
|
static inline int ntfs_bitmap_clear_run(struct inode *vi, const s64 start_bit,
|
|
const s64 count)
|
|
{
|
|
return ntfs_bitmap_set_bits_in_run(vi, start_bit, count, 0);
|
|
}
|
|
|
|
/**
|
|
* ntfs_bitmap_set_bit - set a bit in a bitmap
|
|
* @vi: vfs inode describing the bitmap
|
|
* @bit: bit to set
|
|
*
|
|
* Set bit @bit in the bitmap described by the vfs inode @vi.
|
|
*
|
|
* Return 0 on success and -errno on error.
|
|
*/
|
|
static inline int ntfs_bitmap_set_bit(struct inode *vi, const s64 bit)
|
|
{
|
|
return ntfs_bitmap_set_run(vi, bit, 1);
|
|
}
|
|
|
|
/**
|
|
* ntfs_bitmap_clear_bit - clear a bit in a bitmap
|
|
* @vi: vfs inode describing the bitmap
|
|
* @bit: bit to clear
|
|
*
|
|
* Clear bit @bit in the bitmap described by the vfs inode @vi.
|
|
*
|
|
* Return 0 on success and -errno on error.
|
|
*/
|
|
static inline int ntfs_bitmap_clear_bit(struct inode *vi, const s64 bit)
|
|
{
|
|
return ntfs_bitmap_clear_run(vi, bit, 1);
|
|
}
|
|
|
|
#endif /* NTFS_RW */
|
|
|
|
#endif /* defined _LINUX_NTFS_BITMAP_H */
|