X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dbus%2Fdbus-types.h;h=57fc586acbd73106f447259a06e4a24fd92e0d5c;hb=cef5a419f4a8f00c6cc0b57d5a01ac347fff9598;hp=d45c2516fe742253c5a396eb04bdb8c9c27f4680;hpb=3ed9db546e1143bc9aa2d83a6f423fdd81227352;p=platform%2Fupstream%2Fdbus.git diff --git a/dbus/dbus-types.h b/dbus/dbus-types.h index d45c251..57fc586 100644 --- a/dbus/dbus-types.h +++ b/dbus/dbus-types.h @@ -1,4 +1,4 @@ -/* -*- mode: C; c-file-style: "gnu" -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* dbus-types.h types such as dbus_bool_t * * Copyright (C) 2002 Red Hat Inc. @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) @@ -85,6 +85,8 @@ typedef dbus_uint32_t dbus_bool_t; * C99 requires a 64-bit type and most likely all interesting * compilers support one. GLib for example flat-out requires * a 64-bit type. + * + * You probably want to just assume #DBUS_HAVE_INT64 is always defined. */ /** @@ -96,6 +98,24 @@ typedef dbus_uint32_t dbus_bool_t; * C99 requires a 64-bit type and most likely all interesting * compilers support one. GLib for example flat-out requires * a 64-bit type. + * + * You probably want to just assume #DBUS_HAVE_INT64 is always defined. + */ + +/** + * @def DBUS_HAVE_INT64 + * + * Defined if 64-bit integers are available. Will be defined + * on any platform you care about, unless you care about + * some truly ancient UNIX, or some bizarre embedded platform. + * + * C99 requires a 64-bit type and most likely all interesting + * compilers support one. GLib for example flat-out requires + * a 64-bit type. + * + * You should feel comfortable ignoring this macro and just using + * int64 unconditionally. + * */ /** @@ -114,6 +134,45 @@ typedef dbus_uint32_t dbus_bool_t; * giving a literal such as "325145246765ULL" */ +/** + * An 8-byte struct you could use to access int64 without having + * int64 support + */ +typedef struct +{ + dbus_uint32_t first32; /**< first 32 bits in the 8 bytes (beware endian issues) */ + dbus_uint32_t second32; /**< second 32 bits in the 8 bytes (beware endian issues) */ +} DBus8ByteStruct; + +/** + * A simple value union that lets you access bytes as if they + * were various types; useful when dealing with basic types via + * void pointers and varargs. + * + * This union also contains a pointer member (which can be used + * to retrieve a string from dbus_message_iter_get_basic(), for + * instance), so on future platforms it could conceivably be larger + * than 8 bytes. + */ +typedef union +{ + unsigned char bytes[8]; /**< as 8 individual bytes */ + dbus_int16_t i16; /**< as int16 */ + dbus_uint16_t u16; /**< as int16 */ + dbus_int32_t i32; /**< as int32 */ + dbus_uint32_t u32; /**< as int32 */ + dbus_bool_t bool_val; /**< as boolean */ +#ifdef DBUS_HAVE_INT64 + dbus_int64_t i64; /**< as int64 */ + dbus_uint64_t u64; /**< as int64 */ +#endif + DBus8ByteStruct eight; /**< as 8-byte struct */ + double dbl; /**< as double */ + unsigned char byt; /**< as byte */ + char *str; /**< as char* (string, object path or signature) */ + int fd; /**< as Unix file descriptor */ +} DBusBasicValue; + /** @} */ #endif /* DBUS_TYPES_H */