mirror of
https://git.proxmox.com/git/systemd
synced 2025-05-29 10:01:12 +00:00
99 lines
4.3 KiB
Groff
99 lines
4.3 KiB
Groff
'\" t
|
|
.TH "SD_BUS_MESSAGE_GET_MONOTONIC_USEC" "3" "" "systemd 219" "sd_bus_message_get_monotonic_usec"
|
|
.\" -----------------------------------------------------------------
|
|
.\" * Define some portability stuff
|
|
.\" -----------------------------------------------------------------
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.\" http://bugs.debian.org/507673
|
|
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.ie \n(.g .ds Aq \(aq
|
|
.el .ds Aq '
|
|
.\" -----------------------------------------------------------------
|
|
.\" * set default formatting
|
|
.\" -----------------------------------------------------------------
|
|
.\" disable hyphenation
|
|
.nh
|
|
.\" disable justification (adjust text to left margin only)
|
|
.ad l
|
|
.\" -----------------------------------------------------------------
|
|
.\" * MAIN CONTENT STARTS HERE *
|
|
.\" -----------------------------------------------------------------
|
|
.SH "NAME"
|
|
sd_bus_message_get_monotonic_usec, sd_bus_message_get_realtime_usec, sd_bus_message_get_seqnum \- Retrieve the sender timestamps and sequence number of a message
|
|
.SH "SYNOPSIS"
|
|
.sp
|
|
.ft B
|
|
.nf
|
|
#include <systemd/sd\-bus\&.h>
|
|
.fi
|
|
.ft
|
|
.HP \w'int\ sd_bus_message_get_monotonic_usec('u
|
|
.BI "int sd_bus_message_get_monotonic_usec(sd_bus_message\ *" "message" ", uint64_t\ *" "usec" ");"
|
|
.HP \w'int\ sd_bus_message_get_realtime_usec('u
|
|
.BI "int sd_bus_message_get_realtime_usec(sd_bus_message\ *" "message" ", uint64_t\ *" "usec" ");"
|
|
.HP \w'int\ sd_bus_message_get_seqnum('u
|
|
.BI "int sd_bus_message_get_seqnum(sd_bus_message\ *" "message" ", uint64_t\ *" "seqnum" ");"
|
|
.SH "DESCRIPTION"
|
|
.PP
|
|
\fBsd_bus_message_get_monotonic_usec()\fR
|
|
returns the monotonic timestamp of the time the message was sent\&. This value is in microseconds since the
|
|
\fBCLOCK_MONOTONIC\fR
|
|
epoch, see
|
|
\fBclock_gettime\fR(2)
|
|
for details\&.
|
|
.PP
|
|
Similar,
|
|
\fBsd_bus_message_get_realtime_usec()\fR
|
|
returns the realtime (wallclock) timestamp of the time the message was sent\&. This value is in microseconds since Jan 1st, 1970, i\&.e\&. in the
|
|
\fBCLOCK_REALTIME\fR
|
|
clock\&.
|
|
.PP
|
|
\fBsd_bus_message_get_seqnum()\fR
|
|
returns the kernel\-assigned sequence number of the message\&. The kernel assigns a global, monotonically increasing sequence number to all messages transmitted on the local system, at the time the message was sent\&. This sequence number is useful for determining message send order, even across different busses of the local system\&. The sequence number combined with the boot ID of the system (as returned by
|
|
\fBsd_id128_get_boot\fR(3)) is a suitable globally unique identifier for bus messages\&.
|
|
.PP
|
|
Note that the sending order and receiving order of messages might differ, in particular for broadcast messages\&. This means that the sequence number and the timestamps of messages a client reads are not necessarily monotonically increasing\&.
|
|
.PP
|
|
These timestamps and the sequence number are attached to each message by the kernel and cannot be manipulated by the sender\&.
|
|
.PP
|
|
Note that these timestamps are only available on some bus transports, and only after support for them has been negotiated with the
|
|
\fBsd_bus_negotiate_timestamp\fR(3)
|
|
call\&.
|
|
.SH "RETURN VALUE"
|
|
.PP
|
|
On success, these calls return 0 or a positive integer\&. On failure, these calls return a negative errno\-style error code\&.
|
|
.PP
|
|
On success, the timestamp or sequence number is returned in the specified 64\-bit unsigned integer variable\&.
|
|
.SH "ERRORS"
|
|
.PP
|
|
Returned errors may indicate the following problems:
|
|
.PP
|
|
\fB\-EINVAL\fR
|
|
.RS 4
|
|
A specified parameter is invalid\&.
|
|
.RE
|
|
.PP
|
|
\fB\-ENODATA\fR
|
|
.RS 4
|
|
No timestamp or sequence number information is attached to the passed message\&. This error is returned if the underlying transport does not support timestamping or assigning of sequence numbers, or if this feature has not been negotiated with
|
|
\fBsd_bus_negotiate_timestamp\fR(3)\&.
|
|
.RE
|
|
.SH "NOTES"
|
|
.PP
|
|
The
|
|
\fBsd_bus_message_get_monotonic_usec()\fR,
|
|
\fBsd_bus_message_get_realtime_usec()\fR, and
|
|
\fBsd_bus_message_get_seqnum()\fR
|
|
interfaces are available as a shared library, which can be compiled and linked to with the
|
|
\fBlibsystemd\fR\ \&\fBpkg-config\fR(1)
|
|
file\&.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
\fBsystemd\fR(1),
|
|
\fBsd-bus\fR(3),
|
|
\fBsd_bus_new\fR(3),
|
|
\fBsd_bus_negotiate_timestamp\fR(3),
|
|
\fBclock_gettime\fR(2),
|
|
\fBsd_id128_get_boot\fR(3)
|