Protocol constants
[D-Bus low-level public API]

Defines constants which are part of the D-Bus protocol. More...

Defines

#define DBUS_LITTLE_ENDIAN   ('l')
 Code marking LSB-first byte order in the wire protocol.
#define DBUS_BIG_ENDIAN   ('B')
 Code marking MSB-first byte order in the wire protocol.
#define DBUS_MAJOR_PROTOCOL_VERSION   1
 Protocol version.
#define DBUS_TYPE_INVALID   ((int) '\0')
 Type code that is never equal to a legitimate type code.
#define DBUS_TYPE_INVALID_AS_STRING   "\0"
 DBUS_TYPE_INVALID as a string literal instead of a int literal
#define DBUS_TYPE_BYTE   ((int) 'y')
 Type code marking an 8-bit unsigned integer.
#define DBUS_TYPE_BYTE_AS_STRING   "y"
 DBUS_TYPE_BYTE as a string literal instead of a int literal
#define DBUS_TYPE_BOOLEAN   ((int) 'b')
 Type code marking a boolean.
#define DBUS_TYPE_BOOLEAN_AS_STRING   "b"
 DBUS_TYPE_BOOLEAN as a string literal instead of a int literal
#define DBUS_TYPE_INT16   ((int) 'n')
 Type code marking a 16-bit signed integer.
#define DBUS_TYPE_INT16_AS_STRING   "n"
 DBUS_TYPE_INT16 as a string literal instead of a int literal
#define DBUS_TYPE_UINT16   ((int) 'q')
 Type code marking a 16-bit unsigned integer.
#define DBUS_TYPE_UINT16_AS_STRING   "q"
 DBUS_TYPE_UINT16 as a string literal instead of a int literal
#define DBUS_TYPE_INT32   ((int) 'i')
 Type code marking a 32-bit signed integer.
#define DBUS_TYPE_INT32_AS_STRING   "i"
 DBUS_TYPE_INT32 as a string literal instead of a int literal
#define DBUS_TYPE_UINT32   ((int) 'u')
 Type code marking a 32-bit unsigned integer.
#define DBUS_TYPE_UINT32_AS_STRING   "u"
 DBUS_TYPE_UINT32 as a string literal instead of a int literal
#define DBUS_TYPE_INT64   ((int) 'x')
 Type code marking a 64-bit signed integer.
#define DBUS_TYPE_INT64_AS_STRING   "x"
 DBUS_TYPE_INT64 as a string literal instead of a int literal
#define DBUS_TYPE_UINT64   ((int) 't')
 Type code marking a 64-bit unsigned integer.
#define DBUS_TYPE_UINT64_AS_STRING   "t"
 DBUS_TYPE_UINT64 as a string literal instead of a int literal
#define DBUS_TYPE_DOUBLE   ((int) 'd')
 Type code marking an 8-byte double in IEEE 754 format.
#define DBUS_TYPE_DOUBLE_AS_STRING   "d"
 DBUS_TYPE_DOUBLE as a string literal instead of a int literal
#define DBUS_TYPE_STRING   ((int) 's')
 Type code marking a UTF-8 encoded, nul-terminated Unicode string.
#define DBUS_TYPE_STRING_AS_STRING   "s"
 DBUS_TYPE_STRING as a string literal instead of a int literal
#define DBUS_TYPE_OBJECT_PATH   ((int) 'o')
 Type code marking a D-Bus object path.
#define DBUS_TYPE_OBJECT_PATH_AS_STRING   "o"
 DBUS_TYPE_OBJECT_PATH as a string literal instead of a int literal
#define DBUS_TYPE_SIGNATURE   ((int) 'g')
 Type code marking a D-Bus type signature.
#define DBUS_TYPE_SIGNATURE_AS_STRING   "g"
 DBUS_TYPE_SIGNATURE as a string literal instead of a int literal
#define DBUS_TYPE_ARRAY   ((int) 'a')
 Type code marking a D-Bus array type.
#define DBUS_TYPE_ARRAY_AS_STRING   "a"
 DBUS_TYPE_ARRAY as a string literal instead of a int literal
