Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
  3  * All Rights Reserved.
  4  *
  5  * This program is free software; you can redistribute it and/or
  6  * modify it under the terms of the GNU General Public License as
  7  * published by the Free Software Foundation.
  8  *
  9  * This program is distributed in the hope that it would be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 12  * GNU General Public License for more details.
 13  *
 14  * You should have received a copy of the GNU General Public License
 15  * along with this program; if not, write the Free Software Foundation,
 16  * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 17  */
 18 #ifndef __XFS_DIR2_H__
 19 #define __XFS_DIR2_H__
 20 
 21 struct uio;
 22 struct xfs_dabuf;
 23 struct xfs_da_args;
 24 struct xfs_dir2_put_args;
 25 struct xfs_bmap_free;
 26 struct xfs_inode;
 27 struct xfs_mount;
 28 struct xfs_trans;
 29 
 30 /*
 31  * Directory version 2.
 32  * There are 4 possible formats:
 33  *      shortform
 34  *      single block - data with embedded leaf at the end
 35  *      multiple data blocks, single leaf+freeindex block
 36  *      data blocks, node&leaf blocks (btree), freeindex blocks
 37  *
 38  *      The shortform format is in xfs_dir2_sf.h.
 39  *      The single block format is in xfs_dir2_block.h.
 40  *      The data block format is in xfs_dir2_data.h.
 41  *      The leaf and freeindex block formats are in xfs_dir2_leaf.h.
 42  *      Node blocks are the same as the other version, in xfs_da_btree.h.
 43  */
 44 
 45 /*
 46  * Byte offset in data block and shortform entry.
 47  */
 48 typedef __uint16_t      xfs_dir2_data_off_t;
 49 #define NULLDATAOFF     0xffffU
 50 typedef uint            xfs_dir2_data_aoff_t;   /* argument form */
 51 
 52 /*
 53  * Directory block number (logical dirblk in file)
 54  */
 55 typedef __uint32_t      xfs_dir2_db_t;
 56 
 57 /*
 58  * Byte offset in a directory.
 59  */
 60 typedef xfs_off_t       xfs_dir2_off_t;
 61 
 62 /*
 63  * Generic directory interface routines
 64  */
 65 extern void xfs_dir_startup(void);
 66 extern void xfs_dir_mount(struct xfs_mount *mp);
 67 extern int xfs_dir_isempty(struct xfs_inode *dp);
 68 extern int xfs_dir_init(struct xfs_trans *tp, struct xfs_inode *dp,
 69                                 struct xfs_inode *pdp);
 70 extern int xfs_dir_createname(struct xfs_trans *tp, struct xfs_inode *dp,
 71                                 char *name, int namelen, xfs_ino_t inum,
 72                                 xfs_fsblock_t *first,
 73                                 struct xfs_bmap_free *flist, xfs_extlen_t tot);
 74 extern int xfs_dir_lookup(struct xfs_trans *tp, struct xfs_inode *dp,
 75                                 char *name, int namelen, xfs_ino_t *inum);
 76 extern int xfs_dir_removename(struct xfs_trans *tp, struct xfs_inode *dp,
 77                                 char *name, int namelen, xfs_ino_t ino,
 78                                 xfs_fsblock_t *first,
 79                                 struct xfs_bmap_free *flist, xfs_extlen_t tot);
 80 extern int xfs_dir_replace(struct xfs_trans *tp, struct xfs_inode *dp,
 81                                 char *name, int namelen, xfs_ino_t inum,
 82                                 xfs_fsblock_t *first,
 83                                 struct xfs_bmap_free *flist, xfs_extlen_t tot);
 84 extern int xfs_dir_canenter(struct xfs_trans *tp, struct xfs_inode *dp,
 85                                 char *name, int namelen);
 86 extern int xfs_dir_ino_validate(struct xfs_mount *mp, xfs_ino_t ino);
 87 
 88 /*
 89  * Utility routines for v2 directories.
 90  */
 91 extern int xfs_dir2_grow_inode(struct xfs_da_args *args, int space,
 92                                 xfs_dir2_db_t *dbp);
 93 extern int xfs_dir2_isblock(struct xfs_trans *tp, struct xfs_inode *dp,
 94                                 int *vp);
 95 extern int xfs_dir2_isleaf(struct xfs_trans *tp, struct xfs_inode *dp,
 96                                 int *vp);
 97 extern int xfs_dir2_shrink_inode(struct xfs_da_args *args, xfs_dir2_db_t db,
 98                                 struct xfs_dabuf *bp);
 99 
100 #endif  /* __XFS_DIR2_H__ */
101 
  This page was automatically generated by the LXR engine.