cregit-Linux how code gets into the kernel

Release 4.11 fs/befs/befs.h

Directory: fs/befs
/*
 * befs.h
 *
 * Copyright (C) 2001-2002 Will Dyson <will_dyson@pobox.com>
 * Copyright (C) 1999 Makoto Kato (m_kato@ga2.so-net.ne.jp)
 */

#ifndef _LINUX_BEFS_H

#define _LINUX_BEFS_H

#include "befs_fs_types.h"

/* used in debug.c */

#define BEFS_VERSION "0.9.3"



typedef u64 befs_blocknr_t;
/*
 * BeFS in memory structures
 */


struct befs_mount_options {
	
kgid_t gid;
	
kuid_t uid;
	
int use_gid;
	
int use_uid;
	
int debug;
	
char *iocharset;
};


struct befs_sb_info {
	
u32 magic1;
	
u32 block_size;
	
u32 block_shift;
	
int byte_order;
	
befs_off_t num_blocks;
	
befs_off_t used_blocks;
	
u32 inode_size;
	
u32 magic2;

	/* Allocation group information */
	
u32 blocks_per_ag;
	
u32 ag_shift;
	
u32 num_ags;

	/* State of the superblock */
	
u32 flags;

	/* Journal log entry */
	
befs_block_run log_blocks;
	
befs_off_t log_start;
	
befs_off_t log_end;

	
befs_inode_addr root_dir;
	
befs_inode_addr indices;
	
u32 magic3;

	
struct befs_mount_options mount_opts;
	
struct nls_table *nls;
};


struct befs_inode_info {
	
u32 i_flags;
	
u32 i_type;

	
befs_inode_addr i_inode_num;
	
befs_inode_addr i_parent;
	
befs_inode_addr i_attribute;

	union {
		
befs_data_stream ds;
		
char symlink[BEFS_SYMLINK_LEN];
	} 
i_data;

	
struct inode vfs_inode;
};


enum befs_err {
	
BEFS_OK,
	
BEFS_ERR,
	
BEFS_BAD_INODE,
	
BEFS_BT_END,
	
BEFS_BT_EMPTY,
	
BEFS_BT_MATCH,
	
BEFS_BT_OVERFLOW,
	
BEFS_BT_NOT_FOUND
};


/****************************/
/* debug.c */
__printf(2, 3)
void befs_error(const struct super_block *sb, const char *fmt, ...);
__printf(2, 3)
void befs_warning(const struct super_block *sb, const char *fmt, ...);
__printf(2, 3)
void befs_debug(const struct super_block *sb, const char *fmt, ...);

void befs_dump_super_block(const struct super_block *sb, befs_super_block *);
void befs_dump_inode(const struct super_block *sb, befs_inode *);
void befs_dump_index_entry(const struct super_block *sb, befs_disk_btree_super *);
void befs_dump_index_node(const struct super_block *sb, befs_btree_nodehead *);
/****************************/


/* Gets a pointer to the private portion of the super_block
 * structure from the public part
 */

static inline struct befs_sb_info * BEFS_SB(const struct super_block *super) { return (struct befs_sb_info *) super->s_fs_info; }

Contributors

PersonTokensPropCommitsCommitProp
Alan Cox2392.00%150.00%
Fabian Frederick28.00%150.00%
Total25100.00%2100.00%


static inline struct befs_inode_info * BEFS_I(const struct inode *inode) { return container_of(inode, struct befs_inode_info, vfs_inode); }

Contributors

PersonTokensPropCommitsCommitProp
Alan Cox2492.31%133.33%
Rasmus Villemoes13.85%133.33%
Fabian Frederick13.85%133.33%
Total26100.00%3100.00%


static inline befs_blocknr_t iaddr2blockno(struct super_block *sb, const befs_inode_addr *iaddr) { return ((iaddr->allocation_group << BEFS_SB(sb)->ag_shift) + iaddr->start); }

Contributors

PersonTokensPropCommitsCommitProp
Alan Cox3697.30%150.00%
Al Viro12.70%150.00%
Total37100.00%2100.00%


static inline befs_inode_addr blockno2iaddr(struct super_block *sb, befs_blocknr_t blockno) { befs_inode_addr iaddr; iaddr.allocation_group = blockno >> BEFS_SB(sb)->ag_shift; iaddr.start = blockno - (iaddr.allocation_group << BEFS_SB(sb)->ag_shift); iaddr.len = 1; return iaddr; }

Contributors

PersonTokensPropCommitsCommitProp
Alan Cox59100.00%1100.00%
Total59100.00%1100.00%


static inline unsigned int befs_iaddrs_per_block(struct super_block *sb) { return BEFS_SB(sb)->block_size / sizeof(befs_disk_inode_addr); }

Contributors

PersonTokensPropCommitsCommitProp
Alan Cox2596.15%150.00%
Al Viro13.85%150.00%
Total26100.00%2100.00%

#include "endian.h" #endif /* _LINUX_BEFS_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Alan Cox43791.61%17.69%
Fabian Frederick255.24%430.77%
Al Viro61.26%323.08%
Salah Triki51.05%215.38%
Eric W. Biedermann20.42%17.69%
Luis de Bethencourt10.21%17.69%
Rasmus Villemoes10.21%17.69%
Total477100.00%13100.00%
Directory: fs/befs
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.