25 #include "dbus-marshal-byteswap.h"    26 #include "dbus-marshal-basic.h"    27 #include "dbus-signature.h"    40                       unsigned char       **new_p)
    55             p = _DBUS_ALIGN_ADDRESS (p, 2);
    56             *((dbus_uint16_t*)p) = DBUS_UINT16_SWAP_LE_BE (*((dbus_uint16_t*)p));
    65             p = _DBUS_ALIGN_ADDRESS (p, 4);
    66             *((dbus_uint32_t*)p) = DBUS_UINT32_SWAP_LE_BE (*((dbus_uint32_t*)p));
    75             p = _DBUS_ALIGN_ADDRESS (p, 8);
    76             *((dbus_uint64_t*)p) = DBUS_UINT64_SWAP_LE_BE (*((dbus_uint64_t*)p));
    85             dbus_uint32_t array_len;
    87             p = _DBUS_ALIGN_ADDRESS (p, 4);
    91             *((dbus_uint32_t*)p) = DBUS_UINT32_SWAP_LE_BE (*((dbus_uint32_t*)p));
   104                 p = _DBUS_ALIGN_ADDRESS (p, alignment);
   115                     const unsigned char *array_end;
   117                     array_end = p + array_len;
   121                     while (p < array_end)
   123                         byteswap_body_helper (&sub,
   136                 p += (array_len + 1); 
   143             dbus_uint32_t sig_len;
   156             dbus_uint32_t sig_len;
   159             int contained_alignment;
   170             p = _DBUS_ALIGN_ADDRESS (p, contained_alignment);
   174             byteswap_body_helper (&sub, 
FALSE, old_byte_order, new_byte_order, p, &p);
   183             p = _DBUS_ALIGN_ADDRESS (p, 8);
   187             byteswap_body_helper (&sub, 
TRUE, old_byte_order, new_byte_order, p, &p);
   201       if (walk_reader_to_end)
   232   _dbus_assert (value_pos <= _dbus_string_get_length (value_str));
   234   if (old_byte_order == new_byte_order)
   238                                      signature, signature_start);
   240   byteswap_body_helper (&reader, 
TRUE,
   241                         old_byte_order, new_byte_order,
 dbus_bool_t dbus_type_is_fixed(int typecode)
Tells you whether values of this type can change length if you set them to some other value...
#define DBUS_TYPE_UINT16
Type code marking a 16-bit unsigned integer. 
#define NULL
A null pointer, defined appropriately for C or C++. 
int _dbus_first_type_in_signature(const DBusString *str, int pos)
Get the first type in the signature. 
void _dbus_type_reader_recurse(DBusTypeReader *reader, DBusTypeReader *sub)
Initialize a new reader pointing to the first type and corresponding value that's a child of the curr...
#define DBUS_TYPE_STRUCT
STRUCT and DICT_ENTRY are sort of special since their codes can't appear in a type string...
#define DBUS_TYPE_DICT_ENTRY
Type code used to represent a dict entry; however, this type code does not appear in type signatures...
#define DBUS_TYPE_STRING
Type code marking a UTF-8 encoded, nul-terminated Unicode string. 
#define _dbus_assert(condition)
Aborts with an error message if the condition is false. 
#define DBUS_TYPE_BYTE
Type code marking an 8-bit unsigned integer. 
void _dbus_swap_array(unsigned char *data, int n_elements, int alignment)
Swaps the elements of an array to the opposite byte order. 
char * _dbus_string_get_data_len(DBusString *str, int start, int len)
Gets a sub-portion of the raw character buffer from the string. 
void _dbus_type_reader_init_types_only(DBusTypeReader *reader, const DBusString *type_str, int type_pos)
Like _dbus_type_reader_init() but the iteration is over the signature, not over values. 
#define DBUS_TYPE_DOUBLE
Type code marking an 8-byte double in IEEE 754 format. 
#define DBUS_TYPE_ARRAY
Type code marking a D-Bus array type. 
#define DBUS_TYPE_INT64
Type code marking a 64-bit signed integer. 
dbus_uint32_t _dbus_unpack_uint32(int byte_order, const unsigned char *data)
Unpacks a 32 bit unsigned integer from a data pointer. 
dbus_uint32_t dbus_bool_t
A boolean, valid values are TRUE and FALSE. 
#define DBUS_TYPE_INT32
Type code marking a 32-bit signed integer. 
dbus_bool_t _dbus_type_reader_next(DBusTypeReader *reader)
Skip to the next value on this "level". 
#define DBUS_TYPE_SIGNATURE
Type code marking a D-Bus type signature. 
#define DBUS_TYPE_UINT64
Type code marking a 64-bit unsigned integer. 
#define DBUS_TYPE_VARIANT
Type code marking a D-Bus variant type. 
#define DBUS_TYPE_UINT32
Type code marking a 32-bit unsigned integer. 
The type reader is an iterator for reading values from a block of values. 
#define TRUE
Expands to "1". 
#define _dbus_assert_not_reached(explanation)
Aborts with an error message if called. 
#define DBUS_TYPE_OBJECT_PATH
Type code marking a D-Bus object path. 
#define DBUS_TYPE_UNIX_FD
Type code marking a unix file descriptor. 
#define DBUS_TYPE_INVALID
Type code that is never equal to a legitimate type code. 
#define DBUS_MAXIMUM_ARRAY_LENGTH
Max length of a marshaled array in bytes (64M, 2^26) We use signed int for lengths so must be INT_MAX...
#define DBUS_TYPE_INT16
Type code marking a 16-bit signed integer. 
#define DBUS_TYPE_BOOLEAN
Type code marking a boolean. 
int _dbus_type_reader_get_element_type(const DBusTypeReader *reader)
Gets the type of an element of the array the reader is currently pointing to. 
int _dbus_type_reader_get_current_type(const DBusTypeReader *reader)
Gets the type of the value the reader is currently pointing to; or for a types-only reader gets the t...
#define FALSE
Expands to "0". 
int _dbus_type_get_alignment(int typecode)
Gets the alignment requirement for the given type; will be 1, 4, or 8. 
void _dbus_string_init_const_len(DBusString *str, const char *value, int len)
Initializes a constant string with a length. 
void _dbus_marshal_byteswap(const DBusString *signature, int signature_start, int old_byte_order, int new_byte_order, DBusString *value_str, int value_pos)
Byteswaps the marshaled data in the given value_str.