~n-muench/ubuntu/oneiric/open-vm-tools/open-vm-tools.fix-836277

« back to all changes in this revision

Viewing changes to modules/linux/vmci/compat_spinlock.h

  • Committer: Bazaar Package Importer
  • Author(s): Devid Antonio Filoni
  • Date: 2008-08-15 21:21:40 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080815212140-05fhxj8wroosysmj
Tags: 2008.08.08-109361-1ubuntu1
* Merge from Debian unstable (LP: #258393), remaining Ubuntu change:
  - add ubuntu_toolchain_FTBFS.dpatch patch, fix FTBFS
* Update ubuntu_toolchain_FTBFS.dpatch patch for the new version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*********************************************************
 
2
 * Copyright (C) 2005 VMware, Inc. All rights reserved.
 
3
 *
 
4
 * This program is free software; you can redistribute it and/or modify it
 
5
 * under the terms of the GNU General Public License as published by the
 
6
 * Free Software Foundation version 2 and no later version.
 
7
 *
 
8
 * This program is distributed in the hope that it will be useful, but
 
9
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 
10
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 
11
 * for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU General Public License along
 
14
 * with this program; if not, write to the Free Software Foundation, Inc.,
 
15
 * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 
16
 *
 
17
 *********************************************************/
 
18
 
 
19
#ifndef __COMPAT_SPINLOCK_H__
 
20
#   define __COMPAT_SPINLOCK_H__
 
21
 
 
22
 
 
23
/*
 
24
 * The spin_lock() API appeared in 2.1.25 in asm/smp_lock.h
 
25
 * It moved in 2.1.30 to asm/spinlock.h
 
26
 * It moved again in 2.3.18 to linux/spinlock.h
 
27
 *
 
28
 *   --hpreg
 
29
 */
 
30
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 3, 18)
 
31
#   include <linux/spinlock.h>
 
32
#else
 
33
#   if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 1, 30)
 
34
#      include <asm/spinlock.h>
 
35
#   else
 
36
typedef struct {} spinlock_t;
 
37
#      define spin_lock_init(lock)
 
38
#      define spin_lock(lock)
 
39
#      define spin_unlock(lock)
 
40
#      define spin_lock_irqsave(lock, flags) do {      \
 
41
                    save_flags(flags);                 \
 
42
                    cli();                             \
 
43
                    spin_lock(lock);                   \
 
44
                 } while (0)
 
45
#      define spin_unlock_irqrestore(lock, flags) do { \
 
46
                    spin_unlock(lock);                 \
 
47
                    restore_flags(flags);              \
 
48
                 } while (0)
 
49
#   endif
 
50
#endif
 
51
 
 
52
 
 
53
/*
 
54
 * Preempt support was added during 2.5.x development cycle, and later
 
55
 * it was backported to 2.4.x.  In 2.4.x backport these definitions
 
56
 * live in linux/spinlock.h, that's why we put them here (in 2.6.x they
 
57
 * are defined in linux/preempt.h which is included by linux/spinlock.h).
 
58
 */
 
59
#ifdef CONFIG_PREEMPT
 
60
#define compat_preempt_disable() preempt_disable()
 
61
#define compat_preempt_enable()  preempt_enable()
 
62
#else
 
63
#define compat_preempt_disable() do { } while (0)
 
64
#define compat_preempt_enable()  do { } while (0)
 
65
#endif
 
66
 
 
67
 
 
68
#endif /* __COMPAT_SPINLOCK_H__ */