- assert_cc(sizeof(unsigned long long) == sizeof(monotonic));
- key = unicode_FromString("__MONOTONIC_TIMESTAMP");
- timestamp = PyLong_FromUnsignedLongLong(monotonic);
- bytes = PyBytes_FromStringAndSize((const char*) &id.bytes, sizeof(id.bytes));
+PyDoc_STRVAR(Reader_get_monotonic__doc__,
+ "get_monotonic() -> (timestamp, bootid)\n\n"
+ "Return the monotonic timestamp for the current journal entry\n"
+ "as a tuple of time in microseconds and bootid.\n\n"
+ "Wraps sd_journal_get_monotonic_usec().\n"
+ "See man:sd_journal_get_monotonic_usec(3).");
+static PyObject* Reader_get_monotonic(Reader *self, PyObject *args)
+{
+ uint64_t timestamp;
+ sd_id128_t id;
+ PyObject *monotonic, *bootid, *tuple;
+ int r;
+
+ assert(self);
+ assert(!args);
+
+ r = sd_journal_get_monotonic_usec(self->j, ×tamp, &id);
+ if (set_error(r, NULL, NULL))
+ return NULL;
+
+ assert_cc(sizeof(unsigned long long) == sizeof(timestamp));
+ monotonic = PyLong_FromUnsignedLongLong(timestamp);
+ bootid = PyBytes_FromStringAndSize((const char*) &id.bytes, sizeof(id.bytes));