Sophie

Sophie

distrib > Mandriva > 2007.0 > x86_64 > media > main-release > by-pkgid > 926d2d1e3111287cee1b0a4fad4fb4f6 > files > 85

lib64dbus-1_3-devel-0.92-6mdv2007.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>dbus-internals.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.15 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>dbus-internals.h</h1><div class="fragment"><pre>00001 <font class="comment">/* -*- mode: C; c-file-style: "gnu" -*- */</font>
00002 <font class="comment">/* dbus-internals.h  random utility stuff (internal to D-BUS implementation)</font>
00003 <font class="comment"> *</font>
00004 <font class="comment"> * Copyright (C) 2002, 2003  Red Hat, Inc.</font>
00005 <font class="comment"> *</font>
00006 <font class="comment"> * Licensed under the Academic Free License version 2.0</font>
00007 <font class="comment"> * </font>
00008 <font class="comment"> * This program is free software; you can redistribute it and/or modify</font>
00009 <font class="comment"> * it under the terms of the GNU General Public License as published by</font>
00010 <font class="comment"> * the Free Software Foundation; either version 2 of the License, or</font>
00011 <font class="comment"> * (at your option) any later version.</font>
00012 <font class="comment"> *</font>
00013 <font class="comment"> * This program is distributed in the hope that it will be useful,</font>
00014 <font class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00015 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
00016 <font class="comment"> * GNU General Public License for more details.</font>
00017 <font class="comment"> * </font>
00018 <font class="comment"> * You should have received a copy of the GNU General Public License</font>
00019 <font class="comment"> * along with this program; if not, write to the Free Software</font>
00020 <font class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</font>
00021 <font class="comment"> *</font>
00022 <font class="comment"> */</font>
00023 <font class="preprocessor">#ifdef DBUS_INSIDE_DBUS_H</font>
00024 <font class="preprocessor"></font><font class="preprocessor">#error "You can't include dbus-internals.h in the public header dbus.h"</font>
00025 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00026 <font class="preprocessor"></font>
00027 <font class="preprocessor">#ifndef DBUS_INTERNALS_H</font>
00028 <font class="preprocessor"></font><font class="preprocessor">#define DBUS_INTERNALS_H</font>
00029 <font class="preprocessor"></font>
00030 <font class="preprocessor">#include &lt;config.h&gt;</font>
00031 
00032 <font class="preprocessor">#include &lt;dbus/dbus-memory.h&gt;</font>
00033 <font class="preprocessor">#include &lt;dbus/dbus-types.h&gt;</font>
00034 <font class="preprocessor">#include &lt;dbus/dbus-errors.h&gt;</font>
00035 <font class="preprocessor">#include &lt;dbus/dbus-sysdeps.h&gt;</font>
00036 <font class="preprocessor">#include &lt;dbus/dbus-threads.h&gt;</font>
00037 
00038 DBUS_BEGIN_DECLS;
00039 
00040 <font class="keywordtype">void</font> _dbus_warn               (<font class="keyword">const</font> <font class="keywordtype">char</font> *format,
00041                                ...) _DBUS_GNUC_PRINTF (1, 2);
00042 <font class="keywordtype">void</font> _dbus_verbose_real       (<font class="keyword">const</font> <font class="keywordtype">char</font> *format,
00043                                ...) _DBUS_GNUC_PRINTF (1, 2);
00044 <font class="keywordtype">void</font> _dbus_verbose_reset_real (<font class="keywordtype">void</font>);
00045 
00046 <font class="preprocessor">#if defined (__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)</font>
00047 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_FUNCTION_NAME __func__</font>
00048 <font class="preprocessor"></font><font class="preprocessor">#elif defined(__GNUC__)</font>
00049 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_FUNCTION_NAME __FUNCTION__</font>
00050 <font class="preprocessor"></font><font class="preprocessor">#else</font>
00051 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_FUNCTION_NAME "unknown function"</font>
00052 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00053 <font class="preprocessor"></font>
00054 <font class="comment">/*</font>
00055 <font class="comment"> * (code from GLib)</font>
00056 <font class="comment"> * </font>
00057 <font class="comment"> * The _DBUS_LIKELY and _DBUS_UNLIKELY macros let the programmer give hints to </font>
00058 <font class="comment"> * the compiler about the expected result of an expression. Some compilers</font>
00059 <font class="comment"> * can use this information for optimizations.</font>
00060 <font class="comment"> *</font>
00061 <font class="comment"> * The _DBUS_BOOLEAN_EXPR macro is intended to trigger a gcc warning when</font>
00062 <font class="comment"> * putting assignments in the macro arg</font>
00063 <font class="comment"> */</font>
00064 <font class="preprocessor">#if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt; 2) &amp;&amp; defined(__OPTIMIZE__)</font>
00065 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_BOOLEAN_EXPR(expr)                \</font>
00066 <font class="preprocessor"> __extension__ ({                               \</font>
00067 <font class="preprocessor">   int _dbus_boolean_var_;                      \</font>
00068 <font class="preprocessor">   if (expr)                                    \</font>
00069 <font class="preprocessor">      _dbus_boolean_var_ = 1;                   \</font>
00070 <font class="preprocessor">   else                                         \</font>
00071 <font class="preprocessor">      _dbus_boolean_var_ = 0;                   \</font>
00072 <font class="preprocessor">   _dbus_boolean_var_;                          \</font>
00073 <font class="preprocessor">})</font>
00074 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_LIKELY(expr) (__builtin_expect (_DBUS_BOOLEAN_EXPR(expr), 1))</font>
00075 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_UNLIKELY(expr) (__builtin_expect (_DBUS_BOOLEAN_EXPR(expr), 0))</font>
00076 <font class="preprocessor"></font><font class="preprocessor">#else</font>
00077 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_LIKELY(expr) (expr)</font>
00078 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_UNLIKELY(expr) (expr)</font>
00079 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00080 <font class="preprocessor"></font>
00081 <font class="preprocessor">#ifdef DBUS_ENABLE_VERBOSE_MODE</font>
00082 <font class="preprocessor"></font><font class="preprocessor">#  define _dbus_verbose _dbus_verbose_real</font>
00083 <font class="preprocessor"></font><font class="preprocessor">#  define _dbus_verbose_reset _dbus_verbose_reset_real</font>
00084 <font class="preprocessor"></font><font class="preprocessor">#else</font>
00085 <font class="preprocessor"></font><font class="preprocessor">#  ifdef HAVE_ISO_VARARGS</font>
00086 <font class="preprocessor"></font><font class="preprocessor">#    define _dbus_verbose(...)</font>
00087 <font class="preprocessor"></font><font class="preprocessor">#  elif defined (HAVE_GNUC_VARARGS)</font>
00088 <font class="preprocessor"></font><font class="preprocessor">#    define _dbus_verbose(format...)</font>
00089 <font class="preprocessor"></font><font class="preprocessor">#  else</font>
00090 <font class="preprocessor"></font><font class="preprocessor">#    error "This compiler does not support varargs macros and thus verbose mode can't be disabled meaningfully"</font>
00091 <font class="preprocessor"></font><font class="preprocessor">#  endif</font>
00092 <font class="preprocessor"></font><font class="preprocessor">#  define _dbus_verbose_reset()</font>
00093 <font class="preprocessor"></font><font class="preprocessor">#endif </font><font class="comment">/* !DBUS_ENABLE_VERBOSE_MODE */</font>
00094 
00095 <font class="keyword">const</font> <font class="keywordtype">char</font>* _dbus_strerror (<font class="keywordtype">int</font> error_number);
00096 
00097 <font class="preprocessor">#ifdef DBUS_DISABLE_ASSERT</font>
00098 <font class="preprocessor"></font><font class="preprocessor">#define _dbus_assert(condition)</font>
00099 <font class="preprocessor"></font><font class="preprocessor">#else</font>
00100 <font class="preprocessor"></font><font class="keywordtype">void</font> _dbus_real_assert (dbus_bool_t  condition,
00101                         <font class="keyword">const</font> <font class="keywordtype">char</font>  *condition_text,
00102                         <font class="keyword">const</font> <font class="keywordtype">char</font>  *file,
00103                         <font class="keywordtype">int</font>          line);
<a name="l00104"></a><a class="code" href="group__DBusInternalsUtils.html#a131">00104</a> <font class="preprocessor">#define _dbus_assert(condition)                                         \</font>
00105 <font class="preprocessor">  _dbus_real_assert ((condition) != 0, #condition, __FILE__, __LINE__)</font>
00106 <font class="preprocessor"></font><font class="preprocessor">#endif </font><font class="comment">/* !DBUS_DISABLE_ASSERT */</font>
00107 
00108 <font class="preprocessor">#ifdef DBUS_DISABLE_ASSERT</font>
00109 <font class="preprocessor"></font><font class="preprocessor">#define _dbus_assert_not_reached(explanation)</font>
00110 <font class="preprocessor"></font><font class="preprocessor">#else</font>
00111 <font class="preprocessor"></font><font class="keywordtype">void</font> _dbus_real_assert_not_reached (<font class="keyword">const</font> <font class="keywordtype">char</font> *explanation,
00112                                     <font class="keyword">const</font> <font class="keywordtype">char</font> *file,
00113                                     <font class="keywordtype">int</font>         line) _DBUS_GNUC_NORETURN;
<a name="l00114"></a><a class="code" href="group__DBusInternalsUtils.html#a132">00114</a> <font class="preprocessor">#define _dbus_assert_not_reached(explanation)                                   \</font>
00115 <font class="preprocessor">  _dbus_real_assert_not_reached (explanation, __FILE__, __LINE__)</font>
00116 <font class="preprocessor"></font><font class="preprocessor">#endif </font><font class="comment">/* !DBUS_DISABLE_ASSERT */</font>
00117 
00118 <font class="preprocessor">#ifdef DBUS_DISABLE_CHECKS</font>
00119 <font class="preprocessor"></font><font class="preprocessor">#define _dbus_return_if_fail(condition)</font>
00120 <font class="preprocessor"></font><font class="preprocessor">#define _dbus_return_val_if_fail(condition, val)</font>
00121 <font class="preprocessor"></font><font class="preprocessor">#else</font>
<a name="l00122"></a><a class="code" href="group__DBusInternalsUtils.html#a37">00122</a> <font class="preprocessor"></font><font class="keyword">extern</font> <font class="keyword">const</font> <font class="keywordtype">char</font> _dbus_return_if_fail_warning_format[];
00123 
00124 <font class="preprocessor">#define _dbus_return_if_fail(condition) do {                                            \</font>
00125 <font class="preprocessor">  if (!(condition)) {                                                                   \</font>
00126 <font class="preprocessor">    _dbus_warn (_dbus_return_if_fail_warning_format,                                    \</font>
00127 <font class="preprocessor">                _dbus_getpid (), _DBUS_FUNCTION_NAME, #condition, __FILE__, __LINE__);  \</font>
00128 <font class="preprocessor">    return;                                                                             \</font>
00129 <font class="preprocessor">  } } while (0)</font>
00130 <font class="preprocessor"></font>
00131 <font class="preprocessor">#define _dbus_return_val_if_fail(condition, val) do {                                   \</font>
00132 <font class="preprocessor">  if (!(condition)) {                                                                   \</font>
00133 <font class="preprocessor">    _dbus_warn (_dbus_return_if_fail_warning_format,                                    \</font>
00134 <font class="preprocessor">                _dbus_getpid (), _DBUS_FUNCTION_NAME, #condition, __FILE__, __LINE__);  \</font>
00135 <font class="preprocessor">    return (val);                                                                       \</font>
00136 <font class="preprocessor">  } } while (0)</font>
00137 <font class="preprocessor"></font>
00138 <font class="preprocessor">#endif </font><font class="comment">/* !DBUS_DISABLE_ASSERT */</font>
00139 
<a name="l00140"></a><a class="code" href="group__DBusInternalsUtils.html#a133">00140</a> <font class="preprocessor">#define _DBUS_N_ELEMENTS(array) ((int) (sizeof ((array)) / sizeof ((array)[0])))</font>
00141 <font class="preprocessor"></font>
<a name="l00142"></a><a class="code" href="group__DBusInternalsUtils.html#a134">00142</a> <font class="preprocessor">#define _DBUS_POINTER_TO_INT(pointer) ((long)(pointer))</font>
<a name="l00143"></a><a class="code" href="group__DBusInternalsUtils.html#a135">00143</a> <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_INT_TO_POINTER(integer) ((void*)((long)(integer)))</font>
00144 <font class="preprocessor"></font>
<a name="l00145"></a><a class="code" href="group__DBusInternalsUtils.html#a136">00145</a> <font class="preprocessor">#define _DBUS_ZERO(object) (memset (&amp;(object), '\0', sizeof ((object))))</font>
00146 <font class="preprocessor"></font>
00147 <font class="preprocessor">#define _DBUS_STRUCT_OFFSET(struct_type, member)        \</font>
00148 <font class="preprocessor">    ((long) ((unsigned char*) &amp;((struct_type*) 0)-&gt;member))</font>
00149 <font class="preprocessor"></font>
00150 <font class="preprocessor">#define _DBUS_ASSERT_ERROR_IS_SET(error)   _dbus_assert ((error) == NULL || dbus_error_is_set ((error)))</font>
00151 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_ASSERT_ERROR_IS_CLEAR(error) _dbus_assert ((error) == NULL || !dbus_error_is_set ((error)))</font>
00152 <font class="preprocessor"></font>
00153 <font class="preprocessor">#define _dbus_return_if_error_is_set(error) _dbus_return_if_fail ((error) == NULL || !dbus_error_is_set ((error)))</font>
00154 <font class="preprocessor"></font><font class="preprocessor">#define _dbus_return_val_if_error_is_set(error, val) _dbus_return_val_if_fail ((error) == NULL || !dbus_error_is_set ((error)), (val))</font>
00155 <font class="preprocessor"></font>
00156 <font class="comment">/* This alignment thing is from ORBit2 */</font>
00157 <font class="comment">/* Align a value upward to a boundary, expressed as a number of bytes.</font>
00158 <font class="comment"> * E.g. align to an 8-byte boundary with argument of 8.</font>
00159 <font class="comment"> */</font>
00160 
00161 <font class="comment">/*</font>
00162 <font class="comment"> *   (this + boundary - 1)</font>
00163 <font class="comment"> *          &amp;</font>
00164 <font class="comment"> *    ~(boundary - 1)</font>
00165 <font class="comment"> */</font>
00166 
00167 <font class="preprocessor">#define _DBUS_ALIGN_VALUE(this, boundary) \</font>
00168 <font class="preprocessor">  (( ((unsigned long)(this)) + (((unsigned long)(boundary)) -1)) &amp; (~(((unsigned long)(boundary))-1)))</font>
00169 <font class="preprocessor"></font>
00170 <font class="preprocessor">#define _DBUS_ALIGN_ADDRESS(this, boundary) \</font>
00171 <font class="preprocessor">  ((void*)_DBUS_ALIGN_VALUE(this, boundary))</font>
00172 <font class="preprocessor"></font>
00173 <font class="keywordtype">char</font>*       _dbus_strdup                (<font class="keyword">const</font> <font class="keywordtype">char</font>  *str);
00174 <font class="keywordtype">void</font>*       _dbus_memdup                (<font class="keyword">const</font> <font class="keywordtype">void</font>  *mem,
00175                                          size_t       n_bytes);
00176 dbus_bool_t _dbus_string_array_contains (<font class="keyword">const</font> <font class="keywordtype">char</font> **array,
00177                                          <font class="keyword">const</font> <font class="keywordtype">char</font>  *str);
00178 <font class="keywordtype">char</font>**      _dbus_dup_string_array      (<font class="keyword">const</font> <font class="keywordtype">char</font> **array);
00179 
<a name="l00180"></a><a class="code" href="group__DBusInternalsUtils.html#a137">00180</a> <font class="preprocessor">#define _DBUS_INT_MIN    (-_DBUS_INT_MAX - 1)</font>
<a name="l00181"></a><a class="code" href="group__DBusInternalsUtils.html#a138">00181</a> <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_INT_MAX    2147483647</font>
00182 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_UINT_MAX   0xffffffff</font>
00183 <font class="preprocessor"></font><font class="preprocessor">#ifdef DBUS_HAVE_INT64</font>
00184 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_INT64_MAX  DBUS_INT64_CONSTANT (9223372036854775807)</font>
00185 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_UINT64_MAX DBUS_UINT64_CONSTANT (0xffffffffffffffff)</font>
00186 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00187 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_ONE_KILOBYTE 1024</font>
00188 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_ONE_MEGABYTE 1024 * _DBUS_ONE_KILOBYTE</font>
00189 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_ONE_HOUR_IN_MILLISECONDS (1000 * 60 * 60)</font>
00190 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_USEC_PER_SECOND          (1000000)</font>
00191 <font class="preprocessor"></font>
00192 <font class="preprocessor">#undef  MAX</font>
00193 <font class="preprocessor"></font><font class="preprocessor">#define MAX(a, b)  (((a) &gt; (b)) ? (a) : (b))</font>
00194 <font class="preprocessor"></font>
00195 <font class="preprocessor">#undef  MIN</font>
00196 <font class="preprocessor"></font><font class="preprocessor">#define MIN(a, b)  (((a) &lt; (b)) ? (a) : (b))</font>
00197 <font class="preprocessor"></font>
00198 <font class="preprocessor">#undef  ABS</font>
00199 <font class="preprocessor"></font><font class="preprocessor">#define ABS(a)     (((a) &lt; 0) ? -(a) : (a))</font>
00200 <font class="preprocessor"></font>
<a name="l00201"></a><a class="code" href="group__DBusInternalsUtils.html#a155">00201</a> <font class="keyword">typedef</font> void (* DBusForeachFunction) (<font class="keywordtype">void</font> *element,
00202                                       <font class="keywordtype">void</font> *data);
00203 
00204 dbus_bool_t _dbus_set_fd_nonblocking (<font class="keywordtype">int</font>             fd,
00205                                       <a class="code" href="structDBusError.html">DBusError</a>      *error);
00206 
00207 <font class="keywordtype">void</font> _dbus_verbose_bytes           (<font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> *data,
00208                                     <font class="keywordtype">int</font>                  len);
00209 <font class="keywordtype">void</font> _dbus_verbose_bytes_of_string (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a>    *str,
00210                                     <font class="keywordtype">int</font>                  start,
00211                                     <font class="keywordtype">int</font>                  len);
00212 
00213 
00214 <font class="keyword">const</font> <font class="keywordtype">char</font>* _dbus_type_to_string         (<font class="keywordtype">int</font> type);
00215 <font class="keyword">const</font> <font class="keywordtype">char</font>* _dbus_header_field_to_string (<font class="keywordtype">int</font> header_field);
00216 
<a name="l00217"></a><a class="code" href="group__DBusInternalsUtils.html#a39">00217</a> <font class="keyword">extern</font> <font class="keyword">const</font> <font class="keywordtype">char</font> _dbus_no_memory_message[];
00218 <font class="preprocessor">#define _DBUS_SET_OOM(error) dbus_set_error ((error), DBUS_ERROR_NO_MEMORY, _dbus_no_memory_message)</font>
00219 <font class="preprocessor"></font>
00220 <font class="preprocessor">#ifdef DBUS_BUILD_TESTS</font>
00221 <font class="preprocessor"></font><font class="comment">/* Memory debugging */</font>
00222 <font class="keywordtype">void</font>        _dbus_set_fail_alloc_counter        (<font class="keywordtype">int</font>  until_next_fail);
00223 <font class="keywordtype">int</font>         _dbus_get_fail_alloc_counter        (<font class="keywordtype">void</font>);
00224 <font class="keywordtype">void</font>        _dbus_set_fail_alloc_failures       (<font class="keywordtype">int</font>  failures_per_failure);
00225 <font class="keywordtype">int</font>         _dbus_get_fail_alloc_failures       (<font class="keywordtype">void</font>);
00226 dbus_bool_t _dbus_decrement_fail_alloc_counter  (<font class="keywordtype">void</font>);
00227 dbus_bool_t _dbus_disable_mem_pools             (<font class="keywordtype">void</font>);
00228 <font class="keywordtype">int</font>         _dbus_get_malloc_blocks_outstanding (<font class="keywordtype">void</font>);
00229 
00230 <font class="keyword">typedef</font> dbus_bool_t (* DBusTestMemoryFunction)  (<font class="keywordtype">void</font> *data);
00231 dbus_bool_t _dbus_test_oom_handling (<font class="keyword">const</font> <font class="keywordtype">char</font>             *description,
00232                                      DBusTestMemoryFunction  func,
00233                                      <font class="keywordtype">void</font>                   *data);
00234 <font class="preprocessor">#else</font>
00235 <font class="preprocessor"></font><font class="preprocessor">#define _dbus_set_fail_alloc_counter(n)</font>
00236 <font class="preprocessor"></font><font class="preprocessor">#define _dbus_get_fail_alloc_counter _DBUS_INT_MAX</font>
00237 <font class="preprocessor"></font>
00238 <font class="comment">/* These are constant expressions so that blocks</font>
00239 <font class="comment"> * they protect should be optimized away</font>
00240 <font class="comment"> */</font>
00241 <font class="preprocessor">#define _dbus_decrement_fail_alloc_counter() (FALSE)</font>
00242 <font class="preprocessor"></font><font class="preprocessor">#define _dbus_disable_mem_pools()            (FALSE)</font>
00243 <font class="preprocessor"></font><font class="preprocessor">#define _dbus_get_malloc_blocks_outstanding  (0)</font>
00244 <font class="preprocessor"></font><font class="preprocessor">#endif </font><font class="comment">/* !DBUS_BUILD_TESTS */</font>
00245 
00246 <font class="keyword">typedef</font> void (* DBusShutdownFunction) (<font class="keywordtype">void</font> *data);
00247 dbus_bool_t _dbus_register_shutdown_func (DBusShutdownFunction  function,
00248                                           <font class="keywordtype">void</font>                 *data);
00249 
00250 <font class="keyword">extern</font> <font class="keywordtype">int</font> _dbus_current_generation;
00251 
00252 <font class="comment">/* Thread initializers */</font>
<a name="l00253"></a><a class="code" href="group__DBusInternalsUtils.html#a139">00253</a> <font class="preprocessor">#define _DBUS_LOCK_NAME(name)           _dbus_lock_##name</font>
<a name="l00254"></a><a class="code" href="group__DBusInternalsUtils.html#a141">00254</a> <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_DECLARE_GLOBAL_LOCK(name) extern DBusMutex  *_dbus_lock_##name</font>
<a name="l00255"></a><a class="code" href="group__DBusInternalsUtils.html#a140">00255</a> <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_DEFINE_GLOBAL_LOCK(name)  DBusMutex         *_dbus_lock_##name  </font>
<a name="l00256"></a><a class="code" href="group__DBusInternalsUtils.html#a142">00256</a> <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_LOCK(name)                dbus_mutex_lock   (_dbus_lock_##name)</font>
<a name="l00257"></a><a class="code" href="group__DBusInternalsUtils.html#a143">00257</a> <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_UNLOCK(name)              dbus_mutex_unlock (_dbus_lock_##name)</font>
00258 <font class="preprocessor"></font>
00259 _DBUS_DECLARE_GLOBAL_LOCK (list);
00260 _DBUS_DECLARE_GLOBAL_LOCK (connection_slots);
00261 _DBUS_DECLARE_GLOBAL_LOCK (pending_call_slots);
00262 _DBUS_DECLARE_GLOBAL_LOCK (server_slots);
00263 _DBUS_DECLARE_GLOBAL_LOCK (message_slots);
00264 _DBUS_DECLARE_GLOBAL_LOCK (atomic);
00265 _DBUS_DECLARE_GLOBAL_LOCK (bus);
00266 _DBUS_DECLARE_GLOBAL_LOCK (shutdown_funcs);
00267 _DBUS_DECLARE_GLOBAL_LOCK (system_users);
00268 <font class="preprocessor">#define _DBUS_N_GLOBAL_LOCKS (9)</font>
00269 <font class="preprocessor"></font>
00270 dbus_bool_t _dbus_threads_init_debug (<font class="keywordtype">void</font>);
00271 
00272 DBUS_END_DECLS;
00273 
00274 <font class="preprocessor">#endif </font><font class="comment">/* DBUS_INTERNALS_H */</font>
</pre></div><hr><address align="right"><small>Generated on Wed Jun 9 05:01:25 2004 for D-BUS by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.15 </small></address>
</body>
</html>