2003-03-12 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / dbus / dbus-internals.h
index f0baf46..2576982 100644 (file)
@@ -33,6 +33,7 @@
 #include <dbus/dbus-types.h>
 #include <dbus/dbus-errors.h>
 #include <dbus/dbus-sysdeps.h>
+#include <dbus/dbus-threads.h>
 
 DBUS_BEGIN_DECLS;
 
@@ -93,6 +94,8 @@ do {
 #define _DBUS_STRUCT_OFFSET(struct_type, member)       \
     ((long) ((unsigned char*) &((struct_type*) 0)->member))
 
+#define _DBUS_ASSERT_ERROR_IS_SET(error) _dbus_assert ((error) == NULL || dbus_error_is_set ((error)))
+
 /* This alignment thing is from ORBit2 */
 /* Align a value upward to a boundary, expressed as a number of bytes.
  * E.g. align to an 8-byte boundary with argument of 8.
@@ -114,9 +117,12 @@ char* _dbus_strdup (const char *str);
 
 #define _DBUS_INT_MIN  (-_DBUS_INT_MAX - 1)
 #define _DBUS_INT_MAX  2147483647
+#define _DBUS_UINT_MAX 0xffffffff
 #define _DBUS_MAX_SUN_PATH_LENGTH 99
 #define _DBUS_ONE_KILOBYTE 1024
 #define _DBUS_ONE_MEGABYTE 1024 * _DBUS_ONE_KILOBYTE
+#define _DBUS_ONE_HOUR_IN_MILLISECONDS (1000 * 60 * 60)
+#define _DBUS_USEC_PER_SECOND          (1000000)
 
 #undef MAX
 #define MAX(a, b)  (((a) > (b)) ? (a) : (b))
@@ -142,6 +148,28 @@ void _dbus_verbose_bytes_of_string (const DBusString    *str,
 
 const char* _dbus_type_to_string (int type);
 
+extern const char _dbus_no_memory_message[];
+#define _DBUS_SET_OOM(error) dbus_set_error ((error), DBUS_ERROR_NO_MEMORY, _dbus_no_memory_message)
+
+#ifdef DBUS_BUILD_TESTS
+/* Memory debugging */
+void        _dbus_set_fail_alloc_counter       (int  until_next_fail);
+int         _dbus_get_fail_alloc_counter       (void);
+dbus_bool_t _dbus_decrement_fail_alloc_counter (void);
+#else
+#define _dbus_set_fail_alloc_counter(n)
+#define _dbus_get_fail_alloc_counter _DBUS_INT_MAX
+#define _dbus_decrement_fail_alloc_counter() FALSE
+#endif /* !DBUS_BUILD_TESTS */
+
+/* Thread initializers */
+DBusMutex *_dbus_list_init_lock             (void);
+DBusMutex *_dbus_connection_slots_init_lock (void);
+DBusMutex *_dbus_server_slots_init_lock     (void);
+DBusMutex *_dbus_atomic_init_lock           (void);
+DBusMutex *_dbus_message_handler_init_lock  (void);
+DBusMutex *_dbus_user_info_init_lock        (void);
+
 DBUS_END_DECLS;
 
 #endif /* DBUS_INTERNALS_H */