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-2003 Silicon Graphics, Inc.  All Rights Reserved.
  3  *
  4  * This program is free software; you can redistribute it and/or modify it
  5  * under the terms of version 2 of the GNU General Public License as
  6  * published by the Free Software Foundation.
  7  *
  8  * This program is distributed in the hope that it would be useful, but
  9  * WITHOUT ANY WARRANTY; without even the implied warranty of
 10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 11  *
 12  * Further, this software is distributed without any warranty that it is
 13  * free of the rightful claim of any third person regarding infringement
 14  * or the like.  Any license provided herein, whether implied or
 15  * otherwise, applies only to this software file.  Patent licenses, if
 16  * any, provided herein do not apply to combinations of this program with
 17  * other software, or any other product whatsoever.
 18  *
 19  * You should have received a copy of the GNU General Public License along
 20  * with this program; if not, write the Free Software Foundation, Inc., 59
 21  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
 22  *
 23  * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 24  * Mountain View, CA  94043, or:
 25  *
 26  * http://www.sgi.com
 27  *
 28  * For further information regarding this notice, see:
 29  *
 30  * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
 31  */
 32 #ifndef __XFS_RW_H__
 33 #define __XFS_RW_H__
 34 
 35 struct xfs_buf;
 36 struct xfs_inode;
 37 struct xfs_mount;
 38 
 39 /*
 40  * Maximum count of bmaps used by read and write paths.
 41  */
 42 #define XFS_MAX_RW_NBMAPS       4
 43 
 44 /*
 45  * Counts of readahead buffers to use based on physical memory size.
 46  * None of these should be more than XFS_MAX_RW_NBMAPS.
 47  */
 48 #define XFS_RW_NREADAHEAD_16MB  2
 49 #define XFS_RW_NREADAHEAD_32MB  3
 50 #define XFS_RW_NREADAHEAD_K32   4
 51 #define XFS_RW_NREADAHEAD_K64   4
 52 
 53 /*
 54  * Maximum size of a buffer that we\'ll map.  Making this
 55  * too big will degrade performance due to the number of
 56  * pages which need to be gathered.  Making it too small
 57  * will prevent us from doing large I/O\'s to hardware that
 58  * needs it.
 59  *
 60  * This is currently set to 512 KB.
 61  */
 62 #define XFS_MAX_BMAP_LEN_BB     1024
 63 #define XFS_MAX_BMAP_LEN_BYTES  524288
 64 
 65 /*
 66  * Convert the given file system block to a disk block.
 67  * We have to treat it differently based on whether the
 68  * file is a real time file or not, because the bmap code
 69  * does.
 70  */
 71 #if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_FSB_TO_DB)
 72 xfs_daddr_t xfs_fsb_to_db(struct xfs_inode *ip, xfs_fsblock_t fsb);
 73 #define XFS_FSB_TO_DB(ip,fsb)   xfs_fsb_to_db(ip,fsb)
 74 #else
 75 #define XFS_FSB_TO_DB(ip,fsb) \
 76                 (((ip)->i_d.di_flags & XFS_DIFLAG_REALTIME) ? \
 77                  (xfs_daddr_t)XFS_FSB_TO_BB((ip)->i_mount, (fsb)) : \
 78                  XFS_FSB_TO_DADDR((ip)->i_mount, (fsb)))
 79 #endif
 80 
 81 #define XFS_FSB_TO_DB_IO(io,fsb) \
 82                 (((io)->io_flags & XFS_IOCORE_RT) ? \
 83                  XFS_FSB_TO_BB((io)->io_mount, (fsb)) : \
 84                  XFS_FSB_TO_DADDR((io)->io_mount, (fsb)))
 85 
 86 /*
 87  * Prototypes for functions in xfs_rw.c.
 88  */
 89 
 90 int
 91 xfs_write_clear_setuid(
 92         struct xfs_inode        *ip);
 93 
 94 int
 95 xfs_bwrite(
 96         struct xfs_mount        *mp,
 97         struct xfs_buf          *bp);
 98 
 99 int
100 xfs_bioerror(
101         struct xfs_buf          *b);
102 
103 int
104 xfs_bioerror_relse(
105         struct xfs_buf          *b);
106 
107 int
108 xfs_read_buf(
109         struct xfs_mount        *mp,
110         xfs_buftarg_t           *target,
111         xfs_daddr_t             blkno,
112         int                     len,
113         uint                    flags,
114         struct xfs_buf          **bpp);
115 
116 void
117 xfs_ioerror_alert(
118         char                    *func,
119         struct xfs_mount        *mp,
120         xfs_buf_t               *bp,
121         xfs_daddr_t             blkno);
122 
123 
124 /*
125  * Prototypes for functions in xfs_vnodeops.c.
126  */
127 
128 int
129 xfs_rwlock(
130         bhv_desc_t              *bdp,
131         vrwlock_t               write_lock);
132 
133 void
134 xfs_rwunlock(
135         bhv_desc_t              *bdp,
136         vrwlock_t               write_lock);
137 
138 int
139 xfs_change_file_space(
140         bhv_desc_t              *bdp,
141         int                     cmd,
142         xfs_flock64_t           *bf,
143         xfs_off_t               offset,
144         cred_t                  *credp,
145         int                     flags);
146 
147 int
148 xfs_set_dmattrs(
149         bhv_desc_t              *bdp,
150         u_int                   evmask,
151         u_int16_t               state,
152         cred_t                  *credp);
153 
154 #endif /* __XFS_RW_H__ */
155 
  This page was automatically generated by the LXR engine.