chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
aa575ef
)
bus: expose priority field of messages, in preparation for prioq support
author
Lennart Poettering
<lennart@poettering.net>
Wed, 22 Jan 2014 19:01:23 +0000
(20:01 +0100)
committer
Lennart Poettering
<lennart@poettering.net>
Wed, 22 Jan 2014 19:01:23 +0000
(20:01 +0100)
src/libsystemd/libsystemd.sym
patch
|
blob
|
history
src/libsystemd/sd-bus/bus-dump.c
patch
|
blob
|
history
src/libsystemd/sd-bus/bus-kernel.c
patch
|
blob
|
history
src/libsystemd/sd-bus/bus-message.c
patch
|
blob
|
history
src/libsystemd/sd-bus/bus-message.h
patch
|
blob
|
history
src/systemd/sd-bus.h
patch
|
blob
|
history
diff --git
a/src/libsystemd/libsystemd.sym
b/src/libsystemd/libsystemd.sym
index 0337e4eb0c41448bd87d1d25e49507ff8775b68a..fc9c4f830c4ed6e6e54130e5e3a8aa9a64ab4913 100644
(file)
--- a/
src/libsystemd/libsystemd.sym
+++ b/
src/libsystemd/libsystemd.sym
@@
-86,6
+86,7
@@
global:
sd_bus_message_get_reply_cookie;
sd_bus_message_get_no_reply;
sd_bus_message_get_no_auto_start;
sd_bus_message_get_reply_cookie;
sd_bus_message_get_no_reply;
sd_bus_message_get_no_auto_start;
+ sd_bus_message_get_priority;
sd_bus_message_get_signature;
sd_bus_message_get_path;
sd_bus_message_get_interface;
sd_bus_message_get_signature;
sd_bus_message_get_path;
sd_bus_message_get_interface;
@@
-104,6
+105,7
@@
global:
sd_bus_message_set_no_reply;
sd_bus_message_set_no_auto_start;
sd_bus_message_set_destination;
sd_bus_message_set_no_reply;
sd_bus_message_set_no_auto_start;
sd_bus_message_set_destination;
+ sd_bus_message_set_priority;
sd_bus_message_append;
sd_bus_message_append_basic;
sd_bus_message_append_array;
sd_bus_message_append;
sd_bus_message_append_basic;
sd_bus_message_append_array;
diff --git
a/src/libsystemd/sd-bus/bus-dump.c
b/src/libsystemd/sd-bus/bus-dump.c
index a2b635821544f121cd51f68388040bc397fa850d..0e415497377582b21b83009f2230d2e33f506d9e 100644
(file)
--- a/
src/libsystemd/sd-bus/bus-dump.c
+++ b/
src/libsystemd/sd-bus/bus-dump.c
@@
-54,14
+54,15
@@
int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) {
if (with_header) {
fprintf(f,
if (with_header) {
fprintf(f,
- "%s%s%sType=%s%s%s Endian=%c Flags=%u Version=%u",
+ "%s%s%sType=%s%s%s Endian=%c Flags=%u Version=%u
Priority=%lli
",
m->header->type == SD_BUS_MESSAGE_METHOD_ERROR ? ansi_highlight_red() :
m->header->type == SD_BUS_MESSAGE_METHOD_RETURN ? ansi_highlight_green() :
m->header->type != SD_BUS_MESSAGE_SIGNAL ? ansi_highlight() : "", draw_special_char(DRAW_TRIANGULAR_BULLET), ansi_highlight_off(),
ansi_highlight(), bus_message_type_to_string(m->header->type), ansi_highlight_off(),
m->header->endian,
m->header->flags,
m->header->type == SD_BUS_MESSAGE_METHOD_ERROR ? ansi_highlight_red() :
m->header->type == SD_BUS_MESSAGE_METHOD_RETURN ? ansi_highlight_green() :
m->header->type != SD_BUS_MESSAGE_SIGNAL ? ansi_highlight() : "", draw_special_char(DRAW_TRIANGULAR_BULLET), ansi_highlight_off(),
ansi_highlight(), bus_message_type_to_string(m->header->type), ansi_highlight_off(),
m->header->endian,
m->header->flags,
- m->header->version);
+ m->header->version,
+ (long long) m->priority);
/* Display synthetic message serial number in a more readable
* format than (uint32_t) -1 */
/* Display synthetic message serial number in a more readable
* format than (uint32_t) -1 */
diff --git
a/src/libsystemd/sd-bus/bus-kernel.c
b/src/libsystemd/sd-bus/bus-kernel.c
index f547ebf134c983b4d98c15e6645f1dcae3dce592..77ad5ca506869ea8db5ea0b965636bed4cc931b9 100644
(file)
--- a/
src/libsystemd/sd-bus/bus-kernel.c
+++ b/
src/libsystemd/sd-bus/bus-kernel.c
@@
-260,6
+260,7
@@
static int bus_message_setup_kmsg(sd_bus *b, sd_bus_message *m) {
m->destination ? unique : KDBUS_DST_ID_BROADCAST;
m->kdbus->payload_type = KDBUS_PAYLOAD_DBUS;
m->kdbus->cookie = m->header->serial;
m->destination ? unique : KDBUS_DST_ID_BROADCAST;
m->kdbus->payload_type = KDBUS_PAYLOAD_DBUS;
m->kdbus->cookie = m->header->serial;
+ m->kdbus->priority = m->priority;
if (m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED)
m->kdbus->cookie_reply = m->reply_cookie;
if (m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED)
m->kdbus->cookie_reply = m->reply_cookie;
diff --git
a/src/libsystemd/sd-bus/bus-message.c
b/src/libsystemd/sd-bus/bus-message.c
index 2c25b3f5f1723c3a0a6370ec022e7c50958394ad..b42c4915ea3552fa248a6e8af3dba104b4f693db 100644
(file)
--- a/
src/libsystemd/sd-bus/bus-message.c
+++ b/
src/libsystemd/sd-bus/bus-message.c
@@
-5548,3
+5548,19
@@
int bus_message_append_sender(sd_bus_message *m, const char *sender) {
return message_append_field_string(m, BUS_MESSAGE_HEADER_SENDER, SD_BUS_TYPE_STRING, sender, &m->sender);
}
return message_append_field_string(m, BUS_MESSAGE_HEADER_SENDER, SD_BUS_TYPE_STRING, sender, &m->sender);
}
+
+_public_ int sd_bus_message_get_priority(sd_bus_message *m, int64_t *priority) {
+ assert_return(m, -EINVAL);
+ assert_return(priority, -EINVAL);
+
+ *priority = m->priority;
+ return 0;
+}
+
+_public_ int sd_bus_message_set_priority(sd_bus_message *m, int64_t priority) {
+ assert_return(m, -EINVAL);
+ assert_return(!m->sealed, -EPERM);
+
+ m->priority = priority;
+ return 0;
+}
diff --git
a/src/libsystemd/sd-bus/bus-message.h
b/src/libsystemd/sd-bus/bus-message.h
index 0c90e726dec1f11acb852d5ff6cead8201109094..5fbe3e60307ab7fc50a1725fbed807f67138e1b5 100644
(file)
--- a/
src/libsystemd/sd-bus/bus-message.h
+++ b/
src/libsystemd/sd-bus/bus-message.h
@@
-99,6
+99,7
@@
struct sd_bus_message {
usec_t monotonic;
usec_t realtime;
uint64_t seqnum;
usec_t monotonic;
usec_t realtime;
uint64_t seqnum;
+ int64_t priority;
bool sealed:1;
bool dont_send:1;
bool sealed:1;
bool dont_send:1;
diff --git
a/src/systemd/sd-bus.h
b/src/systemd/sd-bus.h
index 99928882f29d244044fb3bfcf43a4573de7ba76f..6f9443aa37a365bb2dc027448e3c3feccdcfceab 100644
(file)
--- a/
src/systemd/sd-bus.h
+++ b/
src/systemd/sd-bus.h
@@
-193,6
+193,7
@@
int sd_bus_message_get_cookie(sd_bus_message *m, uint64_t *cookie);
int sd_bus_message_get_reply_cookie(sd_bus_message *m, uint64_t *cookie);
int sd_bus_message_get_no_reply(sd_bus_message *m);
int sd_bus_message_get_no_auto_start(sd_bus_message *m);
int sd_bus_message_get_reply_cookie(sd_bus_message *m, uint64_t *cookie);
int sd_bus_message_get_no_reply(sd_bus_message *m);
int sd_bus_message_get_no_auto_start(sd_bus_message *m);
+int sd_bus_message_get_priority(sd_bus_message *m, int64_t *priority);
const char *sd_bus_message_get_signature(sd_bus_message *m, int complete);
const char *sd_bus_message_get_path(sd_bus_message *m);
const char *sd_bus_message_get_signature(sd_bus_message *m, int complete);
const char *sd_bus_message_get_path(sd_bus_message *m);
@@
-216,6
+217,7
@@
int sd_bus_message_is_method_error(sd_bus_message *m, const char *name);
int sd_bus_message_set_no_reply(sd_bus_message *m, int b);
int sd_bus_message_set_no_auto_start(sd_bus_message *m, int b);
int sd_bus_message_set_destination(sd_bus_message *m, const char *destination);
int sd_bus_message_set_no_reply(sd_bus_message *m, int b);
int sd_bus_message_set_no_auto_start(sd_bus_message *m, int b);
int sd_bus_message_set_destination(sd_bus_message *m, const char *destination);
+int sd_bus_message_set_priority(sd_bus_message *m, int64_t priority);
int sd_bus_message_append(sd_bus_message *m, const char *types, ...);
int sd_bus_message_append_basic(sd_bus_message *m, char type, const void *p);
int sd_bus_message_append(sd_bus_message *m, const char *types, ...);
int sd_bus_message_append_basic(sd_bus_message *m, char type, const void *p);