#define DBUS_TYPE_VARIANT   ((int) 'v')
 Type code marking a D-Bus variant type.
#define DBUS_TYPE_VARIANT_AS_STRING   "v"
 DBUS_TYPE_VARIANT as a string literal instead of a int literal
#define DBUS_TYPE_STRUCT   ((int) 'r')
 Type code used to represent a struct; however, this type code does not appear in type signatures, instead DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR will appear in a signature.
#define DBUS_TYPE_STRUCT_AS_STRING   "r"
 DBUS_TYPE_STRUCT as a string literal instead of a int literal
#define DBUS_TYPE_DICT_ENTRY   ((int) 'e')
 Type code used to represent a dict entry; however, this type code does not appear in type signatures, instead DBUS_DICT_ENTRY_BEGIN_CHAR and DBUS_DICT_ENTRY_END_CHAR will appear in a signature.
#define DBUS_TYPE_DICT_ENTRY_AS_STRING   "e"
 DBUS_TYPE_DICT_ENTRY as a string literal instead of a int literal
#define DBUS_NUMBER_OF_TYPES   (16)
 Does not include DBUS_TYPE_INVALID, DBUS_STRUCT_BEGIN_CHAR, DBUS_STRUCT_END_CHAR, DBUS_DICT_ENTRY_BEGIN_CHAR, or DBUS_DICT_ENTRY_END_CHAR - i.e.
#define DBUS_STRUCT_BEGIN_CHAR   ((int) '(')
 Code marking the start of a struct type in a type signature.
#define DBUS_STRUCT_BEGIN_CHAR_AS_STRING   "("
 DBUS_STRUCT_BEGIN_CHAR as a string literal instead of a int literal
#define DBUS_STRUCT_END_CHAR   ((int) ')')
 Code marking the end of a struct type in a type signature.
#define DBUS_STRUCT_END_CHAR_AS_STRING   ")"
 DBUS_STRUCT_END_CHAR a string literal instead of a int literal
#define DBUS_DICT_ENTRY_BEGIN_CHAR   ((int) '{')
 Code marking the start of a dict entry type in a type signature.
#define DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING   "{"
 DBUS_DICT_ENTRY_BEGIN_CHAR as a string literal instead of a int literal
#define DBUS_DICT_ENTRY_END_CHAR   ((int) '}')
 Code marking the end of a dict entry type in a type signature.
#define DBUS_DICT_ENTRY_END_CHAR_AS_STRING   "}"
 DBUS_DICT_ENTRY_END_CHAR as a string literal instead of a int literal
#define DBUS_MAXIMUM_NAME_LENGTH   255
 Max length in bytes of a bus name, interface, or member (not object path, paths are unlimited).
#define DBUS_MAXIMUM_SIGNATURE_LENGTH   255
 This one is 255 so it fits in a byte.
#define DBUS_MAXIMUM_MATCH_RULE_LENGTH   1024
 Max length of a match rule string; to keep people from hosing the daemon with some huge rule.
#define DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER   63
 Max arg number you can match on in a match rule, e.g.
#define DBUS_MAXIMUM_ARRAY_LENGTH   (67108864)
 Max length of a marshaled array in bytes (64M, 2^26) We use signed int for lengths so must be INT_MAX or less.
#define DBUS_MAXIMUM_ARRAY_LENGTH_BITS   26
 Number of bits you need in an unsigned to store the max array size.
#define DBUS_MAXIMUM_MESSAGE_LENGTH   (DBUS_MAXIMUM_ARRAY_LENGTH * 2)
 The maximum total message size including header and body; similar rationale to max array size.
#define DBUS_MAXIMUM_MESSAGE_LENGTH_BITS   27
 Number of bits you need in an unsigned to store the max message size.
#define DBUS_MAXIMUM_TYPE_RECURSION_DEPTH   32
 Depth of recursion in the type tree.
#define DBUS_MESSAGE_TYPE_INVALID   0
 This value is never a valid message type, see dbus_message_get_type().
