~ubuntu-branches/ubuntu/edgy/xfsprogs/edgy

« back to all changes in this revision

Viewing changes to libxfs/xfs_rtbit.c

  • Committer: Bazaar Package Importer
  • Author(s): Nathan Scott
  • Date: 2004-07-28 21:11:38 UTC
  • Revision ID: james.westby@ubuntu.com-20040728211138-0v4pdnunnp7na5lm
Tags: 2.6.20-1
* New upstream release.
* Fix xfs_io segfault on non-XFS files.  (closes: #260470)
* Fix packaging botch, deleted files included.  (closes: #260491)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (c) 2000 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
 
 
33
 
/*
34
 
 * XFS bit manipulation routines, used only in realtime code.
35
 
 */
36
 
 
37
 
#include <xfs.h>
38
 
 
39
 
/*
40
 
 * xfs_lowbit32: get low bit set out of 32-bit argument, -1 if none set.
41
 
 */
42
 
int
43
 
xfs_lowbit32(
44
 
        __uint32_t      v)
45
 
{
46
 
        int             i;
47
 
 
48
 
        if (v & 0x0000ffff)
49
 
                if (v & 0x000000ff)
50
 
                        i = 0;
51
 
                else
52
 
                        i = 8;
53
 
        else if (v & 0xffff0000)
54
 
                if (v & 0x00ff0000)
55
 
                        i = 16;
56
 
                else
57
 
                        i = 24;
58
 
        else
59
 
                return -1;
60
 
        return i + xfs_lowbit[(v >> i) & 0xff];
61
 
}