Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>dbus-sysdeps.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.15 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>dbus-sysdeps.h</h1><div class="fragment"><pre>00001 <font class="comment">/* -*- mode: C; c-file-style: "gnu" -*- */</font>
00002 <font class="comment">/* dbus-sysdeps.h Wrappers around system/libc features (internal to D-BUS implementation)</font>
00003 <font class="comment"> * </font>
00004 <font class="comment"> * Copyright (C) 2002, 2003  Red Hat, Inc.</font>
00005 <font class="comment"> * Copyright (C) 2003 CodeFactory AB</font>
00006 <font class="comment"> *</font>
00007 <font class="comment"> * Licensed under the Academic Free License version 2.0</font>
00008 <font class="comment"> * </font>
00009 <font class="comment"> * This program is free software; you can redistribute it and/or modify</font>
00010 <font class="comment"> * it under the terms of the GNU General Public License as published by</font>
00011 <font class="comment"> * the Free Software Foundation; either version 2 of the License, or</font>
00012 <font class="comment"> * (at your option) any later version.</font>
00013 <font class="comment"> *</font>
00014 <font class="comment"> * This program is distributed in the hope that it will be useful,</font>
00015 <font class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00016 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
00017 <font class="comment"> * GNU General Public License for more details.</font>
00018 <font class="comment"> * </font>
00019 <font class="comment"> * You should have received a copy of the GNU General Public License</font>
00020 <font class="comment"> * along with this program; if not, write to the Free Software</font>
00021 <font class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</font>
00022 <font class="comment"> *</font>
00023 <font class="comment"> */</font>
00024 
00025 <font class="preprocessor">#ifndef DBUS_SYSDEPS_H</font>
00026 <font class="preprocessor"></font><font class="preprocessor">#define DBUS_SYSDEPS_H</font>
00027 <font class="preprocessor"></font>
00028 <font class="preprocessor">#include &lt;config.h&gt;</font>
00029 
00030 <font class="preprocessor">#include &lt;dbus/dbus-errors.h&gt;</font>
00031 
00032 <font class="comment">/* this is perhaps bogus, but strcmp() etc. are faster if we use the</font>
00033 <font class="comment"> * stuff straight out of string.h, so have this here for now.</font>
00034 <font class="comment"> */</font>
00035 <font class="preprocessor">#include &lt;string.h&gt;</font>
00036 
00037 <font class="comment">/* and it would just be annoying to abstract this */</font>
00038 <font class="preprocessor">#include &lt;errno.h&gt;</font>
00039 
00040 DBUS_BEGIN_DECLS;
00041 
00042 <font class="comment">/* The idea of this file is to encapsulate everywhere that we're</font>
00043 <font class="comment"> * relying on external libc features, for ease of security</font>
00044 <font class="comment"> * auditing. The idea is from vsftpd. This also gives us a chance to</font>
00045 <font class="comment"> * make things more convenient to use, e.g.  by reading into a</font>
00046 <font class="comment"> * DBusString. Operating system headers aren't intended to be used</font>
00047 <font class="comment"> * outside of this file and a limited number of others (such as</font>
00048 <font class="comment"> * dbus-memory.c)</font>
00049 <font class="comment"> */</font>
00050 
00051 <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="structDBusString.html">DBusString</a> DBusString;
00052 
00053 <font class="preprocessor">#if     __GNUC__ &gt; 2 || (__GNUC__ == 2 &amp;&amp; __GNUC_MINOR__ &gt; 4)</font>
00054 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_GNUC_PRINTF( format_idx, arg_idx )    \</font>
00055 <font class="preprocessor">  __attribute__((__format__ (__printf__, format_idx, arg_idx)))</font>
00056 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_GNUC_SCANF( format_idx, arg_idx )     \</font>
00057 <font class="preprocessor">  __attribute__((__format__ (__scanf__, format_idx, arg_idx)))</font>
00058 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_GNUC_FORMAT( arg_idx )                \</font>
00059 <font class="preprocessor">  __attribute__((__format_arg__ (arg_idx)))</font>
00060 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_GNUC_NORETURN                         \</font>
00061 <font class="preprocessor">  __attribute__((__noreturn__))</font>
00062 <font class="preprocessor"></font><font class="preprocessor">#else   </font><font class="comment">/* !__GNUC__ */</font>
00063 <font class="preprocessor">#define _DBUS_GNUC_PRINTF( format_idx, arg_idx )</font>
00064 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_GNUC_SCANF( format_idx, arg_idx )</font>
00065 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_GNUC_FORMAT( arg_idx )</font>
00066 <font class="preprocessor"></font><font class="preprocessor">#define _DBUS_GNUC_NORETURN</font>
00067 <font class="preprocessor"></font><font class="preprocessor">#endif  </font><font class="comment">/* !__GNUC__ */</font>
00068 
00069 <font class="keywordtype">void</font> _dbus_abort (<font class="keywordtype">void</font>) _DBUS_GNUC_NORETURN;
00070 
00071 <font class="keyword">const</font> <font class="keywordtype">char</font>* _dbus_getenv (<font class="keyword">const</font> <font class="keywordtype">char</font> *varname);
00072 dbus_bool_t _dbus_setenv (<font class="keyword">const</font> <font class="keywordtype">char</font> *varname,
00073                           <font class="keyword">const</font> <font class="keywordtype">char</font> *value);
00074 
00075 <font class="keywordtype">int</font> _dbus_read      (<font class="keywordtype">int</font>               fd,
00076                      DBusString       *buffer,
00077                      <font class="keywordtype">int</font>               count);
00078 <font class="keywordtype">int</font> _dbus_write     (<font class="keywordtype">int</font>               fd,
00079                      <font class="keyword">const</font> DBusString *buffer,
00080                      <font class="keywordtype">int</font>               start,
00081                      <font class="keywordtype">int</font>               len);
00082 <font class="keywordtype">int</font> _dbus_write_two (<font class="keywordtype">int</font>               fd,
00083                      <font class="keyword">const</font> DBusString *buffer1,
00084                      <font class="keywordtype">int</font>               start1,
00085                      <font class="keywordtype">int</font>               len1,
00086                      <font class="keyword">const</font> DBusString *buffer2,
00087                      <font class="keywordtype">int</font>               start2,
00088                      <font class="keywordtype">int</font>               len2);
00089 
00090 <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> dbus_pid_t;
00091 <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> dbus_uid_t;
00092 <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> dbus_gid_t;
00093 
00094 <font class="preprocessor">#define DBUS_PID_UNSET ((dbus_pid_t) -1)</font>
00095 <font class="preprocessor"></font><font class="preprocessor">#define DBUS_UID_UNSET ((dbus_uid_t) -1)</font>
00096 <font class="preprocessor"></font><font class="preprocessor">#define DBUS_GID_UNSET ((dbus_gid_t) -1)</font>
00097 <font class="preprocessor"></font>
00098 <font class="preprocessor">#define DBUS_PID_FORMAT "%lu"</font>
00099 <font class="preprocessor"></font><font class="preprocessor">#define DBUS_UID_FORMAT "%lu"</font>
00100 <font class="preprocessor"></font><font class="preprocessor">#define DBUS_GID_FORMAT "%lu"</font>
00101 <font class="preprocessor"></font>
<a name="l00105"></a><a class="code" href="structDBusCredentials.html">00105</a> <font class="keyword">typedef</font> <font class="keyword">struct</font>
00106 <font class="keyword"></font>{
<a name="l00107"></a><a class="code" href="structDBusCredentials.html#m0">00107</a>   dbus_pid_t pid; 
<a name="l00108"></a><a class="code" href="structDBusCredentials.html#m1">00108</a>   dbus_uid_t uid; 
<a name="l00109"></a><a class="code" href="structDBusCredentials.html#m2">00109</a>   dbus_gid_t gid; 
00110 } <a class="code" href="structDBusCredentials.html">DBusCredentials</a>;
00111 
00112 <font class="keywordtype">int</font> _dbus_connect_unix_socket (<font class="keyword">const</font> <font class="keywordtype">char</font>     *path,
00113                                dbus_bool_t     <font class="keyword">abstract</font>,
00114                                <a class="code" href="structDBusError.html">DBusError</a>      *error);
00115 <font class="keywordtype">int</font> _dbus_listen_unix_socket  (<font class="keyword">const</font> <font class="keywordtype">char</font>     *path,
00116                                dbus_bool_t     <font class="keyword">abstract</font>,
00117                                <a class="code" href="structDBusError.html">DBusError</a>      *error);
00118 <font class="keywordtype">int</font> _dbus_connect_tcp_socket  (<font class="keyword">const</font> <font class="keywordtype">char</font>     *host,
00119                                dbus_uint32_t   port,
00120                                <a class="code" href="structDBusError.html">DBusError</a>      *error);
00121 <font class="keywordtype">int</font> _dbus_listen_tcp_socket   (<font class="keyword">const</font> <font class="keywordtype">char</font>     *host,
00122                                dbus_uint32_t   port,
00123                                <a class="code" href="structDBusError.html">DBusError</a>      *error);
00124 <font class="keywordtype">int</font> _dbus_accept              (<font class="keywordtype">int</font>             listen_fd);
00125 
00126 dbus_bool_t _dbus_read_credentials_unix_socket (<font class="keywordtype">int</font>              client_fd,
00127                                                 <a class="code" href="structDBusCredentials.html">DBusCredentials</a> *credentials,
00128                                                 <a class="code" href="structDBusError.html">DBusError</a>       *error);
00129 dbus_bool_t _dbus_send_credentials_unix_socket (<font class="keywordtype">int</font>              server_fd,
00130                                                 <a class="code" href="structDBusError.html">DBusError</a>       *error);
00131 
00132 
00133 <font class="keywordtype">void</font>        _dbus_credentials_clear                (<a class="code" href="structDBusCredentials.html">DBusCredentials</a>       *credentials);
00134 <font class="keywordtype">void</font>        _dbus_credentials_from_current_process (<a class="code" href="structDBusCredentials.html">DBusCredentials</a>       *credentials);
00135 dbus_bool_t _dbus_credentials_match                (<font class="keyword">const</font> <a class="code" href="structDBusCredentials.html">DBusCredentials</a> *expected_credentials,
00136                                                     <font class="keyword">const</font> <a class="code" href="structDBusCredentials.html">DBusCredentials</a> *provided_credentials);
00137 
00138 
00139 <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="structDBusUserInfo.html">DBusUserInfo</a>  DBusUserInfo;
00140 <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="structDBusGroupInfo.html">DBusGroupInfo</a> DBusGroupInfo;
00141 
<a name="l00145"></a><a class="code" href="structDBusUserInfo.html">00145</a> <font class="keyword">struct </font>DBusUserInfo
00146 {
<a name="l00147"></a><a class="code" href="structDBusUserInfo.html#m0">00147</a>   dbus_uid_t  <a class="code" href="structDBusUserInfo.html#m0">uid</a>;            
<a name="l00148"></a><a class="code" href="structDBusUserInfo.html#m1">00148</a>   dbus_gid_t  <a class="code" href="structDBusUserInfo.html#m1">primary_gid</a>;    
<a name="l00149"></a><a class="code" href="structDBusUserInfo.html#m2">00149</a>   dbus_gid_t *<a class="code" href="structDBusUserInfo.html#m2">group_ids</a>;      
<a name="l00150"></a><a class="code" href="structDBusUserInfo.html#m3">00150</a>   <font class="keywordtype">int</font>         <a class="code" href="structDBusUserInfo.html#m3">n_group_ids</a>;    
<a name="l00151"></a><a class="code" href="structDBusUserInfo.html#m4">00151</a>   <font class="keywordtype">char</font>       *<a class="code" href="structDBusUserInfo.html#m4">username</a>;       
<a name="l00152"></a><a class="code" href="structDBusUserInfo.html#m5">00152</a>   <font class="keywordtype">char</font>       *<a class="code" href="structDBusUserInfo.html#m5">homedir</a>;        
00153 };
00154 
<a name="l00158"></a><a class="code" href="structDBusGroupInfo.html">00158</a> <font class="keyword">struct </font>DBusGroupInfo
00159 {
<a name="l00160"></a><a class="code" href="structDBusGroupInfo.html#m0">00160</a>   dbus_gid_t  <a class="code" href="structDBusGroupInfo.html#m0">gid</a>;            
<a name="l00161"></a><a class="code" href="structDBusGroupInfo.html#m1">00161</a>   <font class="keywordtype">char</font>       *<a class="code" href="structDBusGroupInfo.html#m1">groupname</a>;      
00162 };
00163 
00164 dbus_bool_t _dbus_user_info_fill     (DBusUserInfo     *info,
00165                                       <font class="keyword">const</font> DBusString *username,
00166                                       <a class="code" href="structDBusError.html">DBusError</a>        *error);
00167 dbus_bool_t _dbus_user_info_fill_uid (DBusUserInfo     *info,
00168                                       dbus_uid_t        uid,
00169                                       <a class="code" href="structDBusError.html">DBusError</a>        *error);
00170 <font class="keywordtype">void</font>        _dbus_user_info_free     (DBusUserInfo     *info);
00171 
00172 dbus_bool_t _dbus_group_info_fill     (DBusGroupInfo    *info,
00173                                        <font class="keyword">const</font> DBusString *groupname,
00174                                        <a class="code" href="structDBusError.html">DBusError</a>        *error);
00175 dbus_bool_t _dbus_group_info_fill_gid (DBusGroupInfo    *info,
00176                                        dbus_gid_t        gid,
00177                                        <a class="code" href="structDBusError.html">DBusError</a>        *error);
00178 <font class="keywordtype">void</font>        _dbus_group_info_free     (DBusGroupInfo    *info);
00179 
00180 
00181 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> _dbus_getpid (<font class="keywordtype">void</font>);
00182 dbus_uid_t    _dbus_getuid (<font class="keywordtype">void</font>);
00183 dbus_gid_t    _dbus_getgid (<font class="keywordtype">void</font>);
00184 
00185 <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="structDBusAtomic.html">DBusAtomic</a> DBusAtomic;
00186 
<a name="l00190"></a><a class="code" href="structDBusAtomic.html">00190</a> <font class="keyword">struct </font>DBusAtomic
00191 {
<a name="l00192"></a><a class="code" href="structDBusAtomic.html#m0">00192</a>   <font class="keyword">volatile</font> dbus_int32_t <a class="code" href="structDBusAtomic.html#m0">value</a>; 
00193 };
00194 
00195 dbus_int32_t _dbus_atomic_inc (DBusAtomic *atomic);
00196 dbus_int32_t _dbus_atomic_dec (DBusAtomic *atomic);
00197 
00198 <font class="preprocessor">#define _DBUS_POLLIN      0x0001    </font><font class="comment">/* There is data to read */</font>
00199 <font class="preprocessor">#define _DBUS_POLLPRI     0x0002    </font><font class="comment">/* There is urgent data to read */</font>
00200 <font class="preprocessor">#define _DBUS_POLLOUT     0x0004    </font><font class="comment">/* Writing now will not block */</font>
00201 <font class="preprocessor">#define _DBUS_POLLERR     0x0008    </font><font class="comment">/* Error condition */</font>
00202 <font class="preprocessor">#define _DBUS_POLLHUP     0x0010    </font><font class="comment">/* Hung up */</font>
00203 <font class="preprocessor">#define _DBUS_POLLNVAL    0x0020    </font><font class="comment">/* Invalid request: fd not open */</font>
00204 
<a name="l00208"></a><a class="code" href="structDBusPollFD.html">00208</a> <font class="keyword">typedef</font> <font class="keyword">struct</font>
00209 <font class="keyword"></font>{
<a name="l00210"></a><a class="code" href="structDBusPollFD.html#m0">00210</a>   <font class="keywordtype">int</font> fd;            
<a name="l00211"></a><a class="code" href="structDBusPollFD.html#m1">00211</a>   <font class="keywordtype">short</font> events;      
<a name="l00212"></a><a class="code" href="structDBusPollFD.html#m2">00212</a>   <font class="keywordtype">short</font> revents;     
00213 } <a class="code" href="structDBusPollFD.html">DBusPollFD</a>;
00214 
00215 <font class="keywordtype">int</font> _dbus_poll (<a class="code" href="structDBusPollFD.html">DBusPollFD</a> *fds,
00216                 <font class="keywordtype">int</font>         n_fds,
00217                 <font class="keywordtype">int</font>         timeout_milliseconds);
00218 
00219 <font class="keywordtype">void</font> _dbus_sleep_milliseconds (<font class="keywordtype">int</font> milliseconds);
00220 
00221 <font class="keywordtype">void</font> _dbus_get_current_time (<font class="keywordtype">long</font> *tv_sec,
00222                              <font class="keywordtype">long</font> *tv_usec);
00223 
00224 
00225 dbus_bool_t _dbus_file_get_contents   (DBusString       *str,
00226                                        <font class="keyword">const</font> DBusString *filename,
00227                                        <a class="code" href="structDBusError.html">DBusError</a>        *error);
00228 dbus_bool_t _dbus_string_save_to_file (<font class="keyword">const</font> DBusString *str,
00229                                        <font class="keyword">const</font> DBusString *filename,
00230                                        <a class="code" href="structDBusError.html">DBusError</a>        *error);
00231 
00232 dbus_bool_t    _dbus_create_file_exclusively (<font class="keyword">const</font> DBusString *filename,
00233                                               <a class="code" href="structDBusError.html">DBusError</a>        *error);
00234 dbus_bool_t    _dbus_delete_file             (<font class="keyword">const</font> DBusString *filename,
00235                                               <a class="code" href="structDBusError.html">DBusError</a>        *error);
00236 dbus_bool_t    _dbus_create_directory        (<font class="keyword">const</font> DBusString *filename,
00237                                               <a class="code" href="structDBusError.html">DBusError</a>        *error);
00238 dbus_bool_t    _dbus_delete_directory        (<font class="keyword">const</font> DBusString *filename,
00239                                               <a class="code" href="structDBusError.html">DBusError</a>        *error);
00240 
00241 dbus_bool_t _dbus_concat_dir_and_file (DBusString       *dir,
00242                                        <font class="keyword">const</font> DBusString *next_component);
00243 dbus_bool_t _dbus_string_get_dirname  (<font class="keyword">const</font> DBusString *filename,
00244                                        DBusString       *dirname);
00245 dbus_bool_t _dbus_path_is_absolute    (<font class="keyword">const</font> DBusString *filename);
00246 
00247 <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="structDBusDirIter.html">DBusDirIter</a> DBusDirIter;
00248 
00249 DBusDirIter* _dbus_directory_open          (<font class="keyword">const</font> DBusString *filename,
00250                                             <a class="code" href="structDBusError.html">DBusError</a>        *error);
00251 dbus_bool_t  _dbus_directory_get_next_file (DBusDirIter      *iter,
00252                                             DBusString       *filename,
00253                                             <a class="code" href="structDBusError.html">DBusError</a>        *error);
00254 <font class="keywordtype">void</font>         _dbus_directory_close         (DBusDirIter      *iter);
00255 
00256 
00257 dbus_bool_t _dbus_generate_random_bytes (DBusString *str,
00258                                          <font class="keywordtype">int</font>         n_bytes);
00259 dbus_bool_t _dbus_generate_random_ascii (DBusString *str,
00260                                          <font class="keywordtype">int</font>         n_bytes);
00261 
00262 <font class="keyword">const</font> <font class="keywordtype">char</font> *_dbus_errno_to_string  (<font class="keywordtype">int</font> errnum);
00263 <font class="keyword">const</font> <font class="keywordtype">char</font>* _dbus_error_from_errno (<font class="keywordtype">int</font> error_number);
00264 
00265 <font class="keywordtype">void</font> _dbus_disable_sigpipe (<font class="keywordtype">void</font>);
00266 
00267 <font class="keywordtype">void</font> _dbus_fd_set_close_on_exec (<font class="keywordtype">int</font> fd);
00268 
00269 <font class="keywordtype">void</font> _dbus_exit (<font class="keywordtype">int</font> code) _DBUS_GNUC_NORETURN;
00270 
<a name="l00274"></a><a class="code" href="structDBusStat.html">00274</a> <font class="keyword">typedef</font> <font class="keyword">struct</font>
00275 <font class="keyword"></font>{
<a name="l00276"></a><a class="code" href="structDBusStat.html#m0">00276</a>   <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> mode;  
<a name="l00277"></a><a class="code" href="structDBusStat.html#m1">00277</a>   <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> nlink; 
<a name="l00278"></a><a class="code" href="structDBusStat.html#m2">00278</a>   dbus_uid_t    uid;   
<a name="l00279"></a><a class="code" href="structDBusStat.html#m3">00279</a>   dbus_gid_t    gid;   
<a name="l00280"></a><a class="code" href="structDBusStat.html#m4">00280</a>   <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> size;  
<a name="l00281"></a><a class="code" href="structDBusStat.html#m5">00281</a>   <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> atime; 
<a name="l00282"></a><a class="code" href="structDBusStat.html#m6">00282</a>   <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> mtime; 
<a name="l00283"></a><a class="code" href="structDBusStat.html#m7">00283</a>   <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> ctime; 
00284 } <a class="code" href="structDBusStat.html">DBusStat</a>;
00285 
00286 dbus_bool_t _dbus_stat             (<font class="keyword">const</font> DBusString *filename,
00287                                     <a class="code" href="structDBusStat.html">DBusStat</a>         *statbuf,
00288                                     <a class="code" href="structDBusError.html">DBusError</a>        *error);
00289 dbus_bool_t _dbus_full_duplex_pipe (<font class="keywordtype">int</font>              *fd1,
00290                                     <font class="keywordtype">int</font>              *fd2,
00291                                     dbus_bool_t       blocking,
00292                                     <a class="code" href="structDBusError.html">DBusError</a>        *error);
00293 dbus_bool_t _dbus_close            (<font class="keywordtype">int</font>               fd,
00294                                     <a class="code" href="structDBusError.html">DBusError</a>        *error);
00295 
00296 <font class="keywordtype">void</font>        _dbus_print_backtrace  (<font class="keywordtype">void</font>);
00297 
00298 dbus_bool_t _dbus_become_daemon   (<font class="keyword">const</font> DBusString *pidfile,
00299                                    <a class="code" href="structDBusError.html">DBusError</a>        *error);
00300 dbus_bool_t _dbus_write_pid_file  (<font class="keyword">const</font> DBusString *filename,
00301                                    <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font>     pid,
00302                                    <a class="code" href="structDBusError.html">DBusError</a>        *error);
00303 dbus_bool_t _dbus_change_identity (<font class="keywordtype">unsigned</font> <font class="keywordtype">long</font>     uid,
00304                                    <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font>     gid,
00305                                    <a class="code" href="structDBusError.html">DBusError</a>        *error);
00306 
00307 <font class="keyword">typedef</font> void (* DBusSignalHandler) (<font class="keywordtype">int</font> sig);
00308 
00309 <font class="keywordtype">void</font> _dbus_set_signal_handler (<font class="keywordtype">int</font>               sig,
00310                                DBusSignalHandler handler);
00311 
00312 
00313 <font class="comment">/* Define DBUS_VA_COPY() to do the right thing for copying va_list variables. </font>
00314 <font class="comment"> * config.h may have already defined DBUS_VA_COPY as va_copy or __va_copy. </font>
00315 <font class="comment"> */</font>
00316 <font class="preprocessor">#if !defined (DBUS_VA_COPY)</font>
00317 <font class="preprocessor"></font><font class="preprocessor">#  if defined (__GNUC__) &amp;&amp; defined (__PPC__) &amp;&amp; (defined (_CALL_SYSV) || defined (_WIN32))</font>
00318 <font class="preprocessor"></font><font class="preprocessor">#    define DBUS_VA_COPY(ap1, ap2)   (*(ap1) = *(ap2))</font>
00319 <font class="preprocessor"></font><font class="preprocessor">#  elif defined (DBUS_VA_COPY_AS_ARRAY)</font>
00320 <font class="preprocessor"></font><font class="preprocessor">#    define DBUS_VA_COPY(ap1, ap2)   memcpy ((ap1), (ap2), sizeof (va_list))</font>
00321 <font class="preprocessor"></font><font class="preprocessor">#  else </font><font class="comment">/* va_list is a pointer */</font>
00322 <font class="preprocessor">#    define DBUS_VA_COPY(ap1, ap2)   ((ap1) = (ap2))</font>
00323 <font class="preprocessor"></font><font class="preprocessor">#  endif </font><font class="comment">/* va_list is a pointer */</font>
00324 <font class="preprocessor">#endif </font><font class="comment">/* !DBUS_VA_COPY */</font>
00325 
00326 
00327 DBUS_END_DECLS;
00328 
00329 <font class="preprocessor">#endif </font><font class="comment">/* DBUS_SYSDEPS_H */</font>
</pre></div><hr><address align="right"><small>Generated on Wed Jun 9 05:01:27 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>