#define DBUS_MESSAGE_TYPE_METHOD_CALL   1
 Message type of a method call message, see dbus_message_get_type().
#define DBUS_MESSAGE_TYPE_METHOD_RETURN   2
 Message type of a method return message, see dbus_message_get_type().
#define DBUS_MESSAGE_TYPE_ERROR   3
 Message type of an error reply message, see dbus_message_get_type().
#define DBUS_MESSAGE_TYPE_SIGNAL   4
 Message type of a signal message, see dbus_message_get_type().
#define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED   0x1
 If set, this flag means that the sender of a message does not care about getting a reply, so the recipient need not send one.
#define DBUS_HEADER_FLAG_NO_AUTO_START   0x2
 If set, this flag means that even if the message bus knows how to start an owner for the destination bus name (see dbus_message_set_destination()), it should not do so.
#define DBUS_HEADER_FIELD_INVALID   0
 Not equal to any valid header field code.
#define DBUS_HEADER_FIELD_PATH   1
 Header field code for the path - the path is the object emitting a signal or the object receiving a method call.
#define DBUS_HEADER_FIELD_INTERFACE   2
 Header field code for the interface containing a member (method or signal).
#define DBUS_HEADER_FIELD_MEMBER   3
 Header field code for a member (method or signal).
#define DBUS_HEADER_FIELD_ERROR_NAME   4
 Header field code for an error name (found in DBUS_MESSAGE_TYPE_ERROR messages).
#define DBUS_HEADER_FIELD_REPLY_SERIAL   5
 Header field code for a reply serial, used to match a DBUS_MESSAGE_TYPE_METHOD_RETURN message with the message that it's a reply to.
#define DBUS_HEADER_FIELD_DESTINATION   6
 Header field code for the destination bus name of a message.
#define DBUS_HEADER_FIELD_SENDER   7
 Header field code for the sender of a message; usually initialized by the message bus.
#define DBUS_HEADER_FIELD_SIGNATURE   8
 Header field code for the type signature of a message.
#define DBUS_HEADER_FIELD_LAST   DBUS_HEADER_FIELD_SIGNATURE
 Value of the highest-numbered header field code, can be used to determine the size of an array indexed by header field code.
#define DBUS_HEADER_SIGNATURE
 Header format is defined as a signature: byte byte order byte message type ID byte flags byte protocol version uint32 body length uint32 serial array of struct (byte,variant) (field name, value).
#define DBUS_MINIMUM_HEADER_SIZE   16
 The smallest header size that can occur.
#define DBUS_ERROR_FAILED   "org.freedesktop.DBus.Error.Failed"
 A generic error; "something went wrong" - see the error message for more.
#define DBUS_ERROR_NO_MEMORY   "org.freedesktop.DBus.Error.NoMemory"
 There was not enough memory to complete an operation.
#define DBUS_ERROR_SERVICE_UNKNOWN   "org.freedesktop.DBus.Error.ServiceUnknown"
 The bus doesn't know how to launch a service to supply the bus name you wanted.
#define DBUS_ERROR_NAME_HAS_NO_OWNER   "org.freedesktop.DBus.Error.NameHasNoOwner"
 The bus name you referenced doesn't exist (i.e.
#define DBUS_ERROR_NO_REPLY   "org.freedesktop.DBus.Error.NoReply"
 No reply to a message expecting one, usually means a timeout occurred.
#define DBUS_ERROR_IO_ERROR   "org.freedesktop.DBus.Error.IOError"
 Something went wrong reading or writing to a socket, for example.
#define DBUS_ERROR_BAD_ADDRESS   "org.freedesktop.DBus.Error.BadAddress"
 A D-Bus bus address was malformed.
#define DBUS_ERROR_NOT_SUPPORTED   "org.freedesktop.DBus.Error.NotSupported"
 Requested operation isn't supported (like ENOSYS on UNIX).
#define DBUS_ERROR_LIMITS_EXCEEDED   "org.freedesktop.DBus.Error.LimitsExceeded"
 Some limited resource is exhausted.
