diff options
author | Enrico Zini <enrico@enricozini.org> | 2009-09-29 15:08:02 +0100 |
---|---|---|
committer | Enrico Zini <enrico@enricozini.org> | 2009-09-29 15:08:02 +0100 |
commit | 006621455482edd8abf46a05292120745f99f7ec (patch) | |
tree | ff1318ccc409a3dd0519035ce2949ac8a48e969e /rep/usr/include/c++/4.3/ext/atomicity.h.gcov.html | |
download | libept-006621455482edd8abf46a05292120745f99f7ec.tar.gz |
Initial import
Diffstat (limited to 'rep/usr/include/c++/4.3/ext/atomicity.h.gcov.html')
-rw-r--r-- | rep/usr/include/c++/4.3/ext/atomicity.h.gcov.html | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/rep/usr/include/c++/4.3/ext/atomicity.h.gcov.html b/rep/usr/include/c++/4.3/ext/atomicity.h.gcov.html new file mode 100644 index 0000000..5ba11ee --- /dev/null +++ b/rep/usr/include/c++/4.3/ext/atomicity.h.gcov.html @@ -0,0 +1,185 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> + +<html lang="en"> + +<head> + <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>LCOV - lcov.info - /usr/include/c++/4.3/ext/atomicity.h</title> + <link rel="stylesheet" type="text/css" href="../../../../../gcov.css"> +</head> + +<body> + + <table width="100%" border=0 cellspacing=0 cellpadding=0> + <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> + <tr><td class="ruler"><img src="../../../../../glass.png" width=3 height=3 alt=""></td></tr> + + <tr> + <td width="100%"> + <table cellpadding=1 border=0 width="100%"> + <tr> + <td class="headerItem" width="20%">Current view:</td> + <td class="headerValue" width="80%" colspan=4><a href="../../../../../index.html">directory</a> - <a href="index.html">usr/include/c++/4.3/ext</a> - atomicity.h</td> + </tr> + <tr> + <td class="headerItem" width="20%">Test:</td> + <td class="headerValue" width="80%" colspan=4>lcov.info</td> + </tr> + <tr> + <td class="headerItem" width="20%">Date:</td> + <td class="headerValue" width="20%">2008-08-14</td> + <td width="20%"></td> + <td class="headerItem" width="20%">Instrumented lines:</td> + <td class="headerValue" width="20%">10</td> + </tr> + <tr> + <td class="headerItem" width="20%">Code covered:</td> + <td class="headerValue" width="20%">0.0 %</td> + <td width="20%"></td> + <td class="headerItem" width="20%">Executed lines:</td> + <td class="headerValue" width="20%">0</td> + </tr> + </table> + </td> + </tr> + <tr><td class="ruler"><img src="../../../../../glass.png" width=3 height=3 alt=""></td></tr> + </table> + + <table cellpadding=0 cellspacing=0 border=0> + <tr> + <td><br></td> + </tr> + <tr> + <td><pre class="source"> +<span class="lineNum"> 1 </span> : // Support for atomic operations -*- C++ -*- +<span class="lineNum"> 2 </span> : +<span class="lineNum"> 3 </span> : // Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. +<span class="lineNum"> 4 </span> : // +<span class="lineNum"> 5 </span> : // This file is part of the GNU ISO C++ Library. This library is free +<span class="lineNum"> 6 </span> : // software; you can redistribute it and/or modify it under the +<span class="lineNum"> 7 </span> : // terms of the GNU General Public License as published by the +<span class="lineNum"> 8 </span> : // Free Software Foundation; either version 2, or (at your option) +<span class="lineNum"> 9 </span> : // any later version. +<span class="lineNum"> 10 </span> : +<span class="lineNum"> 11 </span> : // This library is distributed in the hope that it will be useful, +<span class="lineNum"> 12 </span> : // but WITHOUT ANY WARRANTY; without even the implied warranty of +<span class="lineNum"> 13 </span> : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +<span class="lineNum"> 14 </span> : // GNU General Public License for more details. +<span class="lineNum"> 15 </span> : +<span class="lineNum"> 16 </span> : // You should have received a copy of the GNU General Public License along +<span class="lineNum"> 17 </span> : // with this library; see the file COPYING. If not, write to the Free +<span class="lineNum"> 18 </span> : // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +<span class="lineNum"> 19 </span> : // USA. +<span class="lineNum"> 20 </span> : +<span class="lineNum"> 21 </span> : // As a special exception, you may use this file as part of a free software +<span class="lineNum"> 22 </span> : // library without restriction. Specifically, if other files instantiate +<span class="lineNum"> 23 </span> : // templates or use macros or inline functions from this file, or you compile +<span class="lineNum"> 24 </span> : // this file and link it with other files to produce an executable, this +<span class="lineNum"> 25 </span> : // file does not by itself cause the resulting executable to be covered by +<span class="lineNum"> 26 </span> : // the GNU General Public License. This exception does not however +<span class="lineNum"> 27 </span> : // invalidate any other reasons why the executable file might be covered by +<span class="lineNum"> 28 </span> : // the GNU General Public License. +<span class="lineNum"> 29 </span> : +<span class="lineNum"> 30 </span> : /** @file atomicity.h +<span class="lineNum"> 31 </span> : * This is an internal header file, included by other library headers. +<span class="lineNum"> 32 </span> : * You should not attempt to use it directly. +<span class="lineNum"> 33 </span> : */ +<span class="lineNum"> 34 </span> : +<span class="lineNum"> 35 </span> : #ifndef _GLIBCXX_ATOMICITY_H +<span class="lineNum"> 36 </span> : #define _GLIBCXX_ATOMICITY_H 1 +<span class="lineNum"> 37 </span> : +<span class="lineNum"> 38 </span> : #include <bits/c++config.h> +<span class="lineNum"> 39 </span> : #include <bits/gthr.h> +<span class="lineNum"> 40 </span> : #include <bits/atomic_word.h> +<span class="lineNum"> 41 </span> : +<span class="lineNum"> 42 </span> : _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) +<span class="lineNum"> 43 </span> : +<span class="lineNum"> 44 </span> : // Functions for portable atomic access. +<span class="lineNum"> 45 </span> : // To abstract locking primitives across all thread policies, use: +<span class="lineNum"> 46 </span> : // __exchange_and_add_dispatch +<span class="lineNum"> 47 </span> : // __atomic_add_dispatch +<span class="lineNum"> 48 </span> : #ifdef _GLIBCXX_ATOMIC_BUILTINS +<span class="lineNum"> 49 </span> : static inline _Atomic_word +<span class="lineNum"> 50 </span><span class="lineNoCov"> 0 : __exchange_and_add(volatile _Atomic_word* __mem, int __val)</span> +<span class="lineNum"> 51 </span><span class="lineNoCov"> 0 : { return __sync_fetch_and_add(__mem, __val); }</span> +<span class="lineNum"> 52 </span> : +<span class="lineNum"> 53 </span> : static inline void +<span class="lineNum"> 54 </span> : __atomic_add(volatile _Atomic_word* __mem, int __val) +<span class="lineNum"> 55 </span> : { __sync_fetch_and_add(__mem, __val); } +<span class="lineNum"> 56 </span> : #else +<span class="lineNum"> 57 </span> : _Atomic_word +<span class="lineNum"> 58 </span> : __attribute__ ((__unused__)) +<span class="lineNum"> 59 </span> : __exchange_and_add(volatile _Atomic_word*, int); +<span class="lineNum"> 60 </span> : +<span class="lineNum"> 61 </span> : void +<span class="lineNum"> 62 </span> : __attribute__ ((__unused__)) +<span class="lineNum"> 63 </span> : __atomic_add(volatile _Atomic_word*, int); +<span class="lineNum"> 64 </span> : #endif +<span class="lineNum"> 65 </span> : +<span class="lineNum"> 66 </span> : static inline _Atomic_word +<span class="lineNum"> 67 </span><span class="lineNoCov"> 0 : __exchange_and_add_single(_Atomic_word* __mem, int __val)</span> +<span class="lineNum"> 68 </span> : { +<span class="lineNum"> 69 </span><span class="lineNoCov"> 0 : _Atomic_word __result = *__mem;</span> +<span class="lineNum"> 70 </span><span class="lineNoCov"> 0 : *__mem += __val;</span> +<span class="lineNum"> 71 </span><span class="lineNoCov"> 0 : return __result;</span> +<span class="lineNum"> 72 </span> : } +<span class="lineNum"> 73 </span> : +<span class="lineNum"> 74 </span> : static inline void +<span class="lineNum"> 75 </span> : __atomic_add_single(_Atomic_word* __mem, int __val) +<span class="lineNum"> 76 </span> : { *__mem += __val; } +<span class="lineNum"> 77 </span> : +<span class="lineNum"> 78 </span> : static inline _Atomic_word +<span class="lineNum"> 79 </span> : __attribute__ ((__unused__)) +<span class="lineNum"> 80 </span><span class="lineNoCov"> 0 : __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)</span> +<span class="lineNum"> 81 </span> : { +<span class="lineNum"> 82 </span> : #ifdef __GTHREADS +<span class="lineNum"> 83 </span><span class="lineNoCov"> 0 : if (__gthread_active_p())</span> +<span class="lineNum"> 84 </span><span class="lineNoCov"> 0 : return __exchange_and_add(__mem, __val);</span> +<span class="lineNum"> 85 </span> : else +<span class="lineNum"> 86 </span><span class="lineNoCov"> 0 : return __exchange_and_add_single(__mem, __val);</span> +<span class="lineNum"> 87 </span> : #else +<span class="lineNum"> 88 </span> : return __exchange_and_add_single(__mem, __val); +<span class="lineNum"> 89 </span> : #endif +<span class="lineNum"> 90 </span> : } +<span class="lineNum"> 91 </span> : +<span class="lineNum"> 92 </span> : static inline void +<span class="lineNum"> 93 </span> : __attribute__ ((__unused__)) +<span class="lineNum"> 94 </span> : __atomic_add_dispatch(_Atomic_word* __mem, int __val) +<span class="lineNum"> 95 </span> : { +<span class="lineNum"> 96 </span> : #ifdef __GTHREADS +<span class="lineNum"> 97 </span> : if (__gthread_active_p()) +<span class="lineNum"> 98 </span> : __atomic_add(__mem, __val); +<span class="lineNum"> 99 </span> : else +<span class="lineNum"> 100 </span> : __atomic_add_single(__mem, __val); +<span class="lineNum"> 101 </span> : #else +<span class="lineNum"> 102 </span> : __atomic_add_single(__mem, __val); +<span class="lineNum"> 103 </span> : #endif +<span class="lineNum"> 104 </span> : } +<span class="lineNum"> 105 </span> : +<span class="lineNum"> 106 </span> : _GLIBCXX_END_NAMESPACE +<span class="lineNum"> 107 </span> : +<span class="lineNum"> 108 </span> : // Even if the CPU doesn't need a memory barrier, we need to ensure +<span class="lineNum"> 109 </span> : // that the compiler doesn't reorder memory accesses across the +<span class="lineNum"> 110 </span> : // barriers. +<span class="lineNum"> 111 </span> : #ifndef _GLIBCXX_READ_MEM_BARRIER +<span class="lineNum"> 112 </span> : #define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("":::"memory") +<span class="lineNum"> 113 </span> : #endif +<span class="lineNum"> 114 </span> : #ifndef _GLIBCXX_WRITE_MEM_BARRIER +<span class="lineNum"> 115 </span> : #define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("":::"memory") +<span class="lineNum"> 116 </span> : #endif +<span class="lineNum"> 117 </span> : +<span class="lineNum"> 118 </span> : #endif +</pre> + </td> + </tr> + </table> + <br> + + <table width="100%" border=0 cellspacing=0 cellpadding=0> + <tr><td class="ruler"><img src="../../../../../glass.png" width=3 height=3 alt=""></td></tr> + <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> + </table> + <br> + +</body> +</html> |