D-Bus 1.13.18

Macros
Protocol constants
D-Bus low-level public API

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

## Macros
#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_UNIX_FD ((int) 'h')
| Type code marking a unix file descriptor.
#define | DBUS_TYPE_UNIX_FD_AS_STRING "h"
| DBUS_TYPE_UNIX_FD 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')
| STRUCT and DICT_ENTRY are sort of special since their codes can't appear in a type string, instead DBUS_STRUCT_BEGIN_CHAR/DBUS_DICT_ENTRY_BEGIN_CHAR have to appear. More...
#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. More...
#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). More...
#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. More...
#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. More...
#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_MESSAGE_UNIX_FDS (DBUS_MAXIMUM_MESSAGE_LENGTH/4)
| The maximum total number of unix fds in a message. More...
#define | DBUS_MAXIMUM_MESSAGE_UNIX_FDS_BITS (DBUS_MAXIMUM_MESSAGE_LENGTH_BITS-2)
| Number of bits you need in an unsigned to store the max message unix fds.
#define | DBUS_MAXIMUM_TYPE_RECURSION_DEPTH 32
| Depth of recursion in the type tree. More...
#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_NUM_MESSAGE_TYPES 5
#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. More...
#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. More...
#define | DBUS_HEADER_FLAG_ALLOW_INTERACTIVE_AUTHORIZATION 0x4
| If set on a method call, this flag means that the caller is prepared to wait for interactive authorization.
#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. More...
#define | DBUS_HEADER_FIELD_INTERFACE 2
| Header field code for the interface containing a member (method or signal). More...
#define | DBUS_HEADER_FIELD_MEMBER 3
| Header field code for a member (method or signal). More...
#define | DBUS_HEADER_FIELD_ERROR_NAME 4
| Header field code for an error name (found in DBUS_MESSAGE_TYPE_ERROR messages). More...
#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. More...
#define | DBUS_HEADER_FIELD_DESTINATION 6
| Header field code for the destination bus name of a message. More...
#define | DBUS_HEADER_FIELD_SENDER 7
| Header field code for the sender of a message; usually initialized by the message bus. More...
#define | DBUS_HEADER_FIELD_SIGNATURE 8
| Header field code for the type signature of a message.
#define | DBUS_HEADER_FIELD_UNIX_FDS 9
| Header field code for the number of unix file descriptors associated with this message.
#define | DBUS_HEADER_FIELD_CONTAINER_INSTANCE 10
| Header field code for the container instance that sent this message.
#define | DBUS_HEADER_FIELD_LAST DBUS_HEADER_FIELD_CONTAINER_INSTANCE
| Value of the highest-numbered header field code, can be used to determine the size of an array indexed by header field code. More...
#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) More...
#define | DBUS_MINIMUM_HEADER_SIZE 16
| The smallest header size that can occur. More...
#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. More...
#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. More...
#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. More...
#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_UNKNOWN_OBJECT "org.freedesktop.DBus.Error.UnknownObject"
| Object you invoked a method on isn't known.
#define | DBUS_ERROR_UNKNOWN_INTERFACE "org.freedesktop.DBus.Error.UnknownInterface"
| Interface you invoked a method on isn't known by the object.
#define | DBUS_ERROR_UNKNOWN_PROPERTY "org.freedesktop.DBus.Error.UnknownProperty"
| Property you tried to access isn't known by the object.
#define | DBUS_ERROR_PROPERTY_READ_ONLY "org.freedesktop.DBus.Error.PropertyReadOnly"
| Property you tried to set is read-only.
#define | DBUS_ERROR_TIMED_OUT "org.freedesktop.DBus.Error.TimedOut"
| Certain timeout errors, e.g. More...
#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_SPAWN_SETUP_FAILED "org.freedesktop.DBus.Error.Spawn.FailedToSetup"
| We failed to setup the environment correctly.
#define | DBUS_ERROR_SPAWN_CONFIG_INVALID "org.freedesktop.DBus.Error.Spawn.ConfigInvalid"
| We failed to setup the config parser correctly.
#define | DBUS_ERROR_SPAWN_SERVICE_INVALID "org.freedesktop.DBus.Error.Spawn.ServiceNotValid"
| Bus name was not valid.
#define | DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND "org.freedesktop.DBus.Error.Spawn.ServiceNotFound"
| Service file not found in system-services directory.
#define | DBUS_ERROR_SPAWN_PERMISSIONS_INVALID "org.freedesktop.DBus.Error.Spawn.PermissionsInvalid"
| Permissions are incorrect on the setuid helper.
#define | DBUS_ERROR_SPAWN_FILE_INVALID "org.freedesktop.DBus.Error.Spawn.FileInvalid"
| Service file invalid (Name, User or Exec missing).
#define | DBUS_ERROR_SPAWN_NO_MEMORY "org.freedesktop.DBus.Error.Spawn.NoMemory"
| There was not enough memory to complete the operation.
#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_ERROR_ADT_AUDIT_DATA_UNKNOWN "org.freedesktop.DBus.Error.AdtAuditDataUnknown"
| Asked for ADT audit data and it wasn't available.
#define | DBUS_ERROR_OBJECT_PATH_IN_USE "org.freedesktop.DBus.Error.ObjectPathInUse"
| There's already an object with the requested object path.
#define | DBUS_ERROR_INCONSISTENT_MESSAGE "org.freedesktop.DBus.Error.InconsistentMessage"
| The message meta data does not match the payload. More...
#define | DBUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED "org.freedesktop.DBus.Error.InteractiveAuthorizationRequired"
| The message is not allowed without performing interactive authorization, but could have succeeded if an interactive authorization step was allowed.
#define | DBUS_ERROR_NOT_CONTAINER "org.freedesktop.DBus.Error.NotContainer"
| The connection is not from a container, or the specified container instance does not exist.
#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.

