LCOV - code coverage report
Current view: top level - include/linux - semaphore.h (source / functions) Hit Total Coverage
Test: btrfstest.info Lines: 1 1 100.0 %
Date: 2014-11-28 Functions: 0 0 -

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2008 Intel Corporation
       3             :  * Author: Matthew Wilcox <willy@linux.intel.com>
       4             :  *
       5             :  * Distributed under the terms of the GNU GPL, version 2
       6             :  *
       7             :  * Please see kernel/semaphore.c for documentation of these functions
       8             :  */
       9             : #ifndef __LINUX_SEMAPHORE_H
      10             : #define __LINUX_SEMAPHORE_H
      11             : 
      12             : #include <linux/list.h>
      13             : #include <linux/spinlock.h>
      14             : 
      15             : /* Please don't access any members of this structure directly */
      16             : struct semaphore {
      17             :         raw_spinlock_t          lock;
      18             :         unsigned int            count;
      19             :         struct list_head        wait_list;
      20             : };
      21             : 
      22             : #define __SEMAPHORE_INITIALIZER(name, n)                                \
      23             : {                                                                       \
      24             :         .lock           = __RAW_SPIN_LOCK_UNLOCKED((name).lock),        \
      25             :         .count          = n,                                            \
      26             :         .wait_list      = LIST_HEAD_INIT((name).wait_list),             \
      27             : }
      28             : 
      29             : #define DEFINE_SEMAPHORE(name)  \
      30             :         struct semaphore name = __SEMAPHORE_INITIALIZER(name, 1)
      31             : 
      32             : static inline void sema_init(struct semaphore *sem, int val)
      33             : {
      34             :         static struct lock_class_key __key;
      35         221 :         *sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val);
      36             :         lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0);
      37             : }
      38             : 
      39             : extern void down(struct semaphore *sem);
      40             : extern int __must_check down_interruptible(struct semaphore *sem);
      41             : extern int __must_check down_killable(struct semaphore *sem);
      42             : extern int __must_check down_trylock(struct semaphore *sem);
      43             : extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
      44             : extern void up(struct semaphore *sem);
      45             : 
      46             : #endif /* __LINUX_SEMAPHORE_H */

Generated by: LCOV version 1.10