#define DBUS_ERROR_ACCESS_DENIED   "org.freedesktop.DBus.Error.AccessDenied"
 Security restrictions don't allow doing what you're trying to do.
#define DBUS_ERROR_AUTH_FAILED   "org.freedesktop.DBus.Error.AuthFailed"
 Authentication didn't work.
#define DBUS_ERROR_NO_SERVER   "org.freedesktop.DBus.Error.NoServer"
 Unable to connect to server (probably caused by ECONNREFUSED on a socket).
#define DBUS_ERROR_TIMEOUT   "org.freedesktop.DBus.Error.Timeout"
 Certain timeout errors, possibly ETIMEDOUT on a socket.
#define DBUS_ERROR_NO_NETWORK   "org.freedesktop.DBus.Error.NoNetwork"
 No network access (probably ENETUNREACH on a socket).
#define DBUS_ERROR_ADDRESS_IN_USE   "org.freedesktop.DBus.Error.AddressInUse"
 Can't bind a socket since its address is in use (i.e.
#define DBUS_ERROR_DISCONNECTED   "org.freedesktop.DBus.Error.Disconnected"
 The connection is disconnected and you're trying to use it.
#define DBUS_ERROR_INVALID_ARGS   "org.freedesktop.DBus.Error.InvalidArgs"
 Invalid arguments passed to a method call.
#define DBUS_ERROR_FILE_NOT_FOUND   "org.freedesktop.DBus.Error.FileNotFound"
 Missing file.
#define DBUS_ERROR_FILE_EXISTS   "org.freedesktop.DBus.Error.FileExists"
 Existing file and the operation you're using does not silently overwrite.
#define DBUS_ERROR_UNKNOWN_METHOD   "org.freedesktop.DBus.Error.UnknownMethod"
 Method name you invoked isn't known by the object you invoked it on.
#define DBUS_ERROR_TIMED_OUT   "org.freedesktop.DBus.Error.TimedOut"
 Certain timeout errors, e.g.
#define DBUS_ERROR_MATCH_RULE_NOT_FOUND   "org.freedesktop.DBus.Error.MatchRuleNotFound"
 Tried to remove or modify a match rule that didn't exist.
#define DBUS_ERROR_MATCH_RULE_INVALID   "org.freedesktop.DBus.Error.MatchRuleInvalid"
 The match rule isn't syntactically valid.
#define DBUS_ERROR_SPAWN_EXEC_FAILED   "org.freedesktop.DBus.Error.Spawn.ExecFailed"
 While starting a new process, the exec() call failed.
#define DBUS_ERROR_SPAWN_FORK_FAILED   "org.freedesktop.DBus.Error.Spawn.ForkFailed"
 While starting a new process, the fork() call failed.
#define DBUS_ERROR_SPAWN_CHILD_EXITED   "org.freedesktop.DBus.Error.Spawn.ChildExited"
 While starting a new process, the child exited with a status code.
#define DBUS_ERROR_SPAWN_CHILD_SIGNALED   "org.freedesktop.DBus.Error.Spawn.ChildSignaled"
 While starting a new process, the child exited on a signal.
#define DBUS_ERROR_SPAWN_FAILED   "org.freedesktop.DBus.Error.Spawn.Failed"
 While starting a new process, something went wrong.
#define DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN   "org.freedesktop.DBus.Error.UnixProcessIdUnknown"
 Tried to get a UNIX process ID and it wasn't available.
#define DBUS_ERROR_INVALID_SIGNATURE   "org.freedesktop.DBus.Error.InvalidSignature"
 A type signature is not valid.
#define DBUS_ERROR_INVALID_FILE_CONTENT   "org.freedesktop.DBus.Error.InvalidFileContent"
 A file contains invalid syntax or is otherwise broken.
#define DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN   "org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown"
 Asked for SELinux security context and it wasn't available.
#define DBUS_INTROSPECT_1_0_XML_NAMESPACE   "http://www.freedesktop.org/standards/dbus"
 XML namespace of the introspection format version 1.0.
#define DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER   "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
 XML public identifier of the introspection format version 1.0.
#define DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER   "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"
 XML system identifier of the introspection format version 1.0.