## Macro Definition Documentation

## ◆ DBUS_ERROR_ADDRESS_IN_USE

#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 392 of file dbus-protocol.h.

## ◆ DBUS_ERROR_INCONSISTENT_MESSAGE

#define DBUS_ERROR_INCONSISTENT_MESSAGE "org.freedesktop.DBus.Error.InconsistentMessage"

The message meta data does not match the payload.

e.g. expected number of file descriptors were not sent over the socket this message was received on.

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

## ◆ DBUS_ERROR_NAME_HAS_NO_OWNER

#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 366 of file dbus-protocol.h.

## ◆ DBUS_ERROR_TIMED_OUT

#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 415 of file dbus-protocol.h.

## ◆ DBUS_ERROR_TIMEOUT

#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 388 of file dbus-protocol.h.

## ◆ DBUS_HEADER_FIELD_DESTINATION

#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 289 of file dbus-protocol.h.

## ◆ DBUS_HEADER_FIELD_ERROR_NAME

#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 281 of file dbus-protocol.h.

## ◆ DBUS_HEADER_FIELD_INTERFACE

#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 275 of file dbus-protocol.h.

## ◆ DBUS_HEADER_FIELD_LAST

#define DBUS_HEADER_FIELD_LAST DBUS_HEADER_FIELD_CONTAINER_INSTANCE

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 316 of file dbus-protocol.h.

## ◆ DBUS_HEADER_FIELD_MEMBER

#define DBUS_HEADER_FIELD_MEMBER 3

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

See dbus_message_set_member().

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

## ◆ DBUS_HEADER_FIELD_PATH

#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 271 of file dbus-protocol.h.

## ◆ DBUS_HEADER_FIELD_REPLY_SERIAL

#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 285 of file dbus-protocol.h.

## ◆ DBUS_HEADER_FIELD_SENDER

#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 294 of file dbus-protocol.h.

## ◆ DBUS_HEADER_FLAG_NO_AUTO_START

#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 257 of file dbus-protocol.h.

## ◆ DBUS_HEADER_FLAG_NO_REPLY_EXPECTED

#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 250 of file dbus-protocol.h.

## ◆ DBUS_HEADER_SIGNATURE

#define DBUS_HEADER_SIGNATURE

Value:
DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_UINT32_AS_STRING \
DBUS_TYPE_UINT32_AS_STRING \
DBUS_TYPE_ARRAY_AS_STRING \
DBUS_STRUCT_BEGIN_CHAR_AS_STRING \
DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_VARIANT_AS_STRING \
DBUS_STRUCT_END_CHAR_AS_STRING

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 331 of file dbus-protocol.h.

## ◆ DBUS_MAXIMUM_ARRAY_LENGTH

#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 204 of file dbus-protocol.h.

## ◆ DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER

#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 192 of file dbus-protocol.h.

## ◆ DBUS_MAXIMUM_MESSAGE_UNIX_FDS

#define DBUS_MAXIMUM_MESSAGE_UNIX_FDS (DBUS_MAXIMUM_MESSAGE_LENGTH/4)

The maximum total number of unix fds in a message.

Similar rationale as DBUS_MAXIMUM_MESSAGE_LENGTH. However we divide by four given that one fd is an int and hence at least 32 bits.

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

## ◆ DBUS_MAXIMUM_NAME_LENGTH

#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 179 of file dbus-protocol.h.

## ◆ DBUS_MAXIMUM_TYPE_RECURSION_DEPTH

#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 228 of file dbus-protocol.h.

## ◆ DBUS_MINIMUM_HEADER_SIZE

#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 351 of file dbus-protocol.h.

## ◆ DBUS_NUMBER_OF_TYPES

#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 152 of file dbus-protocol.h.

## ◆ DBUS_TYPE_STRUCT

#define DBUS_TYPE_STRUCT ((int) 'r')

STRUCT and DICT_ENTRY are sort of special since their codes can't appear in a type string, instead DBUS_STRUCT_BEGIN_CHAR/DBUS_DICT_ENTRY_BEGIN_CHAR have to appear.

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.

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