summaryrefslogtreecommitdiff
path: root/src/mqueue.rs
diff options
context:
space:
mode:
authorMarkus Jais <markusjais@gmx.de>2015-08-31 19:12:54 +0200
committerCarl Lerche <me@carllerche.com>2015-09-03 13:30:41 -0700
commitfad667e4e2c72889b55bcc7a21d87fa72218e101 (patch)
treea5a76f490629e100b3ee5980d6b41579e71bc9ab /src/mqueue.rs
parent1f4b0b7f8c0993af56b36b88a4e7f361280e91dc (diff)
downloadnix-fad667e4e2c72889b55bcc7a21d87fa72218e101.zip
added support and tests for mq_setattr
Diffstat (limited to 'src/mqueue.rs')
-rw-r--r--src/mqueue.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mqueue.rs b/src/mqueue.rs
index d225465b..460c7e89 100644
--- a/src/mqueue.rs
+++ b/src/mqueue.rs
@@ -49,6 +49,8 @@ mod ffi {
pub fn mq_send (mqd: MQd, msg_ptr: *const c_char, msg_len: size_t, msq_prio: c_uint) -> c_int;
pub fn mq_getattr(mqd: MQd, attr: *mut MqAttr) -> c_int;
+
+ pub fn mq_setattr(mqd: MQd, newattr: *const MqAttr, oldattr: *mut MqAttr) -> c_int;
}
}
@@ -121,3 +123,13 @@ pub fn mq_getattr(mqd: MQd) -> Result<MqAttr> {
}
Ok(attr)
}
+
+
+pub fn mq_setattr(mqd: MQd, newattr: &MqAttr) -> Result<MqAttr> {
+ let mut attr = MqAttr::new(0, 0, 0, 0);
+ let res = unsafe { ffi::mq_setattr(mqd, newattr as *const MqAttr, &mut attr) };
+ if res < 0 {
+ return Err(Error::Sys(Errno::last()));
+ }
+ Ok(attr)
+}