~ubuntu-branches/ubuntu/trusty/eglibc/trusty

« back to all changes in this revision

Viewing changes to .pc/hurd-i386/tg-extern_inline.diff/sysdeps/mach/powerpc/machine-lock.h

  • Committer: Package Import Robot
  • Author(s): Adam Conrad
  • Date: 2013-01-10 18:39:35 UTC
  • mfrom: (1.5.2) (4.4.24 experimental)
  • Revision ID: package-import@ubuntu.com-20130110183935-afsgfxkmg7wk5eaj
Tags: 2.17-0ubuntu1
* Merge with Debian, bringing in a new upstream and many small fixes:
  - patches/any/cvs-malloc-deadlock.diff: Dropped, merged upstream.
  - patches/ubuntu/lddebug-scopes.diff: Rebase for upstream changes.
  - patches/ubuntu/local-CVE-2012-3406.diff: Rebased against upstream.
  - patches/ubuntu/no-asm-mtune-i686.diff: Fixed in recent binutils.
* This upstream merge fixes a nasty hang in pulseaudio (LP: #1085342)
* Bump MIN_KERNEL_SUPPORTED to 2.6.32 on ARM, now that we no longer
  have to support shonky 2.6.31 kernels on imx51 babbage builders.
* Drop patches/ubuntu/local-disable-nscd-host-caching.diff, as these
  issues were apparently resolved upstream a while ago (LP: #613662)
* Fix the compiled-in bug URL to point to launchpad.net, not Debian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Machine-specific definition for spin locks.  PowerPC version.
2
 
   Copyright (C) 1994-2012 Free Software Foundation, Inc.
3
 
   This file is part of the GNU C Library.
4
 
 
5
 
   The GNU C Library is free software; you can redistribute it and/or
6
 
   modify it under the terms of the GNU Lesser General Public
7
 
   License as published by the Free Software Foundation; either
8
 
   version 2.1 of the License, or (at your option) any later version.
9
 
 
10
 
   The GNU C Library is distributed in the hope that it will be useful,
11
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
 
   Lesser General Public License for more details.
14
 
 
15
 
   You should have received a copy of the GNU Lesser General Public
16
 
   License along with the GNU C Library; if not, see
17
 
   <http://www.gnu.org/licenses/>.  */
18
 
 
19
 
#ifndef _MACHINE_LOCK_H
20
 
#define _MACHINE_LOCK_H
21
 
 
22
 
/* The type of a spin lock variable.  */
23
 
 
24
 
typedef volatile long int __spin_lock_t;
25
 
 
26
 
/* Value to initialize `__spin_lock_t' variables to.  */
27
 
 
28
 
#define __SPIN_LOCK_INITIALIZER 0L
29
 
 
30
 
 
31
 
#ifndef _EXTERN_INLINE
32
 
#define _EXTERN_INLINE __extern_inline
33
 
#endif
34
 
 
35
 
/* Unlock LOCK.  */
36
 
 
37
 
_EXTERN_INLINE void
38
 
__spin_unlock (__spin_lock_t *__lock)
39
 
{
40
 
  long int __locked;
41
 
  __asm__ __volatile__ ("\
42
 
0:      lwarx   %0,0,%1\n\
43
 
        stwcx.  %2,0,%1\n\
44
 
        bne-    0b\n\
45
 
" : "=&r" (__locked) : "r" (__lock), "r" (0) : "cr0");
46
 
}
47
 
 
48
 
/* Try to lock LOCK; return nonzero if we locked it, zero if another has.  */
49
 
 
50
 
_EXTERN_INLINE int
51
 
__spin_try_lock (register __spin_lock_t *__lock)
52
 
{
53
 
  long int __rtn;
54
 
  __asm__ __volatile__ ("\
55
 
0:      lwarx   %0,0,%1\n\
56
 
        stwcx.  %2,0,%1\n\
57
 
        bne-    0b\n\
58
 
" : "=&r" (__rtn) : "r" (__lock), "r" (1) : "cr0");
59
 
  return !__rtn;
60
 
}
61
 
 
62
 
/* Return nonzero if LOCK is locked.  */
63
 
 
64
 
_EXTERN_INLINE int
65
 
__spin_lock_locked (__spin_lock_t *__lock)
66
 
{
67
 
  long int __rtn;
68
 
  __asm__ __volatile__ ("\
69
 
0:      lwarx   %0,0,%1\n\
70
 
        stwcx.  %0,0,%1\n\
71
 
        bne-    0b\n\
72
 
" : "=&r" (__rtn) : "r" (__lock) : "cr0");
73
 
  return __rtn;
74
 
}
75
 
 
76
 
 
77
 
#endif /* machine-lock.h */