Sophie

Sophie

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

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>Utilities and portability</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>Utilities and portability<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-BUS internal implementation details</a>]</small>
</h1>Utility functions (<a class="el" href="group__DBusInternalsUtils.html#a131">_dbus_assert</a>(), <a class="el" href="group__DBusInternalsUtils.html#a4">_dbus_warn</a>(), etc.). 
<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Babysitter implementation details.</em> <a href="structDBusBabysitter.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structDBusDirIter.html">DBusDirIter</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internals of directory iterator.</em> <a href="structDBusDirIter.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a131">_dbus_assert</a>(condition)&nbsp;&nbsp;&nbsp;_dbus_real_assert ((condition) != 0, #condition, __FILE__, __LINE__)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Aborts with an error message if the condition is false.</em> <a href="#a131">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a132">_dbus_assert_not_reached</a>(explanation)&nbsp;&nbsp;&nbsp;_dbus_real_assert_not_reached (explanation, __FILE__, __LINE__)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Aborts with an error message if called.</em> <a href="#a132">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a133">_DBUS_N_ELEMENTS</a>(array)&nbsp;&nbsp;&nbsp;((int) (sizeof ((array)) / sizeof ((array)[0])))</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Computes the number of elements in a fixed-size array using sizeof().</em> <a href="#a133">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a134">_DBUS_POINTER_TO_INT</a>(pointer)&nbsp;&nbsp;&nbsp;((long)(pointer))</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Safely casts a void* to an integer; should only be used on void* that actually contain integers, for example one created with _DBUS_INT_TO_POINTER.</em> <a href="#a134">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a135">_DBUS_INT_TO_POINTER</a>(integer)&nbsp;&nbsp;&nbsp;((void*)((long)(integer)))</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Safely stuffs an integer into a pointer, to be extracted later with _DBUS_POINTER_TO_INT.</em> <a href="#a135">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a136">_DBUS_ZERO</a>(object)&nbsp;&nbsp;&nbsp;(memset (&amp;(object), '\0', sizeof ((object))))</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets all bits in an object to zero.</em> <a href="#a136">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a137" doxytag="DBusInternalsUtils::_DBUS_INT_MIN"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a137">_DBUS_INT_MIN</a>&nbsp;&nbsp;&nbsp;(-_DBUS_INT_MAX - 1)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Minimum value of type "int".</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a138" doxytag="DBusInternalsUtils::_DBUS_INT_MAX"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a138">_DBUS_INT_MAX</a>&nbsp;&nbsp;&nbsp;2147483647</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Maximum value of type "int".</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a139" doxytag="DBusInternalsUtils::_DBUS_LOCK_NAME"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a139">_DBUS_LOCK_NAME</a>(name)&nbsp;&nbsp;&nbsp;_dbus_lock_##name</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to name of a global lock variable.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a140">_DBUS_DEFINE_GLOBAL_LOCK</a>(name)&nbsp;&nbsp;&nbsp;DBusMutex         *_dbus_lock_##name</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Defines a global lock variable with the given name.</em> <a href="#a140">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a141">_DBUS_DECLARE_GLOBAL_LOCK</a>(name)&nbsp;&nbsp;&nbsp;extern DBusMutex  *_dbus_lock_##name</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to declaration of a global lock defined with _DBUS_DEFINE_GLOBAL_LOCK.</em> <a href="#a141">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a142" doxytag="DBusInternalsUtils::_DBUS_LOCK"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a142">_DBUS_LOCK</a>(name)&nbsp;&nbsp;&nbsp;dbus_mutex_lock   (_dbus_lock_##name)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Locks a global lock.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a143" doxytag="DBusInternalsUtils::_DBUS_UNLOCK"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a143">_DBUS_UNLOCK</a>(name)&nbsp;&nbsp;&nbsp;dbus_mutex_unlock (_dbus_lock_##name)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Unlocks a global lock.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a144" doxytag="DBusInternalsUtils::LIVE_CHILDREN"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a144">LIVE_CHILDREN</a>(sitter)&nbsp;&nbsp;&nbsp;((sitter)-&gt;socket_to_babysitter &gt;= 0 || (sitter)-&gt;error_pipe_from_child &gt;= 0)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Macro returns <a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the babysitter still has live sockets open to the babysitter child or the grandchild.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a145" doxytag="DBusInternalsUtils::READ_END"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a145">READ_END</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Helps remember which end of the pipe is which.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a146" doxytag="DBusInternalsUtils::WRITE_END"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a146">WRITE_END</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Helps remember which end of the pipe is which.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a147">_DBUS_MAX_SUN_PATH_LENGTH</a>&nbsp;&nbsp;&nbsp;99</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Maximum length of the path to a UNIX domain socket, sockaddr_un::sun_path member.</em> <a href="#a147">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a148" doxytag="DBusInternalsUtils::NANOSECONDS_PER_SECOND"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a148">NANOSECONDS_PER_SECOND</a>&nbsp;&nbsp;&nbsp;1000000000</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>nanoseconds in a second.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a149" doxytag="DBusInternalsUtils::MICROSECONDS_PER_SECOND"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a149">MICROSECONDS_PER_SECOND</a>&nbsp;&nbsp;&nbsp;1000000</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>microseconds in a second.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a150" doxytag="DBusInternalsUtils::MILLISECONDS_PER_SECOND"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a150">MILLISECONDS_PER_SECOND</a>&nbsp;&nbsp;&nbsp;1000</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>milliseconds in a second.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a151" doxytag="DBusInternalsUtils::NANOSECONDS_PER_MILLISECOND"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a151">NANOSECONDS_PER_MILLISECOND</a>&nbsp;&nbsp;&nbsp;1000000</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>nanoseconds in a millisecond.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a152" doxytag="DBusInternalsUtils::MICROSECONDS_PER_MILLISECOND"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a152">MICROSECONDS_PER_MILLISECOND</a>&nbsp;&nbsp;&nbsp;1000</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>microseconds in a millisecond.</em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a155" doxytag="DBusInternalsUtils::DBusForeachFunction"></a>
typedef void(*&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a155">DBusForeachFunction</a> )(void *element, void *data)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Used to iterate over each item in a collection, such as a <a class="el" href="structDBusList.html">DBusList</a>.</em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a153">ReadStatus</a> { <a class="el" href="group__DBusInternalsUtils.html#a153a4">READ_STATUS_OK</a>, 
<a class="el" href="group__DBusInternalsUtils.html#a153a5">READ_STATUS_ERROR</a>, 
<a class="el" href="group__DBusInternalsUtils.html#a153a6">READ_STATUS_EOF</a>
 }</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Enumeration for status of a read().</em> <a href="#a153">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom>{ <b>CHILD_EXITED</b>, 
<b>CHILD_FORK_FAILED</b>, 
<b>CHILD_EXEC_FAILED</b>, 
<b>CHILD_PID</b>
 }</td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a4">_dbus_warn</a> (const char *format,...)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Prints a warning message to stderr.</em> <a href="#a4">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a5">_dbus_verbose_real</a> (const char *format,...)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Prints a warning message to stderr if the user has enabled verbose mode.</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a6" doxytag="DBusInternalsUtils::_dbus_verbose_reset_real"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a6">_dbus_verbose_reset_real</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Reinitializes the verbose logging code, used as a hack in dbus-spawn.c so that a child process re-reads its pid.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a7">_dbus_strdup</a> (const char *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Duplicates a string.</em> <a href="#a7">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a8">_dbus_memdup</a> (const void *mem, size_t n_bytes)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Duplicates a block of memory.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>char **&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a9">_dbus_dup_string_array</a> (const char **array)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Duplicates a string array.</em> <a href="#a9">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a10">_dbus_string_array_contains</a> (const char **array, const char *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks whether a string array contains the given string.</em> <a href="#a10">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a11">_dbus_type_to_string</a> (int type)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns a string describing the given type.</em> <a href="#a11">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a12">_dbus_header_field_to_string</a> (int header_field)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns a string describing the given name.</em> <a href="#a12">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a13">_dbus_real_assert</a> (<a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> condition, const char *condition_text, const char *file, int line)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internals of <a class="el" href="group__DBusInternalsUtils.html#a131">_dbus_assert</a>(); it's a function rather than a macro with the inline code so that the assertion failure blocks don't show up in test suite coverage, and to shrink code size.</em> <a href="#a13">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a14">_dbus_real_assert_not_reached</a> (const char *explanation, const char *file, int line)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internals of <a class="el" href="group__DBusInternalsUtils.html#a132">_dbus_assert_not_reached</a>(); it's a function rather than a macro with the inline code so that the assertion failure blocks don't show up in test suite coverage, and to shrink code size.</em> <a href="#a14">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a16">_dbus_test_oom_handling</a> (const char *description, DBusTestMemoryFunction func, void *data)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Tests how well the given function responds to out-of-memory situations.</em> <a href="#a16">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a20">_dbus_babysitter_ref</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Increment the reference count on the babysitter object.</em> <a href="#a20">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a21">_dbus_babysitter_unref</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Decrement the reference count on the babysitter object.</em> <a href="#a21">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a28">_dbus_babysitter_kill_child</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Blocks until the babysitter process gives us the PID of the spawned grandchild, then kills the spawned grandchild.</em> <a href="#a28">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a29">_dbus_babysitter_get_child_exited</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks whether the child has exited, without blocking.</em> <a href="#a29">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a30">_dbus_babysitter_set_child_exit_error</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets the DBusError with an explanation of why the spawned child process exited (on a signal, or whatever).</em> <a href="#a30">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a31">_dbus_babysitter_set_watch_functions</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter, DBusAddWatchFunction add_function, DBusRemoveWatchFunction remove_function, DBusWatchToggledFunction toggled_function, void *data, <a class="el" href="group__DBusMemory.html#a8">DBusFreeFunction</a> free_data_function)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets watch functions to notify us when the babysitter object needs to read/write file descriptors.</em> <a href="#a31">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a43">_dbus_spawn_async_with_babysitter</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> **sitter_p, char **argv, DBusSpawnChildSetupFunc child_setup, void *user_data, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Spawns a new process.</em> <a href="#a43">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a44" doxytag="DBusInternalsUtils::_dbus_abort"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a44">_dbus_abort</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Aborts the program with SIGABRT (dumping core).</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a45">_dbus_setenv</a> (const char *varname, const char *value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Wrapper for setenv().</em> <a href="#a45">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a46">_dbus_getenv</a> (const char *varname)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Wrapper for getenv().</em> <a href="#a46">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a47">_dbus_read</a> (int fd, <a class="el" href="structDBusString.html">DBusString</a> *buffer, int count)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Thin wrapper around the read() system call that appends the data it reads to the <a class="el" href="structDBusString.html">DBusString</a> buffer.</em> <a href="#a47">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a48">_dbus_write</a> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Thin wrapper around the write() system call that writes a part of a <a class="el" href="structDBusString.html">DBusString</a> and handles EINTR for you.</em> <a href="#a48">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a49">_dbus_write_two</a> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer1, int start1, int len1, const <a class="el" href="structDBusString.html">DBusString</a> *buffer2, int start2, int len2)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Like <a class="el" href="group__DBusInternalsUtils.html#a48">_dbus_write</a>() but will use writev() if possible to write both buffers in sequence.</em> <a href="#a49">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a50">_dbus_connect_unix_socket</a> (const char *path, <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> abstract, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a socket and connects it to the UNIX domain socket at the given path.</em> <a href="#a50">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a51">_dbus_listen_unix_socket</a> (const char *path, <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> abstract, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a socket and binds it to the given path, then listens on the socket.</em> <a href="#a51">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a52">_dbus_connect_tcp_socket</a> (const char *host, <a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a> port, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a socket and connects to a socket at the given host and port.</em> <a href="#a52">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a53">_dbus_listen_tcp_socket</a> (const char *host, <a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a> port, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a socket and binds it to the given path, then listens on the socket.</em> <a href="#a53">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a55">_dbus_read_credentials_unix_socket</a> (int client_fd, <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Reads a single byte which must be nul (an error occurs otherwise), and reads unix credentials if available.</em> <a href="#a55">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a56">_dbus_send_credentials_unix_socket</a> (int server_fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sends a single nul byte with our UNIX credentials as ancillary data.</em> <a href="#a56">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a57">_dbus_accept</a> (int listen_fd)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Accepts a connection on a listening socket.</em> <a href="#a57">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a60">_dbus_user_info_fill</a> (<a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *info, const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets user info for the given username.</em> <a href="#a60">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a61">_dbus_user_info_fill_uid</a> (<a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *info, dbus_uid_t uid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets user info for the given user ID.</em> <a href="#a61">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a62">_dbus_user_info_free</a> (<a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *info)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Frees the members of info (but not info itself).</em> <a href="#a62">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a65">_dbus_group_info_fill</a> (<a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *info, const <a class="el" href="structDBusString.html">DBusString</a> *groupname, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Initializes the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> struct with information about the given group name.</em> <a href="#a65">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a66">_dbus_group_info_fill_gid</a> (<a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *info, dbus_gid_t gid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Initializes the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> struct with information about the given group ID.</em> <a href="#a66">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a67">_dbus_group_info_free</a> (<a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *info)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Frees the members of info (but not info itself).</em> <a href="#a67">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a68">_dbus_credentials_clear</a> (<a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets fields in <a class="el" href="structDBusCredentials.html">DBusCredentials</a> to DBUS_PID_UNSET, DBUS_UID_UNSET, DBUS_GID_UNSET.</em> <a href="#a68">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a69">_dbus_credentials_from_current_process</a> (<a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the credentials of the current process.</em> <a href="#a69">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a70">_dbus_credentials_match</a> (const <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *expected_credentials, const <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *provided_credentials)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks whether the provided_credentials are allowed to log in as the expected_credentials.</em> <a href="#a70">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a71">_dbus_getpid</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets our process ID.</em> <a href="#a71">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>dbus_uid_t&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a72">_dbus_getuid</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets our UID.</em> <a href="#a72">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>dbus_gid_t&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a73">_dbus_getgid</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets our GID.</em> <a href="#a73">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a75">_dbus_atomic_inc</a> (<a class="el" href="structDBusAtomic.html">DBusAtomic</a> *atomic)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Atomically increments an integer.</em> <a href="#a75">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a76">_dbus_atomic_dec</a> (<a class="el" href="structDBusAtomic.html">DBusAtomic</a> *atomic)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Atomically decrement an integer.</em> <a href="#a76">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a77">_dbus_poll</a> (<a class="el" href="structDBusPollFD.html">DBusPollFD</a> *fds, int n_fds, int timeout_milliseconds)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Wrapper for poll().</em> <a href="#a77">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a78">_dbus_sleep_milliseconds</a> (int milliseconds)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sleeps the given number of milliseconds.</em> <a href="#a78">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a79">_dbus_get_current_time</a> (long *tv_sec, long *tv_usec)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get current time, as in gettimeofday().</em> <a href="#a79">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a80">_dbus_file_get_contents</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends the contents of the given file to the string, returning error code.</em> <a href="#a80">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a81">_dbus_string_save_to_file</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Writes a string out to a file.</em> <a href="#a81">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a82">_dbus_create_file_exclusively</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates the given file, failing if the file already exists.</em> <a href="#a82">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a83">_dbus_delete_file</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Deletes the given file.</em> <a href="#a83">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a84">_dbus_create_directory</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a directory; succeeds if the directory is created or already existed.</em> <a href="#a84">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a85">_dbus_delete_directory</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Removes a directory; Directory must be empty.</em> <a href="#a85">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a86">_dbus_concat_dir_and_file</a> (<a class="el" href="structDBusString.html">DBusString</a> *dir, const <a class="el" href="structDBusString.html">DBusString</a> *next_component)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends the given filename to the given directory.</em> <a href="#a86">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a87">_dbus_string_get_dirname</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusString.html">DBusString</a> *dirname)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get the directory name from a complete filename.</em> <a href="#a87">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a88">_dbus_path_is_absolute</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks whether the filename is an absolute path.</em> <a href="#a88">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusDirIter.html">DBusDirIter</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a89">_dbus_directory_open</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Open a directory to iterate over.</em> <a href="#a89">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a90">_dbus_directory_get_next_file</a> (<a class="el" href="structDBusDirIter.html">DBusDirIter</a> *iter, <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get next file in the directory.</em> <a href="#a90">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a91" doxytag="DBusInternalsUtils::_dbus_directory_close"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a91">_dbus_directory_close</a> (<a class="el" href="structDBusDirIter.html">DBusDirIter</a> *iter)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Closes a directory iteration.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a93">_dbus_generate_random_bytes</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int n_bytes)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Generates the given number of random bytes, using the best mechanism we can come up with.</em> <a href="#a93">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a94">_dbus_generate_random_ascii</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int n_bytes)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Generates the given number of random bytes, where the bytes are chosen from the alphanumeric ASCII subset.</em> <a href="#a94">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a95">_dbus_strerror</a> (int error_number)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>A wrapper around strerror() because some platforms may be lame and not have strerror().</em> <a href="#a95">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a96" doxytag="DBusInternalsUtils::_dbus_disable_sigpipe"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a96">_dbus_disable_sigpipe</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>signal (SIGPIPE, SIG_IGN);.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a97">_dbus_fd_set_close_on_exec</a> (int fd)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets the file descriptor to be close on exec.</em> <a href="#a97">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a98">_dbus_error_from_errno</a> (int error_number)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Converts a UNIX errno into a DBusError name.</em> <a href="#a98">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a99">_dbus_exit</a> (int code)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Exit the process, returning the given value.</em> <a href="#a99">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a100">_dbus_stat</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusStat.html">DBusStat</a> *statbuf, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>stat() wrapper.</em> <a href="#a100">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a101">_dbus_full_duplex_pipe</a> (int *fd1, int *fd2, <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> blocking, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a full-duplex pipe (as in socketpair()).</em> <a href="#a101">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a102">_dbus_close</a> (int fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Closes a file descriptor.</em> <a href="#a102">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a103">_dbus_set_fd_nonblocking</a> (int fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets a file descriptor to be nonblocking.</em> <a href="#a103">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a104">_dbus_print_backtrace</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>On GNU libc systems, print a crude backtrace to the verbose log.</em> <a href="#a104">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a105">_dbus_become_daemon</a> (const <a class="el" href="structDBusString.html">DBusString</a> *pidfile, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Does the chdir, fork, setsid, etc.</em> <a href="#a105">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a106">_dbus_write_pid_file</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, unsigned long pid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a file containing the process ID.</em> <a href="#a106">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a107">_dbus_change_identity</a> (dbus_uid_t uid, dbus_gid_t gid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Changes the user and group the bus is running as.</em> <a href="#a107">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a108">_dbus_set_signal_handler</a> (int sig, DBusSignalHandler handler)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Installs a UNIX signal handler.</em> <a href="#a108">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a111">_dbus_sysdeps_test</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Unit test for dbus-sysdeps.c.</em> <a href="#a111">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a112" doxytag="DBusInternalsUtils::_dbus_user_database_lock_system"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a112">_dbus_user_database_lock_system</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Locks global system user database.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a113" doxytag="DBusInternalsUtils::_dbus_user_database_unlock_system"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a113">_dbus_user_database_unlock_system</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Unlocks global system user database.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a114">_dbus_user_database_get_system</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the system global user database; must be called with lock held (<a class="el" href="group__DBusInternalsUtils.html#a112">_dbus_user_database_lock_system</a>()).</em> <a href="#a114">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a115">_dbus_username_from_current_process</a> (const <a class="el" href="structDBusString.html">DBusString</a> **username)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets username of user owning current process.</em> <a href="#a115">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a116">_dbus_homedir_from_current_process</a> (const <a class="el" href="structDBusString.html">DBusString</a> **homedir)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets homedir of user owning current process.</em> <a href="#a116">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a117">_dbus_get_user_id</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, dbus_uid_t *uid)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets user ID given username.</em> <a href="#a117">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a118">_dbus_get_group_id</a> (const <a class="el" href="structDBusString.html">DBusString</a> *groupname, dbus_gid_t *gid)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets group ID given groupname.</em> <a href="#a118">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a119">_dbus_homedir_from_username</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="structDBusString.html">DBusString</a> *homedir)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the home directory for the given user.</em> <a href="#a119">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a120">_dbus_uid_from_string</a> (const <a class="el" href="structDBusString.html">DBusString</a> *uid_str, dbus_uid_t *uid)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets a UID from a UID string.</em> <a href="#a120">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a121">_dbus_credentials_from_username</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the credentials corresponding to the given username.</em> <a href="#a121">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a122">_dbus_credentials_from_uid</a> (dbus_uid_t uid, <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the credentials corresponding to the given UID.</em> <a href="#a122">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a123">_dbus_user_database_new</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a new user database object used to look up and cache user information.</em> <a href="#a123">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a124">_dbus_user_database_ref</a> (<a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *db)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Increments refcount of user database.</em> <a href="#a124">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a125">_dbus_user_database_unref</a> (<a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *db)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Decrements refcount of user database.</em> <a href="#a125">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a126">_dbus_user_database_get_groups</a> (<a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *db, dbus_uid_t uid, dbus_gid_t **group_ids, int *n_group_ids, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets all groups for a particular user.</em> <a href="#a126">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a127">_dbus_user_database_get_uid</a> (<a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *db, dbus_uid_t uid, const <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> **info, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the user information for the given UID, returned user info should not be freed.</em> <a href="#a127">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a128">_dbus_user_database_get_gid</a> (<a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *db, dbus_gid_t gid, const <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> **info, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the user information for the given GID, returned group info should not be freed.</em> <a href="#a128">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a129">_dbus_user_database_get_username</a> (<a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *db, const <a class="el" href="structDBusString.html">DBusString</a> *username, const <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> **info, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the user information for the given username.</em> <a href="#a129">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a130">_dbus_user_database_get_groupname</a> (<a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *db, const <a class="el" href="structDBusString.html">DBusString</a> *groupname, const <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> **info, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the user information for the given group name, returned group info should not be freed.</em> <a href="#a130">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a0" doxytag="DBusInternalsUtils::_dbus_no_memory_message"></a>
const char&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a0">_dbus_no_memory_message</a> [] = "Not enough memory"</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Fixed "out of memory" error message, just to avoid making up a different string every time and wasting space.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char&nbsp;</td><td valign=bottom><a class="el" href="group__DBusInternalsUtils.html#a2">_dbus_return_if_fail_warning_format</a> []</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>String used in _dbus_return_if_fail macro.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Utility functions (<a class="el" href="group__DBusInternalsUtils.html#a131">_dbus_assert</a>(), <a class="el" href="group__DBusInternalsUtils.html#a4">_dbus_warn</a>(), etc.).
<p>
<hr><h2>Define Documentation</h2>
<a name="a131" doxytag="dbus-internals.h::_dbus_assert"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define _dbus_assert</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">condition&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_dbus_real_assert ((condition) != 0, #condition, __FILE__, __LINE__)
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Aborts with an error message if the condition is false.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>condition</em>&nbsp;</td><td>
condition which must be true. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00104">104</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.    </td>
  </tr>
</table>
<a name="a132" doxytag="dbus-internals.h::_dbus_assert_not_reached"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define _dbus_assert_not_reached</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">explanation&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_dbus_real_assert_not_reached (explanation, __FILE__, __LINE__)
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Aborts with an error message if called.
<p>
The given explanation will be printed.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>explanation</em>&nbsp;</td><td>
explanation of what happened if the code was reached. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00114">114</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.    </td>
  </tr>
</table>
<a name="a141" doxytag="dbus-internals.h::_DBUS_DECLARE_GLOBAL_LOCK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define _DBUS_DECLARE_GLOBAL_LOCK</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">name&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;extern DBusMutex  *_dbus_lock_##name
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Expands to declaration of a global lock defined with _DBUS_DEFINE_GLOBAL_LOCK.
<p>
The lock must be added to the list to initialize in <a class="el" href="group__DBusThreads.html#a12">dbus_threads_init</a>(). 
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00254">254</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.    </td>
  </tr>
</table>
<a name="a140" doxytag="dbus-internals.h::_DBUS_DEFINE_GLOBAL_LOCK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define _DBUS_DEFINE_GLOBAL_LOCK</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">name&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;DBusMutex         *_dbus_lock_##name
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Defines a global lock variable with the given name.
<p>
The lock must be added to the list to initialize in <a class="el" href="group__DBusThreads.html#a12">dbus_threads_init</a>(). 
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00255">255</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.    </td>
  </tr>
</table>
<a name="a135" doxytag="dbus-internals.h::_DBUS_INT_TO_POINTER"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define _DBUS_INT_TO_POINTER</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">integer&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;((void*)((long)(integer)))
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Safely stuffs an integer into a pointer, to be extracted later with _DBUS_POINTER_TO_INT.
<p>
Only guaranteed to preserve 32 bits.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>integer</em>&nbsp;</td><td>
the integer to stuff into a pointer. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00143">143</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.    </td>
  </tr>
</table>
<a name="a147" doxytag="dbus-sysdeps.c::_DBUS_MAX_SUN_PATH_LENGTH"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define _DBUS_MAX_SUN_PATH_LENGTH&nbsp;&nbsp;&nbsp;99
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Maximum length of the path to a UNIX domain socket, sockaddr_un::sun_path member.
<p>
POSIX requires that all systems support at least 100 bytes here, including the nul termination. We use 99 for the max value to allow for the nul.
<p>
We could probably also do sizeof (addr.sun_path) but this way we are the same on all platforms which is probably a good idea.     </td>
  </tr>
</table>
<a name="a133" doxytag="dbus-internals.h::_DBUS_N_ELEMENTS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define _DBUS_N_ELEMENTS</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">array&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;((int) (sizeof ((array)) / sizeof ((array)[0])))
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Computes the number of elements in a fixed-size array using sizeof().
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>array</em>&nbsp;</td><td>
the array to count elements in. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00140">140</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.    </td>
  </tr>
</table>
<a name="a134" doxytag="dbus-internals.h::_DBUS_POINTER_TO_INT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define _DBUS_POINTER_TO_INT</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">pointer&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;((long)(pointer))
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Safely casts a void* to an integer; should only be used on void* that actually contain integers, for example one created with _DBUS_INT_TO_POINTER.
<p>
Only guaranteed to preserve 32 bits. (i.e. it's used to store 32-bit ints in pointers, but can't be used to store 64-bit pointers in ints.)<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pointer</em>&nbsp;</td><td>
pointer to extract an integer from. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00142">142</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.    </td>
  </tr>
</table>
<a name="a136" doxytag="dbus-internals.h::_DBUS_ZERO"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define _DBUS_ZERO</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">object&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(memset (&amp;(object), '\0', sizeof ((object))))
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets all bits in an object to zero.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>object</em>&nbsp;</td><td>
the object to be zeroed. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00145">145</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.    </td>
  </tr>
</table>
<hr><h2>Enumeration Type Documentation</h2>
<a name="a153" doxytag="dbus-spawn.c::ReadStatus"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> enum ReadStatus
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Enumeration for status of a read().
<p>
<dl compact><dt><b>
Enumeration values:</b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em><a name="a153a4" doxytag="READ_STATUS_OK"></a><em>READ_STATUS_OK</em></em>&nbsp;</td><td>
Read succeeded.</td></tr>
<tr><td valign=top><em><a name="a153a5" doxytag="READ_STATUS_ERROR"></a><em>READ_STATUS_ERROR</em></em>&nbsp;</td><td>
Some kind of error.</td></tr>
<tr><td valign=top><em><a name="a153a6" doxytag="READ_STATUS_EOF"></a><em>READ_STATUS_EOF</em></em>&nbsp;</td><td>
EOF returned.</td></tr>
</table>
</dl>

<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00049">49</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a name="a57" doxytag="dbus-sysdeps.c::_dbus_accept"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_accept </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>listen_fd</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Accepts a connection on a listening socket.
<p>
Handles EINTR for you.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>listen_fd</em>&nbsp;</td><td>
the listen file descriptor </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the connection fd of the client, or -1 on error </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00948">948</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a76" doxytag="dbus-sysdeps.c::_dbus_atomic_dec"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a> _dbus_atomic_dec </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusAtomic.html">DBusAtomic</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>atomic</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Atomically decrement an integer.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>atomic</em>&nbsp;</td><td>
pointer to the integer to decrement </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the value before decrementing</dl><dl compact><dt><b>
<a class="el" href="todo.html#_todo000065">Todo: </a></b><dd>
 implement arch-specific faster atomic ops </dl> 
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01897">1897</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00192">DBusAtomic::value</a>.    </td>
  </tr>
</table>
<a name="a75" doxytag="dbus-sysdeps.c::_dbus_atomic_inc"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a> _dbus_atomic_inc </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusAtomic.html">DBusAtomic</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>atomic</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Atomically increments an integer.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>atomic</em>&nbsp;</td><td>
pointer to the integer to increment </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the value before incrementing</dl><dl compact><dt><b>
<a class="el" href="todo.html#_todo000064">Todo: </a></b><dd>
 implement arch-specific faster atomic ops </dl> 
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01874">1874</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00192">DBusAtomic::value</a>.    </td>
  </tr>
</table>
<a name="a29" doxytag="dbus-spawn.c::_dbus_babysitter_get_child_exited"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_babysitter_get_child_exited </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>sitter</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks whether the child has exited, without blocking.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>sitter</em>&nbsp;</td><td>
the babysitter </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00586">586</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-spawn_8c-source.html#l00188">DBusBabysitter::socket_to_babysitter</a>.    </td>
  </tr>
</table>
<a name="a28" doxytag="dbus-spawn.c::_dbus_babysitter_kill_child"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_babysitter_kill_child </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>sitter</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Blocks until the babysitter process gives us the PID of the spawned grandchild, then kills the spawned grandchild.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>sitter</em>&nbsp;</td><td>
the babysitter object </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00564">564</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-spawn_8c-source.html#l00192">DBusBabysitter::grandchild_pid</a>.    </td>
  </tr>
</table>
<a name="a20" doxytag="dbus-spawn.c::_dbus_babysitter_ref"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusBabysitter.html">DBusBabysitter</a>* _dbus_babysitter_ref </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>sitter</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Increment the reference count on the babysitter object.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>sitter</em>&nbsp;</td><td>
the babysitter </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the babysitter </dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00241">241</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-spawn_8c-source.html#l00184">DBusBabysitter::refcount</a>.    </td>
  </tr>
</table>
<a name="a30" doxytag="dbus-spawn.c::_dbus_babysitter_set_child_exit_error"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_babysitter_set_child_exit_error </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>sitter</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the DBusError with an explanation of why the spawned child process exited (on a signal, or whatever).
<p>
If the child process has not exited, does nothing (error will remain unset).<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>sitter</em>&nbsp;</td><td>
the babysitter </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
an error to fill in </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00608">608</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-spawn_8c-source.html#l00199">DBusBabysitter::errnum</a>, <a class="el" href="dbus-spawn_8c-source.html#l00186">DBusBabysitter::executable</a>, <a class="el" href="dbus-spawn_8c-source.html#l00201">DBusBabysitter::have_child_status</a>, <a class="el" href="dbus-spawn_8c-source.html#l00203">DBusBabysitter::have_exec_errnum</a>, <a class="el" href="dbus-spawn_8c-source.html#l00202">DBusBabysitter::have_fork_errnum</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00200">DBusBabysitter::status</a>.    </td>
  </tr>
</table>
<a name="a31" doxytag="dbus-spawn.c::_dbus_babysitter_set_watch_functions"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_babysitter_set_watch_functions </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>sitter</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>DBusAddWatchFunction&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>add_function</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>DBusRemoveWatchFunction&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>remove_function</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>DBusWatchToggledFunction&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>toggled_function</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>data</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusMemory.html#a8">DBusFreeFunction</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>free_data_function</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets watch functions to notify us when the babysitter object needs to read/write file descriptors.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>sitter</em>&nbsp;</td><td>
the babysitter </td></tr>
<tr><td valign=top><em>add_function</em>&nbsp;</td><td>
function to begin monitoring a new descriptor. </td></tr>
<tr><td valign=top><em>remove_function</em>&nbsp;</td><td>
function to stop monitoring a descriptor. </td></tr>
<tr><td valign=top><em>toggled_function</em>&nbsp;</td><td>
function to notify when the watch is enabled/disabled </td></tr>
<tr><td valign=top><em>data</em>&nbsp;</td><td>
data to pass to add_function and remove_function. </td></tr>
<tr><td valign=top><em>free_data_function</em>&nbsp;</td><td>
function to be called to free the data. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> on failure (no memory) </dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00666">666</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-spawn_8c-source.html#l00194">DBusBabysitter::watches</a>.    </td>
  </tr>
</table>
<a name="a21" doxytag="dbus-spawn.c::_dbus_babysitter_unref"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_babysitter_unref </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>sitter</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Decrement the reference count on the babysitter object.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>sitter</em>&nbsp;</td><td>
the babysitter </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00257">257</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-spawn_8c-source.html#l00189">DBusBabysitter::error_pipe_from_child</a>, <a class="el" href="dbus-spawn_8c-source.html#l00196">DBusBabysitter::error_watch</a>, <a class="el" href="dbus-spawn_8c-source.html#l00186">DBusBabysitter::executable</a>, <a class="el" href="dbus-spawn_8c-source.html#l00184">DBusBabysitter::refcount</a>, <a class="el" href="dbus-spawn_8c-source.html#l00191">DBusBabysitter::sitter_pid</a>, <a class="el" href="dbus-spawn_8c-source.html#l00197">DBusBabysitter::sitter_watch</a>, <a class="el" href="dbus-spawn_8c-source.html#l00188">DBusBabysitter::socket_to_babysitter</a>, <a class="el" href="dbus-spawn_8c-source.html#l00200">DBusBabysitter::status</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00194">DBusBabysitter::watches</a>.    </td>
  </tr>
</table>
<a name="a105" doxytag="dbus-sysdeps.c::_dbus_become_daemon"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_become_daemon </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>pidfile</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Does the chdir, fork, setsid, etc.
<p>
to become a daemon process.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pidfile</em>&nbsp;</td><td>
<a class="el" href="group__DBusMacros.html#a4">NULL</a>, or pidfile to create </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for errors </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> on failure </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l03136">3136</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a107" doxytag="dbus-sysdeps.c::_dbus_change_identity"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_change_identity </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">dbus_uid_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>uid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_gid_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>gid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Changes the user and group the bus is running as.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>uid</em>&nbsp;</td><td>
the new user ID </td></tr>
<tr><td valign=top><em>gid</em>&nbsp;</td><td>
the new group ID </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for errors </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> on failure </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l03279">3279</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a102" doxytag="dbus-sysdeps.c::_dbus_close"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_close </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Closes a file descriptor.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>fd</em>&nbsp;</td><td>
the file descriptor </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error object </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error set </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l03038">3038</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a86" doxytag="dbus-sysdeps.c::_dbus_concat_dir_and_file"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_concat_dir_and_file </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dir</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>next_component</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends the given filename to the given directory.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000066">Todo: </a></b><dd>
it might be cute to collapse multiple '/' such as "foo//" concat "//bar"</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>dir</em>&nbsp;</td><td>
the directory name </td></tr>
<tr><td valign=top><em>next_component</em>&nbsp;</td><td>
the filename </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02455">2455</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a52" doxytag="dbus-sysdeps.c::_dbus_connect_tcp_socket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_connect_tcp_socket </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>host</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>port</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a socket and connects to a socket at the given host and port.
<p>
The connection fd is returned, and is set up as nonblocking.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>host</em>&nbsp;</td><td>
the host name to connect to </td></tr>
<tr><td valign=top><em>port</em>&nbsp;</td><td>
the prot to connect to </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for error code </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
connection file descriptor or -1 on error </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00591">591</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a50" doxytag="dbus-sysdeps.c::_dbus_connect_unix_socket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_connect_unix_socket </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>path</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>abstract</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a socket and connects it to the UNIX domain socket at the given path.
<p>
The connection fd is returned, and is set up as nonblocking.
<p>
Uses abstract sockets instead of filesystem-linked sockets if requested (it's possible only on Linux; see "man 7 unix" on Linux). On non-Linux abstract socket usage always fails.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>path</em>&nbsp;</td><td>
the path to UNIX domain socket </td></tr>
<tr><td valign=top><em>abstract</em>&nbsp;</td><td>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> to use abstract namespace </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for error code </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
connection file descriptor or -1 on error </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00391">391</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a84" doxytag="dbus-sysdeps.c::_dbus_create_directory"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_create_directory </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a directory; succeeds if the directory is created or already existed.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
directory filename </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
initialized error object </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02393">2393</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a82" doxytag="dbus-sysdeps.c::_dbus_create_file_exclusively"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_create_file_exclusively </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates the given file, failing if the file already exists.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
the filename </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error location </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if we created the file and it didn't exist </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02320">2320</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a68" doxytag="dbus-sysdeps.c::_dbus_credentials_clear"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_credentials_clear </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>credentials</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets fields in <a class="el" href="structDBusCredentials.html">DBusCredentials</a> to DBUS_PID_UNSET, DBUS_UID_UNSET, DBUS_GID_UNSET.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>credentials</em>&nbsp;</td><td>
the credentials object to fill in </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01767">1767</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00109">DBusCredentials::gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00107">DBusCredentials::pid</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBusCredentials::uid</a>.    </td>
  </tr>
</table>
<a name="a69" doxytag="dbus-sysdeps.c::_dbus_credentials_from_current_process"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_credentials_from_current_process </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>credentials</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the credentials of the current process.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>credentials</em>&nbsp;</td><td>
credentials to fill in. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01780">1780</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00109">DBusCredentials::gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00107">DBusCredentials::pid</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBusCredentials::uid</a>.    </td>
  </tr>
</table>
<a name="a122" doxytag="dbus-userdb.c::_dbus_credentials_from_uid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_credentials_from_uid </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">dbus_uid_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>uid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>credentials</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the credentials corresponding to the given UID.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>uid</em>&nbsp;</td><td>
the UID </td></tr>
<tr><td valign=top><em>credentials</em>&nbsp;</td><td>
credentials to fill in </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the UID existed and we got some credentials </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00559">559</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00109">DBusCredentials::gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00107">DBusCredentials::pid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00148">DBusUserInfo::primary_gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00147">DBusUserInfo::uid</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBusCredentials::uid</a>.    </td>
  </tr>
</table>
<a name="a121" doxytag="dbus-userdb.c::_dbus_credentials_from_username"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_credentials_from_username </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>username</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>credentials</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the credentials corresponding to the given username.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>username</em>&nbsp;</td><td>
the username </td></tr>
<tr><td valign=top><em>credentials</em>&nbsp;</td><td>
credentials to fill in </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the username existed and we got some credentials </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00522">522</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00109">DBusCredentials::gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00107">DBusCredentials::pid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00148">DBusUserInfo::primary_gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBusCredentials::uid</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00147">DBusUserInfo::uid</a>.    </td>
  </tr>
</table>
<a name="a70" doxytag="dbus-sysdeps.c::_dbus_credentials_match"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_credentials_match </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>expected_credentials</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>provided_credentials</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks whether the provided_credentials are allowed to log in as the expected_credentials.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>expected_credentials</em>&nbsp;</td><td>
credentials we're trying to log in as </td></tr>
<tr><td valign=top><em>provided_credentials</em>&nbsp;</td><td>
credentials we have </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if we can log in </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01804">1804</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBusCredentials::uid</a>.    </td>
  </tr>
</table>
<a name="a85" doxytag="dbus-sysdeps.c::_dbus_delete_directory"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_delete_directory </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Removes a directory; Directory must be empty.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
directory filename </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
initialized error object </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02424">2424</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a83" doxytag="dbus-sysdeps.c::_dbus_delete_file"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_delete_file </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Deletes the given file.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
the filename </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error location</td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if unlink() succeeded </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02364">2364</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a90" doxytag="dbus-sysdeps.c::_dbus_directory_get_next_file"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_directory_get_next_file </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusDirIter.html">DBusDirIter</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>iter</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get next file in the directory.
<p>
Will not return "." or ".." on UNIX. If an error occurs, the contents of "filename" are undefined. The error is never set if the function succeeds.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000067">Todo: </a></b><dd>
for thread safety, I think we have to use readdir_r(). (GLib has the same issue, should file a bug.)</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>iter</em>&nbsp;</td><td>
the iterator </td></tr>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
string to be set to the next file in the dir </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for error </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if filename was filled in with a new filename </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02612">2612</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l02552">DBusDirIter::d</a>.    </td>
  </tr>
</table>
<a name="a89" doxytag="dbus-sysdeps.c::_dbus_directory_open"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusDirIter.html">DBusDirIter</a>* _dbus_directory_open </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Open a directory to iterate over.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
the directory name </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
exception return object or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
new iterator, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> on error </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02564">2564</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l02552">DBusDirIter::d</a>.    </td>
  </tr>
</table>
<a name="a9" doxytag="dbus-internals.c::_dbus_dup_string_array"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> char** _dbus_dup_string_array </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char **&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>array</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Duplicates a string array.
<p>
Result may be freed with <a class="el" href="group__DBusMemory.html#a4">dbus_free_string_array</a>(). Returns <a class="el" href="group__DBusMacros.html#a4">NULL</a> if memory allocation fails. If the array to be duplicated is <a class="el" href="group__DBusMacros.html#a4">NULL</a>, returns <a class="el" href="group__DBusMacros.html#a4">NULL</a>.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>array</em>&nbsp;</td><td>
array to duplicate. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
newly-allocated copy. </dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00302">302</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a98" doxytag="dbus-sysdeps.c::_dbus_error_from_errno"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* _dbus_error_from_errno </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>error_number</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Converts a UNIX errno into a DBusError name.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000068">Todo: </a></b><dd>
should cover more errnos, specifically those from open().</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>error_number</em>&nbsp;</td><td>
the errno. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
an error name </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02839">2839</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a99" doxytag="dbus-sysdeps.c::_dbus_exit"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_exit </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>code</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Exit the process, returning the given value.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>code</em>&nbsp;</td><td>
the exit code </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02933">2933</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a97" doxytag="dbus-sysdeps.c::_dbus_fd_set_close_on_exec"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_fd_set_close_on_exec </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>fd</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the file descriptor to be close on exec.
<p>
Should be called for all file descriptors in D-BUS code.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>fd</em>&nbsp;</td><td>
the file descriptor </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02815">2815</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a80" doxytag="dbus-sysdeps.c::_dbus_file_get_contents"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_file_get_contents </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends the contents of the given file to the string, returning error code.
<p>
At the moment, won't open a file more than a megabyte in size.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string to append to </td></tr>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
filename to load </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
place to set an error </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error was set </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02078">2078</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a101" doxytag="dbus-sysdeps.c::_dbus_full_duplex_pipe"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_full_duplex_pipe </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fd1</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fd2</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>blocking</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a full-duplex pipe (as in socketpair()).
<p>
Sets both ends of the pipe nonblocking.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>fd1</em>&nbsp;</td><td>
return location for one end </td></tr>
<tr><td valign=top><em>fd2</em>&nbsp;</td><td>
return location for the other end </td></tr>
<tr><td valign=top><em>blocking</em>&nbsp;</td><td>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if pipe should be blocking </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error return </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> on failure (if error is set) </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02988">2988</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a94" doxytag="dbus-sysdeps.c::_dbus_generate_random_ascii"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_generate_random_ascii </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>n_bytes</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates the given number of random bytes, where the bytes are chosen from the alphanumeric ASCII subset.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>n_bytes</em>&nbsp;</td><td>
the number of random ASCII bytes to append to string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory or other failure </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02751">2751</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a93" doxytag="dbus-sysdeps.c::_dbus_generate_random_bytes"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_generate_random_bytes </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>n_bytes</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates the given number of random bytes, using the best mechanism we can come up with.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>n_bytes</em>&nbsp;</td><td>
the number of random bytes to append to string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02707">2707</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a79" doxytag="dbus-sysdeps.c::_dbus_get_current_time"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_get_current_time </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">long *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>tv_sec</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>long *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>tv_usec</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get current time, as in gettimeofday().
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>tv_sec</em>&nbsp;</td><td>
return location for number of seconds </td></tr>
<tr><td valign=top><em>tv_usec</em>&nbsp;</td><td>
return location for number of microseconds (thousandths) </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02054">2054</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a118" doxytag="dbus-userdb.c::_dbus_get_group_id"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_get_group_id </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>groupname</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_gid_t *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>gid</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets group ID given groupname.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>groupname</em>&nbsp;</td><td>
the groupname </td></tr>
<tr><td valign=top><em>gid</em>&nbsp;</td><td>
return location for GID </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if group name existed and we got the GID </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00408">408</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00160">DBusGroupInfo::gid</a>.    </td>
  </tr>
</table>
<a name="a117" doxytag="dbus-userdb.c::_dbus_get_user_id"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_get_user_id </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>username</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_uid_t *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>uid</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets user ID given username.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>username</em>&nbsp;</td><td>
the username </td></tr>
<tr><td valign=top><em>uid</em>&nbsp;</td><td>
return location for UID </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if username existed and we got the UID </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00384">384</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBusCredentials::uid</a>.    </td>
  </tr>
</table>
<a name="a46" doxytag="dbus-sysdeps.c::_dbus_getenv"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* _dbus_getenv </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>varname</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Wrapper for getenv().
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>varname</em>&nbsp;</td><td>
name of environment variable </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
value of environment variable or <a class="el" href="group__DBusMacros.html#a4">NULL</a> if unset </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00169">169</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a73" doxytag="dbus-sysdeps.c::_dbus_getgid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> dbus_gid_t _dbus_getgid </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets our GID.
<p>
<dl compact><dt><b>
Returns: </b><dd>
process GID </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01842">1842</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a71" doxytag="dbus-sysdeps.c::_dbus_getpid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> unsigned long _dbus_getpid </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets our process ID.
<p>
<dl compact><dt><b>
Returns: </b><dd>
process ID </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01824">1824</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a72" doxytag="dbus-sysdeps.c::_dbus_getuid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> dbus_uid_t _dbus_getuid </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets our UID.
<p>
<dl compact><dt><b>
Returns: </b><dd>
process UID </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01833">1833</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a65" doxytag="dbus-sysdeps.c::_dbus_group_info_fill"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_group_info_fill </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>info</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>groupname</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Initializes the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> struct with information about the given group name.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
the group info struct </td></tr>
<tr><td valign=top><em>groupname</em>&nbsp;</td><td>
name of group </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
the error return </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error is set </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01723">1723</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a66" doxytag="dbus-sysdeps.c::_dbus_group_info_fill_gid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_group_info_fill_gid </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>info</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_gid_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>gid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Initializes the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> struct with information about the given group ID.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
the group info struct </td></tr>
<tr><td valign=top><em>gid</em>&nbsp;</td><td>
group ID </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
the error return </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error is set </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01742">1742</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a67" doxytag="dbus-sysdeps.c::_dbus_group_info_free"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_group_info_free </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>info</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Frees the members of info (but not info itself).
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
the group info </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01755">1755</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00161">DBusGroupInfo::groupname</a>.    </td>
  </tr>
</table>
<a name="a12" doxytag="dbus-internals.c::_dbus_header_field_to_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* _dbus_header_field_to_string </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>header_field</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns a string describing the given name.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>header_field</em>&nbsp;</td><td>
the field to describe </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
a constant string describing the field </dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00401">401</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a116" doxytag="dbus-userdb.c::_dbus_homedir_from_current_process"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_homedir_from_current_process </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> **&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>homedir</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets homedir of user owning current process.
<p>
The returned string is valid until <a class="el" href="group__DBusMemory.html#a5">dbus_shutdown</a>() is called.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>homedir</em>&nbsp;</td><td>
place to store pointer to homedir </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00362">362</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.    </td>
  </tr>
</table>
<a name="a119" doxytag="dbus-userdb.c::_dbus_homedir_from_username"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_homedir_from_username </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>username</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>homedir</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the home directory for the given user.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>username</em>&nbsp;</td><td>
the username </td></tr>
<tr><td valign=top><em>homedir</em>&nbsp;</td><td>
string to append home directory to </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if user existed and we appended their homedir </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00443">443</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00152">DBusUserInfo::homedir</a>.    </td>
  </tr>
</table>
<a name="a53" doxytag="dbus-sysdeps.c::_dbus_listen_tcp_socket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_listen_tcp_socket </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>host</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>port</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a socket and binds it to the given path, then listens on the socket.
<p>
The socket is set to be nonblocking.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>host</em>&nbsp;</td><td>
the host name to listen on </td></tr>
<tr><td valign=top><em>port</em>&nbsp;</td><td>
the prot to listen on </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for errors </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the listening file descriptor or -1 on error </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00669">669</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a51" doxytag="dbus-sysdeps.c::_dbus_listen_unix_socket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_listen_unix_socket </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>path</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>abstract</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a socket and binds it to the given path, then listens on the socket.
<p>
The socket is set to be nonblocking.
<p>
Uses abstract sockets instead of filesystem-linked sockets if requested (it's possible only on Linux; see "man 7 unix" on Linux). On non-Linux abstract socket usage always fails.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>path</em>&nbsp;</td><td>
the socket name </td></tr>
<tr><td valign=top><em>abstract</em>&nbsp;</td><td>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> to use abstract namespace </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for errors </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the listening file descriptor or -1 on error </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00481">481</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a8" doxytag="dbus-internals.c::_dbus_memdup"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void* _dbus_memdup </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mem</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>n_bytes</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Duplicates a block of memory.
<p>
Returns <a class="el" href="group__DBusMacros.html#a4">NULL</a> on failure.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mem</em>&nbsp;</td><td>
memory to copy </td></tr>
<tr><td valign=top><em>n_bytes</em>&nbsp;</td><td>
number of bytes to copy </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the copy </dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00279">279</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a88" doxytag="dbus-sysdeps.c::_dbus_path_is_absolute"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_path_is_absolute </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>filename</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks whether the filename is an absolute path.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
the filename </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if an absolute path </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02539">2539</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a77" doxytag="dbus-sysdeps.c::_dbus_poll"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_poll </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusPollFD.html">DBusPollFD</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fds</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>n_fds</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>timeout_milliseconds</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Wrapper for poll().
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>fds</em>&nbsp;</td><td>
the file descriptors to poll </td></tr>
<tr><td valign=top><em>n_fds</em>&nbsp;</td><td>
number of descriptors in the array </td></tr>
<tr><td valign=top><em>timeout_milliseconds</em>&nbsp;</td><td>
timeout or -1 for infinite </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
numbers of fds with revents, or &lt;0 on error </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01921">1921</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00211">DBusPollFD::events</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00210">DBusPollFD::fd</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00212">DBusPollFD::revents</a>.    </td>
  </tr>
</table>
<a name="a104" doxytag="dbus-sysdeps.c::_dbus_print_backtrace"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_print_backtrace </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
On GNU libc systems, print a crude backtrace to the verbose log.
<p>
On other systems, print "no backtrace support" 
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l03103">3103</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a47" doxytag="dbus-sysdeps.c::_dbus_read"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_read </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>count</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Thin wrapper around the read() system call that appends the data it reads to the <a class="el" href="structDBusString.html">DBusString</a> buffer.
<p>
It appends up to the given count, and returns the same value and same errno as read(). The only exception is that <a class="el" href="group__DBusInternalsUtils.html#a47">_dbus_read</a>() handles EINTR for you. <a class="el" href="group__DBusInternalsUtils.html#a47">_dbus_read</a>() can return ENOMEM, even though regular UNIX read doesn't.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>fd</em>&nbsp;</td><td>
the file descriptor to read from </td></tr>
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
the buffer to append data to </td></tr>
<tr><td valign=top><em>count</em>&nbsp;</td><td>
the amount of data to read </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the number of bytes read or -1 </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00188">188</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a55" doxytag="dbus-sysdeps.c::_dbus_read_credentials_unix_socket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_read_credentials_unix_socket </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>client_fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>credentials</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Reads a single byte which must be nul (an error occurs otherwise), and reads unix credentials if available.
<p>
Fills in pid/uid/gid with -1 if no credentials are available. Return value indicates whether a byte was read, not whether we got valid credentials. On some systems, such as Linux, reading/writing the byte isn't actually required, but we do it anyway just to avoid multiple codepaths.
<p>
Fails if no byte is available, so you must select() first.
<p>
The point of the byte is that on some systems we have to use sendmsg()/recvmsg() to transmit credentials.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>client_fd</em>&nbsp;</td><td>
the client file descriptor </td></tr>
<tr><td valign=top><em>credentials</em>&nbsp;</td><td>
struct to fill with credentials of client </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
location to store error code </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00790">790</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00109">DBusCredentials::gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00107">DBusCredentials::pid</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBusCredentials::uid</a>.    </td>
  </tr>
</table>
<a name="a13" doxytag="dbus-internals.c::_dbus_real_assert"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_real_assert </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>condition</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>condition_text</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>file</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>line</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internals of <a class="el" href="group__DBusInternalsUtils.html#a131">_dbus_assert</a>(); it's a function rather than a macro with the inline code so that the assertion failure blocks don't show up in test suite coverage, and to shrink code size.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>condition</em>&nbsp;</td><td>
TRUE if assertion succeeded </td></tr>
<tr><td valign=top><em>condition_text</em>&nbsp;</td><td>
condition as a string </td></tr>
<tr><td valign=top><em>file</em>&nbsp;</td><td>
file the assertion is in </td></tr>
<tr><td valign=top><em>line</em>&nbsp;</td><td>
line the assertion is in </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00446">446</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a14" doxytag="dbus-internals.c::_dbus_real_assert_not_reached"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_real_assert_not_reached </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>explanation</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>file</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>line</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internals of <a class="el" href="group__DBusInternalsUtils.html#a132">_dbus_assert_not_reached</a>(); it's a function rather than a macro with the inline code so that the assertion failure blocks don't show up in test suite coverage, and to shrink code size.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>explanation</em>&nbsp;</td><td>
what was reached that shouldn't have been </td></tr>
<tr><td valign=top><em>file</em>&nbsp;</td><td>
file the assertion is in </td></tr>
<tr><td valign=top><em>line</em>&nbsp;</td><td>
line the assertion is in </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00470">470</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a56" doxytag="dbus-sysdeps.c::_dbus_send_credentials_unix_socket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_send_credentials_unix_socket </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>server_fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sends a single nul byte with our UNIX credentials as ancillary data.
<p>
Returns <a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the data was successfully written. On systems that don't support sending credentials, just writes a byte, doesn't send any credentials. On some systems, such as Linux, reading/writing the byte isn't actually required, but we do it anyway just to avoid multiple codepaths.
<p>
Fails if no byte can be written, so you must select() first.
<p>
The point of the byte is that on some systems we have to use sendmsg()/recvmsg() to transmit credentials.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>server_fd</em>&nbsp;</td><td>
file descriptor for connection to server </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for error code </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the byte was sent </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00929">929</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a103" doxytag="dbus-internals.h::_dbus_set_fd_nonblocking"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_set_fd_nonblocking </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets a file descriptor to be nonblocking.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>fd</em>&nbsp;</td><td>
the file descriptor. </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
address of error location. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success. </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l03065">3065</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a108" doxytag="dbus-sysdeps.c::_dbus_set_signal_handler"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_set_signal_handler </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>sig</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>DBusSignalHandler&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>handler</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Installs a UNIX signal handler.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>sig</em>&nbsp;</td><td>
the signal to handle </td></tr>
<tr><td valign=top><em>handler</em>&nbsp;</td><td>
the handler </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l03311">3311</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a45" doxytag="dbus-sysdeps.c::_dbus_setenv"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_setenv </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>varname</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Wrapper for setenv().
<p>
If the value is <a class="el" href="group__DBusMacros.html#a4">NULL</a>, unsets the environment variable.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000063">Todo: </a></b><dd>
if someone can verify it's safe, we could avoid the memleak when doing an unset.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>varname</em>&nbsp;</td><td>
name of environment variable </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
value of environment variable </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success. </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00101">101</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a78" doxytag="dbus-sysdeps.c::_dbus_sleep_milliseconds"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_sleep_milliseconds </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>milliseconds</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sleeps the given number of milliseconds.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>milliseconds</em>&nbsp;</td><td>
number of milliseconds </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02027">2027</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a43" doxytag="dbus-spawn.c::_dbus_spawn_async_with_babysitter"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_spawn_async_with_babysitter </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>sitter_p</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>argv</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>DBusSpawnChildSetupFunc&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>child_setup</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>user_data</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Spawns a new process.
<p>
The executable name and argv[0] are the same, both are provided in argv[0]. The child_setup function is passed the given user_data and is run in the child just before calling exec().
<p>
Also creates a "babysitter" which tracks the status of the child process, advising the parent if the child exits. If the spawn fails, no babysitter is created. If sitter_p is <a class="el" href="group__DBusMacros.html#a4">NULL</a>, no babysitter is kept.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>sitter_p</em>&nbsp;</td><td>
return location for babysitter or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
<tr><td valign=top><em>argv</em>&nbsp;</td><td>
the executable and arguments </td></tr>
<tr><td valign=top><em>child_setup</em>&nbsp;</td><td>
function to call in child pre-exec() </td></tr>
<tr><td valign=top><em>user_data</em>&nbsp;</td><td>
user data for setup function </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error object to be filled in if function fails </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error is filled in </dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00998">998</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-spawn_8c-source.html#l00189">DBusBabysitter::error_pipe_from_child</a>, <a class="el" href="dbus-spawn_8c-source.html#l00196">DBusBabysitter::error_watch</a>, <a class="el" href="dbus-spawn_8c-source.html#l00186">DBusBabysitter::executable</a>, <a class="el" href="dbus-spawn_8c-source.html#l00191">DBusBabysitter::sitter_pid</a>, <a class="el" href="dbus-spawn_8c-source.html#l00197">DBusBabysitter::sitter_watch</a>, <a class="el" href="dbus-spawn_8c-source.html#l00188">DBusBabysitter::socket_to_babysitter</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00194">DBusBabysitter::watches</a>.    </td>
  </tr>
</table>
<a name="a100" doxytag="dbus-sysdeps.c::_dbus_stat"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_stat </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusStat.html">DBusStat</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>statbuf</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
stat() wrapper.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
the filename to stat </td></tr>
<tr><td valign=top><em>statbuf</em>&nbsp;</td><td>
the stat info to fill in </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for error </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error was set </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02947">2947</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00281">DBusStat::atime</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00283">DBusStat::ctime</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00279">DBusStat::gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00276">DBusStat::mode</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00282">DBusStat::mtime</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00277">DBusStat::nlink</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00280">DBusStat::size</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00278">DBusStat::uid</a>.    </td>
  </tr>
</table>
<a name="a7" doxytag="dbus-internals.c::_dbus_strdup"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> char* _dbus_strdup </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Duplicates a string.
<p>
Result must be freed with <a class="el" href="group__DBusMemory.html#a3">dbus_free</a>(). Returns <a class="el" href="group__DBusMacros.html#a4">NULL</a> if memory allocation fails. If the string to be duplicated is <a class="el" href="group__DBusMacros.html#a4">NULL</a>, returns <a class="el" href="group__DBusMacros.html#a4">NULL</a>.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
string to duplicate. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
newly-allocated copy. </dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00251">251</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a95" doxytag="dbus-internals.h::_dbus_strerror"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* _dbus_strerror </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>error_number</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A wrapper around strerror() because some platforms may be lame and not have strerror().
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>error_number</em>&nbsp;</td><td>
errno. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
error description. </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02787">2787</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a10" doxytag="dbus-internals.c::_dbus_string_array_contains"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_array_contains </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>array</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks whether a string array contains the given string.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>array</em>&nbsp;</td><td>
array to search. </td></tr>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
string to look for </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if array contains string </dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00342">342</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a87" doxytag="dbus-sysdeps.c::_dbus_string_get_dirname"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_get_dirname </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dirname</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the directory name from a complete filename.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
the filename </td></tr>
<tr><td valign=top><em>dirname</em>&nbsp;</td><td>
string to append directory name to </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02491">2491</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a81" doxytag="dbus-sysdeps.c::_dbus_string_save_to_file"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_save_to_file </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Writes a string out to a file.
<p>
If the file exists, it will be atomically overwritten by the new data.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string to write out </td></tr>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
the file to save string to </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error to be filled in on failure </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> on failure </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l02184">2184</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a111" doxytag="dbus-sysdeps.c::_dbus_sysdeps_test"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_sysdeps_test </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Unit test for dbus-sysdeps.c.
<p>
<dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success. </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l03375">3375</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a16" doxytag="dbus-internals.c::_dbus_test_oom_handling"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_test_oom_handling </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>description</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>DBusTestMemoryFunction&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>func</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>data</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Tests how well the given function responds to out-of-memory situations.
<p>
Calls the function repeatedly, failing a different call to malloc() each time. If the function ever returns <a class="el" href="group__DBusMacros.html#a3">FALSE</a>, the test fails. The function should return <a class="el" href="group__DBusMacros.html#a2">TRUE</a> whenever something valid (such as returning an error, or succeeding) occurs, and <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if it gets confused in some way.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>description</em>&nbsp;</td><td>
description of the test used in verbose output </td></tr>
<tr><td valign=top><em>func</em>&nbsp;</td><td>
function to call </td></tr>
<tr><td valign=top><em>data</em>&nbsp;</td><td>
data to pass to function </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the function never returns FALSE </dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00522">522</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a11" doxytag="dbus-internals.c::_dbus_type_to_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* _dbus_type_to_string </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>type</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns a string describing the given type.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>type</em>&nbsp;</td><td>
the type to describe </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
a constant string describing the type </dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00365">365</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a120" doxytag="dbus-userdb.c::_dbus_uid_from_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_uid_from_string </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>uid_str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_uid_t *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>uid</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets a UID from a UID string.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>uid_str</em>&nbsp;</td><td>
the UID in string form </td></tr>
<tr><td valign=top><em>uid</em>&nbsp;</td><td>
UID to fill in </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if successfully filled in UID </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00482">482</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.    </td>
  </tr>
</table>
<a name="a128" doxytag="dbus-userdb.c::_dbus_user_database_get_gid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_user_database_get_gid </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>db</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_gid_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>gid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>info</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the user information for the given GID, returned group info should not be freed.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>db</em>&nbsp;</td><td>
user database </td></tr>
<tr><td valign=top><em>gid</em>&nbsp;</td><td>
the group ID </td></tr>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
return location for const ref to group info </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error location </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error is set </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00760">760</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.    </td>
  </tr>
</table>
<a name="a130" doxytag="dbus-userdb.c::_dbus_user_database_get_groupname"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_user_database_get_groupname </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>db</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>groupname</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>info</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the user information for the given group name, returned group info should not be freed.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>db</em>&nbsp;</td><td>
user database </td></tr>
<tr><td valign=top><em>groupname</em>&nbsp;</td><td>
the group name </td></tr>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
return location for const ref to group info </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error location </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error is set </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00799">799</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.    </td>
  </tr>
</table>
<a name="a126" doxytag="dbus-userdb.c::_dbus_user_database_get_groups"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_user_database_get_groups </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>db</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_uid_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>uid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_gid_t **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>group_ids</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>n_group_ids</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets all groups for a particular user.
<p>
Returns <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory, or user isn't known, but always initializes group_ids to a NULL array. Sets error to the reason for returning <a class="el" href="group__DBusMacros.html#a3">FALSE</a>.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>db</em>&nbsp;</td><td>
the user database object </td></tr>
<tr><td valign=top><em>uid</em>&nbsp;</td><td>
the user ID </td></tr>
<tr><td valign=top><em>group_ids</em>&nbsp;</td><td>
return location for array of group IDs </td></tr>
<tr><td valign=top><em>n_group_ids</em>&nbsp;</td><td>
return location for length of returned array </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for error </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00692">692</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00149">DBusUserInfo::group_ids</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00150">DBusUserInfo::n_group_ids</a>.    </td>
  </tr>
</table>
<a name="a114" doxytag="dbus-userdb.c::_dbus_user_database_get_system"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a>* _dbus_user_database_get_system </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the system global user database; must be called with lock held (<a class="el" href="group__DBusInternalsUtils.html#a112">_dbus_user_database_lock_system</a>()).
<p>
<dl compact><dt><b>
Returns: </b><dd>
the database or <a class="el" href="group__DBusMacros.html#a4">NULL</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00323">323</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.    </td>
  </tr>
</table>
<a name="a127" doxytag="dbus-userdb.c::_dbus_user_database_get_uid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_user_database_get_uid </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>db</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_uid_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>uid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>info</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the user information for the given UID, returned user info should not be freed.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>db</em>&nbsp;</td><td>
user database </td></tr>
<tr><td valign=top><em>uid</em>&nbsp;</td><td>
the user ID </td></tr>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
return location for const ref to user info </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error location </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error is set </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00740">740</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.    </td>
  </tr>
</table>
<a name="a129" doxytag="dbus-userdb.c::_dbus_user_database_get_username"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_user_database_get_username </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>db</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>username</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>info</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the user information for the given username.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>db</em>&nbsp;</td><td>
user database </td></tr>
<tr><td valign=top><em>username</em>&nbsp;</td><td>
the user name </td></tr>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
return location for const ref to user info </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error location </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if error is set </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00779">779</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.    </td>
  </tr>
</table>
<a name="a123" doxytag="dbus-userdb.c::_dbus_user_database_new"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a>* _dbus_user_database_new </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a new user database object used to look up and cache user information.
<p>
<dl compact><dt><b>
Returns: </b><dd>
new database, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> on out of memory </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00596">596</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00037">DBusUserDatabase::groups</a>, <a class="el" href="dbus-userdb_8c-source.html#l00039">DBusUserDatabase::groups_by_name</a>, <a class="el" href="dbus-userdb_8c-source.html#l00034">DBusUserDatabase::refcount</a>, <a class="el" href="dbus-userdb_8c-source.html#l00036">DBusUserDatabase::users</a>, and <a class="el" href="dbus-userdb_8c-source.html#l00038">DBusUserDatabase::users_by_name</a>.    </td>
  </tr>
</table>
<a name="a124" doxytag="dbus-userdb.c::_dbus_user_database_ref"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a>* _dbus_user_database_ref </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>db</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Increments refcount of user database.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>db</em>&nbsp;</td><td>
the database </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the database </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00641">641</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00034">DBusUserDatabase::refcount</a>.    </td>
  </tr>
</table>
<a name="a125" doxytag="dbus-userdb.c::_dbus_user_database_unref"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_user_database_unref </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserDatabase.html">DBusUserDatabase</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>db</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Decrements refcount of user database.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>db</em>&nbsp;</td><td>
the database </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00655">655</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00037">DBusUserDatabase::groups</a>, <a class="el" href="dbus-userdb_8c-source.html#l00039">DBusUserDatabase::groups_by_name</a>, <a class="el" href="dbus-userdb_8c-source.html#l00034">DBusUserDatabase::refcount</a>, <a class="el" href="dbus-userdb_8c-source.html#l00036">DBusUserDatabase::users</a>, and <a class="el" href="dbus-userdb_8c-source.html#l00038">DBusUserDatabase::users_by_name</a>.    </td>
  </tr>
</table>
<a name="a60" doxytag="dbus-sysdeps.c::_dbus_user_info_fill"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_user_info_fill </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>info</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>username</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets user info for the given username.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
user info object to initialize </td></tr>
<tr><td valign=top><em>username</em>&nbsp;</td><td>
the username </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error return </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01579">1579</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a61" doxytag="dbus-sysdeps.c::_dbus_user_info_fill_uid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_user_info_fill_uid </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>info</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_uid_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>uid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets user info for the given user ID.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
user info object to initialize </td></tr>
<tr><td valign=top><em>uid</em>&nbsp;</td><td>
the user ID </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
error return </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01596">1596</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a62" doxytag="dbus-sysdeps.c::_dbus_user_info_free"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_user_info_free </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>info</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Frees the members of info (but not info itself).
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>info</em>&nbsp;</td><td>
the user info struct </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01610">1610</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00149">DBusUserInfo::group_ids</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00152">DBusUserInfo::homedir</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00151">DBusUserInfo::username</a>.    </td>
  </tr>
</table>
<a name="a115" doxytag="dbus-userdb.c::_dbus_username_from_current_process"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_username_from_current_process </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> **&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>username</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets username of user owning current process.
<p>
The returned string is valid until <a class="el" href="group__DBusMemory.html#a5">dbus_shutdown</a>() is called.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>username</em>&nbsp;</td><td>
place to store pointer to username </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00340">340</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.    </td>
  </tr>
</table>
<a name="a5" doxytag="dbus-internals.c::_dbus_verbose_real"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_verbose_real </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>...&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Prints a warning message to stderr if the user has enabled verbose mode.
<p>
This is the real function implementation, use _dbus_verbose() macro in code.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>format</em>&nbsp;</td><td>
printf-style format string. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00188">188</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a4" doxytag="dbus-internals.c::_dbus_warn"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_warn </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>...&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Prints a warning message to stderr.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>format</em>&nbsp;</td><td>
printf-style format string. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00166">166</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<a name="a48" doxytag="dbus-sysdeps.c::_dbus_write"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_write </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Thin wrapper around the write() system call that writes a part of a <a class="el" href="structDBusString.html">DBusString</a> and handles EINTR for you.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>fd</em>&nbsp;</td><td>
the file descriptor to write </td></tr>
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
the buffer to write data from </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
the first byte in the buffer to write </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
the number of bytes to try to write </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the number of bytes written or -1 on error </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00248">248</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a106" doxytag="dbus-sysdeps.c::_dbus_write_pid_file"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_write_pid_file </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned long&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>pid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a file containing the process ID.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
the filename to write to </td></tr>
<tr><td valign=top><em>pid</em>&nbsp;</td><td>
our process ID </td></tr>
<tr><td valign=top><em>error</em>&nbsp;</td><td>
return location for errors </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> on failure </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l03223">3223</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a49" doxytag="dbus-sysdeps.c::_dbus_write_two"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_write_two </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>buffer1</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start1</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len1</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>buffer2</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start2</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len2</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Like <a class="el" href="group__DBusInternalsUtils.html#a48">_dbus_write</a>() but will use writev() if possible to write both buffers in sequence.
<p>
The return value is the number of bytes written in the first buffer, plus the number written in the second. If the first buffer is written successfully and an error occurs writing the second, the number of bytes in the first is returned (i.e. the error is ignored), on systems that don't have writev. Handles EINTR for you. The second buffer may be <a class="el" href="group__DBusMacros.html#a4">NULL</a>.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>fd</em>&nbsp;</td><td>
the file descriptor </td></tr>
<tr><td valign=top><em>buffer1</em>&nbsp;</td><td>
first buffer </td></tr>
<tr><td valign=top><em>start1</em>&nbsp;</td><td>
first byte to write in first buffer </td></tr>
<tr><td valign=top><em>len1</em>&nbsp;</td><td>
number of bytes to write from first buffer </td></tr>
<tr><td valign=top><em>buffer2</em>&nbsp;</td><td>
second buffer, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
<tr><td valign=top><em>start2</em>&nbsp;</td><td>
first byte to write in second buffer </td></tr>
<tr><td valign=top><em>len2</em>&nbsp;</td><td>
number of bytes to write in second buffer </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
total bytes written from both buffers, or -1 on error </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00294">294</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<hr><h2>Variable Documentation</h2>
<a name="a2" doxytag="dbus-internals.c::_dbus_return_if_fail_warning_format"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char _dbus_return_if_fail_warning_format[]
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Initial value:</b><div class="fragment"><pre>
<font class="stringliteral">"%lu: arguments to %s() were incorrect, assertion \"%s\" failed in file %s line %d.\n"</font>
<font class="stringliteral">"This is normally a bug in some application using the D-BUS library.\n"</font></pre></div>String used in _dbus_return_if_fail macro.
<p>

<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00428">428</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.    </td>
  </tr>
</table>
<hr><address align="right"><small>Generated on Wed Jun 9 05:01:28 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>