Imported reiserfsprogs-3.6.4
This commit is contained in:
1 parent
b69459eb80
commit
99c89460c3
52 files changed
+2263
-2407
No files matched your search
+55
-19
@@ -3,12 +3,20 @@
|
||||
*/
|
||||
|
||||
/* nothing abount reiserfs here */
|
||||
|
||||
#ifndef REISERFS_MISC_H
|
||||
#define REISERFS_MISC_H
|
||||
|
||||
#include <endian.h>
|
||||
#include "swab.h"
|
||||
#include <linux/major.h>
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define POSITION_FOUND 8
|
||||
#define POSITION_NOT_FOUND 9
|
||||
|
||||
void check_memory_msg(void);
|
||||
void die (char * fmt, ...) __attribute__ ((format (printf, 1, 2)));
|
||||
void * getmem (int size);
|
||||
void freemem (void * p);
|
||||
@@ -20,6 +28,17 @@ int is_mounted_read_only (char * device_name);
|
||||
void check_and_free_mem (void);
|
||||
char * kdevname (int dev);
|
||||
|
||||
typedef struct dma_info {
|
||||
int fd;
|
||||
struct stat64 stat;
|
||||
int support_type;
|
||||
int dma;
|
||||
__u64 speed;
|
||||
} dma_info_t;
|
||||
|
||||
int prepare_dma_check(dma_info_t *dma_info);
|
||||
int get_dma_info(dma_info_t *dma_info);
|
||||
void clean_after_dma_check(int fd, dma_info_t *dma_info);
|
||||
|
||||
void print_how_far (FILE * fp, unsigned long * passed, unsigned long total, int inc, int quiet);
|
||||
void print_how_fast (unsigned long total,
|
||||
@@ -30,6 +49,7 @@ int generate_random_uuid (unsigned char * uuid);
|
||||
int uuid_is_correct (unsigned char * uuid);
|
||||
int set_uuid (const unsigned char * text, unsigned char * UUID);
|
||||
|
||||
#include <asm/bitops.h>
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
int le_set_bit (int nr, void * addr);
|
||||
int le_clear_bit (int nr, void * addr);
|
||||
@@ -42,31 +62,14 @@ int le_find_next_zero_bit (const void *vaddr, unsigned size, unsigned offset);
|
||||
# define le32_to_cpu(val) (val)
|
||||
# define cpu_to_le64(val) (val)
|
||||
# define le64_to_cpu(val) (val)
|
||||
# define set_bit(nr, addr) le_set_bit(nr, addr)
|
||||
# define clear_bit(nr, addr) le_clear_bit(nr, addr)
|
||||
# define test_bit(nr, addr) le_test_bit(nr, addr)
|
||||
# define find_first_zero_bit(vaddr, size) le_find_first_zero_bit(vaddr, size)
|
||||
# define find_next_zero_bit(vaddr, size, off) \
|
||||
le_find_next_zero_bit(vaddr, size, off)
|
||||
#elif __BYTE_ORDER == __BIG_ENDIAN
|
||||
|
||||
int be_set_bit (int nr, void * addr);
|
||||
int be_clear_bit (int nr, void * addr);
|
||||
int be_test_bit(int nr, const void * addr);
|
||||
int be_find_first_zero_bit (const void *vaddr, unsigned size);
|
||||
int be_find_next_zero_bit (const void *vaddr, unsigned size, unsigned offset);
|
||||
# define cpu_to_le16(val) swab16(val)
|
||||
# define le16_to_cpu(val) swab16(val)
|
||||
# define cpu_to_le32(val) swab32(val)
|
||||
# define le32_to_cpu(val) swab32(val)
|
||||
# define cpu_to_le64(val) swab64(val)
|
||||
# define le64_to_cpu(val) swab64(val)
|
||||
# define set_bit(nr, addr) be_set_bit(nr, addr)
|
||||
# define clear_bit(nr, addr) be_clear_bit(nr, addr)
|
||||
# define test_bit(nr, addr) be_test_bit(nr, addr)
|
||||
# define find_first_zero_bit(vaddr, size) be_find_first_zero_bit(vaddr, size)
|
||||
# define find_next_zero_bit(vaddr, size, off) \
|
||||
be_find_next_zero_bit(vaddr, size, off)
|
||||
#else
|
||||
# error "nuxi/pdp-endian archs are not supported"
|
||||
#endif
|
||||
@@ -95,8 +98,10 @@ struct block_handler {
|
||||
dev_t device;
|
||||
};
|
||||
|
||||
int blocklist__is_block_saved (struct block_handler ** base, __u32 * count, __u32 blocknr, dev_t device, __u32 * position);
|
||||
void blocklist__insert_in_position (void ** base, __u32 * count, void * block_h, int elem_size, __u32 * position);
|
||||
int blocklist__is_block_saved (struct block_handler ** base, __u32 * count, __u32 blocknr,
|
||||
dev_t device, __u32 * position);
|
||||
void blocklist__insert_in_position (void * block_h, void ** base, __u32 * count,
|
||||
int elem_size, __u32 * position);
|
||||
int blockdev_list_compare (const void * block1, const void * block2);
|
||||
|
||||
|
||||
@@ -134,3 +139,34 @@ int blockdev_list_compare (const void * block1, const void * block2);
|
||||
/* get value written in specified bits */\
|
||||
tmp >>= from;\
|
||||
return tmp;
|
||||
|
||||
|
||||
#ifndef MAJOR
|
||||
#define MAJOR(rdev) ((rdev)>>8)
|
||||
#define MINOR(rdev) ((rdev) & 0xff)
|
||||
#endif /* MAJOR */
|
||||
|
||||
#ifndef SCSI_DISK_MAJOR
|
||||
#define SCSI_DISK_MAJOR(maj) ((maj) == SCSI_DISK0_MAJOR || \
|
||||
((maj) >= SCSI_DISK1_MAJOR && (maj) <= SCSI_DISK7_MAJOR))
|
||||
#endif /* SCSI_DISK_MAJOR */
|
||||
|
||||
#ifndef SCSI_BLK_MAJOR
|
||||
#define SCSI_BLK_MAJOR(maj) (SCSI_DISK_MAJOR(maj) || (maj) == SCSI_CDROM_MAJOR)
|
||||
#endif /* SCSI_BLK_MAJOR */
|
||||
|
||||
#ifndef IDE_DISK_MAJOR
|
||||
#ifdef IDE9_MAJOR
|
||||
#define IDE_DISK_MAJOR(maj) ((maj) == IDE0_MAJOR || (maj) == IDE1_MAJOR || \
|
||||
(maj) == IDE2_MAJOR || (maj) == IDE3_MAJOR || \
|
||||
(maj) == IDE4_MAJOR || (maj) == IDE5_MAJOR || \
|
||||
(maj) == IDE6_MAJOR || (maj) == IDE7_MAJOR || \
|
||||
(maj) == IDE8_MAJOR || (maj) == IDE9_MAJOR)
|
||||
#else
|
||||
#define IDE_DISK_MAJOR(maj) ((maj) == IDE0_MAJOR || (maj) == IDE1_MAJOR || \
|
||||
(maj) == IDE2_MAJOR || (maj) == IDE3_MAJOR || \
|
||||
(maj) == IDE4_MAJOR || (maj) == IDE5_MAJOR)
|
||||
#endif /* IDE9_MAJOR */
|
||||
#endif /* IDE_DISK_MAJOR */
|
||||
|
||||
#endif /* REISERFS_MISC_H */
|
||||
+25
-15
@@ -426,6 +426,8 @@ struct reiserfs_journal_header {
|
||||
__u32 jh_mount_id ;
|
||||
|
||||
struct journal_params jh_journal;
|
||||
|
||||
__u32 jh_last_check_mount_id; /* the mount id of the fs during the last reiserfsck --check. */
|
||||
};
|
||||
|
||||
|
||||
@@ -492,11 +494,9 @@ struct offset_v2 {
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
|
||||
/* Key of the object drop determines its location in the S+tree, and is
|
||||
composed of 4 components */
|
||||
/* Key of the object determines object's location in the tree, composed of 4 components */
|
||||
struct key {
|
||||
__u32 k2_dir_id; /* packing locality: by default parent directory object
|
||||
id */
|
||||
__u32 k2_dir_id; /* packing locality: by default parent directory object id */
|
||||
__u32 k2_objectid; /* object identifier */
|
||||
union {
|
||||
struct offset_v1 k2_offset_v1;
|
||||
@@ -640,9 +640,11 @@ void set_ih_key_format (struct item_head * ih, __u16 val);
|
||||
( ! not_of_one_file(p_s_ih, p_s_key) && \
|
||||
I_OFF_BYTE_IN_ITEM(p_s_ih, get_offset (p_s_key), n_blocksize) )
|
||||
|
||||
#define IH_Bad 0
|
||||
#define IH_Unreachable 1
|
||||
#define IH_WAS_TAIL 2
|
||||
#define IH_Unreachable 0
|
||||
#define IH_Was_Tail 1
|
||||
#define IH_Checked 2
|
||||
#define IH_Writable 3
|
||||
|
||||
|
||||
/* Bad item flag is set temporary by recover_leaf */
|
||||
/*
|
||||
@@ -670,16 +672,23 @@ extern_inline __u16 unmark_item_bad( struct item_head *ih )
|
||||
/* Unreachable bit is set on tree rebuilding and is cleared in semantic pass */
|
||||
#define clean_ih_flags(ih) set_ih_flags (ih, 0)
|
||||
|
||||
#define ih_reachable(ih) (!(get_ih_flags (ih) & (1 << IH_Unreachable)))
|
||||
#define ih_reachable(ih) (!(get_ih_flags (ih) & (1 << IH_Unreachable)))
|
||||
#define mark_ih_reachable(ih) set_ih_flags (ih, get_ih_flags (ih) & ~(1 << IH_Unreachable))
|
||||
#define mark_ih_unreachable(ih) set_ih_flags (ih, get_ih_flags (ih) | (1 << IH_Unreachable))
|
||||
|
||||
#define ih_was_tail(ih) (get_ih_flags (ih) & (1 << IH_WAS_TAIL))
|
||||
#define mark_ih_was_tail(ih) set_ih_flags (ih, get_ih_flags (ih) | (1 << IH_WAS_TAIL))
|
||||
#define mark_ih_become_tail(ih) set_ih_flags (ih, get_ih_flags (ih) & ~(1 << IH_WAS_TAIL))
|
||||
#define ih_was_tail(ih) (get_ih_flags (ih) & (1 << IH_Was_Tail))
|
||||
#define mark_ih_was_tail(ih) set_ih_flags (ih, get_ih_flags (ih) | (1 << IH_Was_Tail))
|
||||
#define mark_ih_become_tail(ih) set_ih_flags (ih, get_ih_flags (ih) & ~(1 << IH_Was_Tail))
|
||||
|
||||
#define ih_checked(ih) (get_ih_flags (ih) & (1 << IH_Checked))
|
||||
#define mark_ih_checked(ih) set_ih_flags (ih, get_ih_flags (ih) | (1 << IH_Checked))
|
||||
#define clear_ih_checked(ih) set_ih_flags (ih, get_ih_flags (ih) & ~(1 << IH_Checked))
|
||||
|
||||
/* maximal length of item */
|
||||
#define ih_writable(ih) (get_ih_flags (ih) & (1 << IH_Writable))
|
||||
#define mark_ih_writable(ih) set_ih_flags (ih, get_ih_flags (ih) | (1 << IH_Writable))
|
||||
#define clear_ih_writable(ih) set_ih_flags (ih, get_ih_flags (ih) & ~(1 << IH_Writable))
|
||||
|
||||
/* maximal length of item */
|
||||
#define MAX_ITEM_LEN(block_size) (block_size - BLKH_SIZE - IH_SIZE)
|
||||
#define MIN_ITEM_LEN 1
|
||||
|
||||
@@ -690,7 +699,7 @@ extern_inline __u16 unmark_item_bad( struct item_head *ih )
|
||||
|
||||
|
||||
/*
|
||||
* Picture represents a leaf of the S+tree
|
||||
* Picture represents a leaf of internal tree
|
||||
* ______________________________________________________
|
||||
* | | Array of | | |
|
||||
* |Block | Object-Item | F r e e | Objects- |
|
||||
@@ -837,7 +846,7 @@ struct stat_data {
|
||||
//
|
||||
#define SD_SIZE (sizeof(struct stat_data))
|
||||
|
||||
// there are two ways: to check length of item or ih_version field
|
||||
// there are two ways: to check length of item or ih_format field
|
||||
// (for old stat data it is set to 0 (KEY_FORMAT_1))
|
||||
#define stat_data_v1(ih) (get_ih_key_format (ih) == KEY_FORMAT_1)
|
||||
|
||||
@@ -1424,7 +1433,8 @@ struct buffer_info {
|
||||
/* get stat-data */
|
||||
#define B_I_STAT_DATA(bh, ih) ( (struct stat_data * )B_I_PITEM(bh,ih) )
|
||||
|
||||
#define MAX_DIRECT_ITEM_LEN(size) ((size) - BLKH_SIZE - 2*IH_SIZE - SD_V1_SIZE - UNFM_P_SIZE)
|
||||
#define MAX_DIRECT_ITEM_LEN(size) ((size) - BLKH_SIZE - 2*IH_SIZE - SD_SIZE - UNFM_P_SIZE)
|
||||
#define MAX_INDIRECT_ITEM_LEN(size) ((size) - BLKH_SIZE - IH_SIZE)
|
||||
|
||||
/* indirect items consist of entries which contain blocknrs, pos
|
||||
indicates which entry, and B_I_POS_UNFM_POINTER resolves to the
|
||||
|
||||
@@ -170,6 +170,7 @@ void reiserfs_delete_bitmap (reiserfs_bitmap_t * bm);
|
||||
void reiserfs_bitmap_copy (reiserfs_bitmap_t * to, reiserfs_bitmap_t * from);
|
||||
int reiserfs_bitmap_compare (reiserfs_bitmap_t * bm1, reiserfs_bitmap_t * bm2);
|
||||
void reiserfs_bitmap_disjunction (reiserfs_bitmap_t * disk, reiserfs_bitmap_t * cont);
|
||||
void reiserfs_bitmap_delta (reiserfs_bitmap_t * base, reiserfs_bitmap_t * exclude);
|
||||
void reiserfs_bitmap_set_bit (reiserfs_bitmap_t * bm, unsigned int bit_number);
|
||||
void reiserfs_bitmap_clear_bit (reiserfs_bitmap_t * bm, unsigned int bit_number);
|
||||
|
||||
@@ -214,7 +215,7 @@ int is_blocksize_correct (int blocksize);
|
||||
int is_reiserfs_3_5_magic_string (struct reiserfs_super_block * rs);
|
||||
int is_reiserfs_3_6_magic_string (struct reiserfs_super_block * rs);
|
||||
int is_reiserfs_jr_magic_string (struct reiserfs_super_block * rs);
|
||||
int does_look_like_super_block (struct reiserfs_super_block * rs, int blocksize);
|
||||
int does_look_like_super_block (struct reiserfs_super_block * rs);
|
||||
int is_any_reiserfs_magic_string (struct reiserfs_super_block * rs);
|
||||
int get_reiserfs_format (struct reiserfs_super_block * sb);
|
||||
int reiserfs_super_block_size (struct reiserfs_super_block * rs);
|
||||
@@ -368,6 +369,7 @@ void print_journal_params (FILE * fp, struct journal_params * jp);
|
||||
char * get_reiserfs_version (__u16 version);
|
||||
int can_we_format_it (char * device_name, int force);
|
||||
|
||||
|
||||
#define reiserfs_panic(fmt, list...) \
|
||||
{\
|
||||
fflush (stdout);\
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
timestamp
|
||||
+4
-21
@@ -1,25 +1,8 @@
|
||||
/*
|
||||
* Copyright 2002 by Hans Reiser, licensing governed by reiserfs/README
|
||||
*/
|
||||
#ifndef _REISERFS_SWAB_H_
|
||||
#define _REISERFS_SWAB_H_
|
||||
/* Stolen from linux/include/linux/byteorder/swab.h */
|
||||
#define swab16(x) \
|
||||
((__u16)( \
|
||||
(((__u16)(x) & (__u16)0x00ffU) << 8) | \
|
||||
(((__u16)(x) & (__u16)0xff00U) >> 8) ))
|
||||
#define swab32(x) \
|
||||
((__u32)( \
|
||||
(((__u32)(x) & (__u32)0x000000ffUL) << 24) | \
|
||||
(((__u32)(x) & (__u32)0x0000ff00UL) << 8) | \
|
||||
(((__u32)(x) & (__u32)0x00ff0000UL) >> 8) | \
|
||||
(((__u32)(x) & (__u32)0xff000000UL) >> 24) ))
|
||||
#define swab64(x) \
|
||||
((__u64)( \
|
||||
(__u64)(((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
|
||||
(__u64)(((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
|
||||
(__u64)(((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
|
||||
(__u64)(((__u64)(x) & (__u64)0x00000000ff000000ULL) << 8) | \
|
||||
(__u64)(((__u64)(x) & (__u64)0x000000ff00000000ULL) >> 8) | \
|
||||
(__u64)(((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | \
|
||||
(__u64)(((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | \
|
||||
(__u64)(((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56) ))
|
||||
|
||||
#include <linux/byteorder/swab.h>
|
||||
#endif /* _REISERFS_SWAB_H_ */
|
||||
Reference in new issue
Block a user