#define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE   "<!DOCTYPE node PUBLIC \""DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER"\"\n\""DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER"\">\n"
 XML document type declaration of the introspection format version 1.0.

Detailed Description

Defines constants which are part of the D-Bus protocol.

This header is intended for use by any library, not only libdbus.


Define Documentation

#define DBUS_ERROR_ADDRESS_IN_USE   "org.freedesktop.DBus.Error.AddressInUse"

Can't bind a socket since its address is in use (i.e.

EADDRINUSE).

Definition at line 362 of file dbus-protocol.h.

Referenced by _dbus_error_from_errno().

#define DBUS_ERROR_NAME_HAS_NO_OWNER   "org.freedesktop.DBus.Error.NameHasNoOwner"

The bus name you referenced doesn't exist (i.e.

no application owns it).

Definition at line 336 of file dbus-protocol.h.

#define DBUS_ERROR_TIMED_OUT   "org.freedesktop.DBus.Error.TimedOut"

Certain timeout errors, e.g.

while starting a service.

Warning:
this is confusingly-named given that DBUS_ERROR_TIMEOUT also exists. We can't fix it for compatibility reasons so just be careful.

Definition at line 377 of file dbus-protocol.h.

#define DBUS_ERROR_TIMEOUT   "org.freedesktop.DBus.Error.Timeout"

Certain timeout errors, possibly ETIMEDOUT on a socket.

Note that DBUS_ERROR_NO_REPLY is used for message reply timeouts.

Warning:
this is confusingly-named given that DBUS_ERROR_TIMED_OUT also exists. We can't fix it for compatibility reasons so just be careful.

Definition at line 358 of file dbus-protocol.h.

Referenced by _dbus_error_from_errno().

#define DBUS_HEADER_FIELD_DESTINATION   6

Header field code for the destination bus name of a message.

See dbus_message_set_destination().

Definition at line 269 of file dbus-protocol.h.

Referenced by _dbus_header_create(), dbus_message_get_destination(), and dbus_message_set_destination().

#define DBUS_HEADER_FIELD_ERROR_NAME   4

Header field code for an error name (found in DBUS_MESSAGE_TYPE_ERROR messages).

See dbus_message_set_error_name().

Definition at line 261 of file dbus-protocol.h.

Referenced by _dbus_header_create(), dbus_message_get_error_name(), and dbus_message_set_error_name().

#define DBUS_HEADER_FIELD_INTERFACE   2

Header field code for the interface containing a member (method or signal).

See dbus_message_set_interface().

Definition at line 255 of file dbus-protocol.h.

Referenced by _dbus_header_create(), dbus_message_get_interface(), and dbus_message_set_interface().

#define DBUS_HEADER_FIELD_LAST   DBUS_HEADER_FIELD_SIGNATURE

Value of the highest-numbered header field code, can be used to determine the size of an array indexed by header field code.

Remember though that unknown codes must be ignored, so check for that before indexing the array.

Definition at line 286 of file dbus-protocol.h.

Referenced by _dbus_header_get_field_basic(), _dbus_header_load(), and _dbus_header_set_field_basic().

#define DBUS_HEADER_FIELD_MEMBER   3

Header field code for a member (method or signal).

See dbus_message_set_member().

Definition at line 257 of file dbus-protocol.h.

Referenced by _dbus_header_create(), dbus_message_get_member(), and dbus_message_set_member().

#define DBUS_HEADER_FIELD_PATH   1

Header field code for the path - the path is the object emitting a signal or the object receiving a method call.

See dbus_message_set_path().

Definition at line 251 of file dbus-protocol.h.

Referenced by _dbus_header_create(), dbus_message_get_path(), and dbus_message_set_path().

#define DBUS_HEADER_FIELD_REPLY_SERIAL   5

Header field code for a reply serial, used to match a DBUS_MESSAGE_TYPE_METHOD_RETURN message with the message that it's a reply to.

See dbus_message_set_reply_serial().

Definition at line 265 of file dbus-protocol.h.

