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 ]

Diff markup

Differences between /linux/fs/xfs/linux-2.6/sv.h (Version 2.6.11.8) and /linux/fs/xfs/linux-2.6/sv.h (Version 2.6.25.8)


  1 /*                                                  1 /*
  2  * Copyright (c) 2000-2002 Silicon Graphics, I !!   2  * Copyright (c) 2000-2002,2005 Silicon Graphics, Inc.
                                                   >>   3  * All Rights Reserved.
  3  *                                                  4  *
  4  * This program is free software; you can redi !!   5  * This program is free software; you can redistribute it and/or
  5  * under the terms of version 2 of the GNU Gen !!   6  * modify it under the terms of the GNU General Public License as
  6  * published by the Free Software Foundation.       7  * published by the Free Software Foundation.
  7  *                                                  8  *
  8  * This program is distributed in the hope tha !!   9  * This program is distributed in the hope that it would be useful,
  9  * WITHOUT ANY WARRANTY; without even the impl !!  10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR !!  11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 11  *                                             !!  12  * GNU General Public License for more details.
 12  * Further, this software is distributed witho !!  13  *
 13  * free of the rightful claim of any third per !!  14  * You should have received a copy of the GNU General Public License
 14  * or the like.  Any license provided herein,  !!  15  * along with this program; if not, write the Free Software Foundation,
 15  * otherwise, applies only to this software fi !!  16  * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 16  * any, provided herein do not apply to combin << 
 17  * other software, or any other product whatso << 
 18  *                                             << 
 19  * You should have received a copy of the GNU  << 
 20  * with this program; if not, write the Free S << 
 21  * Temple Place - Suite 330, Boston MA 02111-1 << 
 22  *                                             << 
 23  * Contact information: Silicon Graphics, Inc. << 
 24  * Mountain View, CA  94043, or:               << 
 25  *                                             << 
 26  * http://www.sgi.com                          << 
 27  *                                             << 
 28  * For further information regarding this noti << 
 29  *                                             << 
 30  * http://oss.sgi.com/projects/GenInfo/SGIGPLN << 
 31  */                                                17  */
 32 #ifndef __XFS_SUPPORT_SV_H__                       18 #ifndef __XFS_SUPPORT_SV_H__
 33 #define __XFS_SUPPORT_SV_H__                       19 #define __XFS_SUPPORT_SV_H__
 34                                                    20 
 35 #include <linux/wait.h>                            21 #include <linux/wait.h>
 36 #include <linux/sched.h>                           22 #include <linux/sched.h>
 37 #include <linux/spinlock.h>                        23 #include <linux/spinlock.h>
 38                                                    24 
 39 /*                                                 25 /*
 40  * Synchronisation variables.                      26  * Synchronisation variables.
 41  *                                                 27  *
 42  * (Parameters "pri", "svf" and "rts" are not      28  * (Parameters "pri", "svf" and "rts" are not implemented)
 43  */                                                29  */
 44                                                    30 
 45 typedef struct sv_s {                              31 typedef struct sv_s {
 46         wait_queue_head_t waiters;                 32         wait_queue_head_t waiters;
 47 } sv_t;                                            33 } sv_t;
 48                                                    34 
 49 #define SV_FIFO         0x0             /* sv_     35 #define SV_FIFO         0x0             /* sv_t is FIFO type */
 50 #define SV_LIFO         0x2             /* sv_     36 #define SV_LIFO         0x2             /* sv_t is LIFO type */
 51 #define SV_PRIO         0x4             /* sv_     37 #define SV_PRIO         0x4             /* sv_t is PRIO type */
 52 #define SV_KEYED        0x6             /* sv_     38 #define SV_KEYED        0x6             /* sv_t is KEYED type */
 53 #define SV_DEFAULT      SV_FIFO                    39 #define SV_DEFAULT      SV_FIFO
 54                                                    40 
 55                                                    41 
 56 static inline void _sv_wait(sv_t *sv, spinlock     42 static inline void _sv_wait(sv_t *sv, spinlock_t *lock, int state,
 57                              unsigned long tim     43                              unsigned long timeout)
 58 {                                                  44 {
 59         DECLARE_WAITQUEUE(wait, current);          45         DECLARE_WAITQUEUE(wait, current);
 60                                                    46 
 61         add_wait_queue_exclusive(&sv->waiters,     47         add_wait_queue_exclusive(&sv->waiters, &wait);
 62         __set_current_state(state);                48         __set_current_state(state);
 63         spin_unlock(lock);                         49         spin_unlock(lock);
 64                                                    50 
 65         schedule_timeout(timeout);                 51         schedule_timeout(timeout);
 66                                                    52 
 67         remove_wait_queue(&sv->waiters, &wait)     53         remove_wait_queue(&sv->waiters, &wait);
 68 }                                                  54 }
 69                                                    55 
 70 #define init_sv(sv,type,name,flag) \           << 
 71         init_waitqueue_head(&(sv)->waiters)    << 
 72 #define sv_init(sv,flag,name) \                    56 #define sv_init(sv,flag,name) \
 73         init_waitqueue_head(&(sv)->waiters)        57         init_waitqueue_head(&(sv)->waiters)
 74 #define sv_destroy(sv) \                           58 #define sv_destroy(sv) \
 75         /*NOTHING*/                                59         /*NOTHING*/
 76 #define sv_wait(sv, pri, lock, s) \                60 #define sv_wait(sv, pri, lock, s) \
 77         _sv_wait(sv, lock, TASK_UNINTERRUPTIBL     61         _sv_wait(sv, lock, TASK_UNINTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT)
 78 #define sv_wait_sig(sv, pri, lock, s)   \          62 #define sv_wait_sig(sv, pri, lock, s)   \
 79         _sv_wait(sv, lock, TASK_INTERRUPTIBLE,     63         _sv_wait(sv, lock, TASK_INTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT)
 80 #define sv_timedwait(sv, pri, lock, s, svf, ts     64 #define sv_timedwait(sv, pri, lock, s, svf, ts, rts) \
 81         _sv_wait(sv, lock, TASK_UNINTERRUPTIBL     65         _sv_wait(sv, lock, TASK_UNINTERRUPTIBLE, timespec_to_jiffies(ts))
 82 #define sv_timedwait_sig(sv, pri, lock, s, svf     66 #define sv_timedwait_sig(sv, pri, lock, s, svf, ts, rts) \
 83         _sv_wait(sv, lock, TASK_INTERRUPTIBLE,     67         _sv_wait(sv, lock, TASK_INTERRUPTIBLE, timespec_to_jiffies(ts))
 84 #define sv_signal(sv) \                            68 #define sv_signal(sv) \
 85         wake_up(&(sv)->waiters)                    69         wake_up(&(sv)->waiters)
 86 #define sv_broadcast(sv) \                         70 #define sv_broadcast(sv) \
 87         wake_up_all(&(sv)->waiters)                71         wake_up_all(&(sv)->waiters)
 88                                                    72 
 89 #endif /* __XFS_SUPPORT_SV_H__ */                  73 #endif /* __XFS_SUPPORT_SV_H__ */
 90                                                    74 
  This page was automatically generated by the LXR engine.