90 lines
2.5 KiB
C
90 lines
2.5 KiB
C
/*
|
|
* Copyright 2000-2004 by Hans Reiser, licensing governed by
|
|
* reiserfsprogs/README
|
|
*/
|
|
|
|
#ifndef REISERFS_BITMAP_H
|
|
#define REISERFS_BITMAP_H
|
|
|
|
#include "reiserfs/types.h"
|
|
#include <stdio.h>
|
|
|
|
#define reiserfs_bmap_nr(count, blk_size) \
|
|
((count - 1) / (blk_size * 8) + 1)
|
|
|
|
#define reiserfs_bmap_over(nr) (nr > ((1ll << 16) - 1))
|
|
|
|
extern reiserfs_bitmap_t *reiserfs_bitmap_create (unsigned int bit_count);
|
|
|
|
extern int reiserfs_bitmap_open(reiserfs_filsys_t *);
|
|
|
|
extern void reiserfs_bitmap_delete (reiserfs_bitmap_t * bm);
|
|
|
|
extern void reiserfs_bitmap_free (reiserfs_filsys_t *);
|
|
|
|
extern void reiserfs_bitmap_close (reiserfs_filsys_t *);
|
|
|
|
extern int reiserfs_bitmap_flush (reiserfs_bitmap_t * bm,
|
|
reiserfs_filsys_t * fs);
|
|
|
|
extern int reiserfs_bitmap_expand (reiserfs_bitmap_t * bm,
|
|
unsigned int bit_count);
|
|
|
|
extern void reiserfs_bitmap_shrink (reiserfs_bitmap_t * bm,
|
|
unsigned int bit_count);
|
|
|
|
extern void reiserfs_bitmap_copy (reiserfs_bitmap_t * to,
|
|
reiserfs_bitmap_t * from);
|
|
|
|
extern int reiserfs_bitmap_compare (reiserfs_bitmap_t * bm1,
|
|
reiserfs_bitmap_t * bm2);
|
|
|
|
extern void reiserfs_bitmap_disjunction (reiserfs_bitmap_t * disk,
|
|
reiserfs_bitmap_t * cont);
|
|
|
|
extern void reiserfs_bitmap_delta (reiserfs_bitmap_t * base,
|
|
reiserfs_bitmap_t * exclude);
|
|
|
|
extern void reiserfs_bitmap_set_bit (reiserfs_bitmap_t * bm,
|
|
unsigned int bit_number);
|
|
|
|
extern void reiserfs_bitmap_clear_bit (reiserfs_bitmap_t * bm,
|
|
unsigned int bit_number);
|
|
|
|
extern int reiserfs_bitmap_test_bit (reiserfs_bitmap_t * bm,
|
|
unsigned int bit_number);
|
|
|
|
extern int reiserfs_bitmap_find_zero_bit (reiserfs_bitmap_t * bm,
|
|
unsigned long * start);
|
|
|
|
extern void reiserfs_bitmap_zero (reiserfs_bitmap_t * bm);
|
|
|
|
extern void reiserfs_bitmap_fill (reiserfs_bitmap_t * bm);
|
|
|
|
extern void reiserfs_bitmap_invert (reiserfs_bitmap_t * bm);
|
|
|
|
extern unsigned int reiserfs_bitmap_ones (reiserfs_bitmap_t * bm);
|
|
|
|
extern unsigned int reiserfs_bitmap_zeros (reiserfs_bitmap_t * bm);
|
|
|
|
extern int reiserfs_bitmap_spread (reiserfs_filsys_t *);
|
|
|
|
extern int reiserfs_bitmap_block (reiserfs_filsys_t *,
|
|
unsigned long block);
|
|
|
|
/* Backup copies. */
|
|
extern void reiserfs_bitmap_save (FILE * fp,
|
|
reiserfs_bitmap_t *bm);
|
|
|
|
extern reiserfs_bitmap_t * reiserfs_bitmap_load (FILE * fp);
|
|
|
|
extern void reiserfs_bitmap_print (FILE * fp, reiserfs_filsys_t * fs,
|
|
int silent);
|
|
|
|
extern void reiserfs_print_bmap_block (FILE * fp, int i,
|
|
unsigned long block,
|
|
char * map, int blocks,
|
|
int silent, int blocksize);
|
|
|
|
#endif
|