Referenced by dbus_message_get_reply_serial(), and dbus_message_set_reply_serial().

#define DBUS_HEADER_FIELD_SENDER   7

Header field code for the sender of a message; usually initialized by the message bus.

See dbus_message_set_sender().

Definition at line 274 of file dbus-protocol.h.

Referenced by dbus_message_get_sender(), and dbus_message_set_sender().

#define DBUS_HEADER_FLAG_NO_AUTO_START   0x2

If set, this flag means that even if the message bus knows how to start an owner for the destination bus name (see dbus_message_set_destination()), it should not do so.

If this flag is not set, the bus may launch a program to process the message.

Definition at line 242 of file dbus-protocol.h.

Referenced by dbus_message_get_auto_start(), and dbus_message_set_auto_start().

#define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED   0x1

If set, this flag means that the sender of a message does not care about getting a reply, so the recipient need not send one.

See dbus_message_set_no_reply().

Definition at line 235 of file dbus-protocol.h.

Referenced by dbus_message_get_no_reply(), and dbus_message_set_no_reply().

#define DBUS_HEADER_SIGNATURE

Value:

Header format is defined as a signature: byte byte order byte message type ID byte flags byte protocol version uint32 body length uint32 serial array of struct (byte,variant) (field name, value).

The length of the header can be computed as the fixed size of the initial data, plus the length of the array at the end, plus padding to an 8-boundary.

Definition at line 301 of file dbus-protocol.h.

#define DBUS_MAXIMUM_ARRAY_LENGTH   (67108864)

Max length of a marshaled array in bytes (64M, 2^26) We use signed int for lengths so must be INT_MAX or less.

We need something a bit smaller than INT_MAX because the array is inside a message with header info, etc. so an INT_MAX array wouldn't allow the message overhead. The 64M number is an attempt at a larger number than we'd reasonably ever use, but small enough that your bus would chew through it fairly quickly without locking up forever. If you have data that's likely to be larger than this, you should probably be sending it in multiple incremental messages anyhow.

Definition at line 199 of file dbus-protocol.h.

Referenced by dbus_message_iter_append_fixed_array().

#define DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER   63

Max arg number you can match on in a match rule, e.g.

arg0='hello' is OK, arg3489720987='hello' is not

Definition at line 187 of file dbus-protocol.h.

#define DBUS_MAXIMUM_NAME_LENGTH   255

Max length in bytes of a bus name, interface, or member (not object path, paths are unlimited).

This is limited because lots of stuff is O(n) in this number, plus it would be obnoxious to type in a paragraph-long method name so most likely something like that would be an exploit.

Definition at line 174 of file dbus-protocol.h.

Referenced by _dbus_validate_bus_name(), _dbus_validate_interface(), and _dbus_validate_member().

#define DBUS_MAXIMUM_TYPE_RECURSION_DEPTH   32

Depth of recursion in the type tree.

This is automatically limited to DBUS_MAXIMUM_SIGNATURE_LENGTH since you could only have an array of array of array of ... that fit in the max signature. But that's probably a bit too large.

Definition at line 215 of file dbus-protocol.h.

Referenced by _dbus_validate_signature_with_reason().

#define DBUS_MINIMUM_HEADER_SIZE   16

The smallest header size that can occur.

(It won't be valid due to missing required header fields.) This is 4 bytes, two uint32, an array length. This isn't any kind of resource limit, just the necessary/logical outcome of the header signature.

Definition at line 321 of file dbus-protocol.h.

Referenced by _dbus_message_loader_queue_messages().

#define DBUS_NUMBER_OF_TYPES   (16)

Does not include DBUS_TYPE_INVALID, DBUS_STRUCT_BEGIN_CHAR, DBUS_STRUCT_END_CHAR, DBUS_DICT_ENTRY_BEGIN_CHAR, or DBUS_DICT_ENTRY_END_CHAR - i.e.

it is the number of valid types, not the number of distinct characters that may appear in a type signature.

Definition at line 147 of file dbus-protocol.h.


Generated on Tue Apr 15 15:54:10 2008 for D-Bus by  doxygen 1.5.1