diff options
author | Markus Jais <markusjais@gmx.de> | 2015-08-31 19:12:54 +0200 |
---|---|---|
committer | Carl Lerche <me@carllerche.com> | 2015-09-03 13:30:41 -0700 |
commit | fad667e4e2c72889b55bcc7a21d87fa72218e101 (patch) | |
tree | a5a76f490629e100b3ee5980d6b41579e71bc9ab /src/mqueue.rs | |
parent | 1f4b0b7f8c0993af56b36b88a4e7f361280e91dc (diff) | |
download | nix-fad667e4e2c72889b55bcc7a21d87fa72218e101.zip |
added support and tests for mq_setattr
Diffstat (limited to 'src/mqueue.rs')
-rw-r--r-- | src/mqueue.rs | 12 |
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) +} |