rvi-sota-client_git: add RVI SOTA client
[AGL/meta-agl.git] / meta-agl / recipes-sota / rvi-sota-client / files / dbus-rs / 0001-Cast-correctly-c_char-raw-pointers-for-ARM.patch
1 From 768202d3223813e71848758ecafcfeab276d9101 Mon Sep 17 00:00:00 2001
2 From: Leon Anavi <leon.anavi@konsulko.com>
3 Date: Sat, 12 Mar 2016 17:52:02 +0200
4 Subject: [PATCH] Cast correctly c_char raw pointers for ARM
5
6 Fix the build of crate dbus-rs (version 0.1.2) for ARM
7 with correct casts of c_char raw pointers.
8
9 Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
10 ---
11  src/lib.rs     | 18 +++++++++---------
12  src/message.rs | 10 +++++-----
13  2 files changed, 14 insertions(+), 14 deletions(-)
14
15 diff --git a/src/lib.rs b/src/lib.rs
16 index aac9c0f..8134dc4 100644
17 --- a/src/lib.rs
18 +++ b/src/lib.rs
19 @@ -60,7 +60,7 @@ unsafe impl Send for Error {}
20  
21  fn c_str_to_slice(c: & *const libc::c_char) -> Option<&str> {
22      if *c == ptr::null() { None }
23 -    else { std::str::from_utf8( unsafe { CStr::from_ptr(*c).to_bytes() }).ok() }
24 +    else { std::str::from_utf8( unsafe { CStr::from_ptr(*c as *const _).to_bytes() }).ok() }
25  }
26  
27  fn to_c_str(n: &str) -> CString { CString::new(n.as_bytes()).unwrap() }
28 @@ -72,7 +72,7 @@ impl Error {
29          let m = to_c_str(&message.replace("%","%%"));
30          let mut e = Error::empty();
31  
32 -        unsafe { ffi::dbus_set_error(e.get_mut(), n.as_ptr(), m.as_ptr()) };
33 +        unsafe { ffi::dbus_set_error(e.get_mut(), n.as_ptr()  as *const _, m.as_ptr()  as *const _) };
34          e
35      }
36  
37 @@ -272,21 +272,21 @@ impl Connection {
38          };
39          let r = unsafe {
40              let user_data: *mut libc::c_void = std::mem::transmute(&*self.i);
41 -            ffi::dbus_connection_try_register_object_path(self.conn(), p.as_ptr(), &vtable, user_data, e.get_mut())
42 +            ffi::dbus_connection_try_register_object_path(self.conn(), p.as_ptr() as *const _, &vtable, user_data, e.get_mut())
43          };
44          if r == 0 { Err(e) } else { Ok(()) }
45      }
46  
47      pub fn unregister_object_path(&self, path: &str) {
48          let p = to_c_str(path);
49 -        let r = unsafe { ffi::dbus_connection_unregister_object_path(self.conn(), p.as_ptr()) };
50 +        let r = unsafe { ffi::dbus_connection_unregister_object_path(self.conn(), p.as_ptr() as *const _) };
51          if r == 0 { panic!("Out of memory"); }
52      }
53  
54      pub fn list_registered_object_paths(&self, path: &str) -> Vec<String> {
55          let p = to_c_str(path);
56          let mut clist: *mut *mut libc::c_char = ptr::null_mut();
57 -        let r = unsafe { ffi::dbus_connection_list_registered(self.conn(), p.as_ptr(), &mut clist) };
58 +        let r = unsafe { ffi::dbus_connection_list_registered(self.conn(), p.as_ptr() as *const _, &mut clist) };
59          if r == 0 { panic!("Out of memory"); }
60          let mut v = Vec::new();
61          let mut i = 0;
62 @@ -306,28 +306,28 @@ impl Connection {
63      pub fn register_name(&self, name: &str, flags: u32) -> Result<RequestNameReply, Error> {
64          let mut e = Error::empty();
65          let n = to_c_str(name);
66 -        let r = unsafe { ffi::dbus_bus_request_name(self.conn(), n.as_ptr(), flags, e.get_mut()) };
67 +        let r = unsafe { ffi::dbus_bus_request_name(self.conn(), n.as_ptr() as *const _, flags, e.get_mut()) };
68          if r == -1 { Err(e) } else { Ok(unsafe { std::mem::transmute(r) }) }
69      }
70  
71      pub fn release_name(&self, name: &str) -> Result<ReleaseNameReply, Error> {
72          let mut e = Error::empty();
73          let n = to_c_str(name);
74 -        let r = unsafe { ffi::dbus_bus_release_name(self.conn(), n.as_ptr(), e.get_mut()) };
75 +        let r = unsafe { ffi::dbus_bus_release_name(self.conn(), n.as_ptr() as *const _, e.get_mut()) };
76          if r == -1 { Err(e) } else { Ok(unsafe { std::mem::transmute(r) }) }
77      }
78  
79      pub fn add_match(&self, rule: &str) -> Result<(), Error> {
80          let mut e = Error::empty();
81          let n = to_c_str(rule);
82 -        unsafe { ffi::dbus_bus_add_match(self.conn(), n.as_ptr(), e.get_mut()) };
83 +        unsafe { ffi::dbus_bus_add_match(self.conn(), n.as_ptr() as *const _, e.get_mut()) };
84          if e.name().is_some() { Err(e) } else { Ok(()) }
85      }
86  
87      pub fn remove_match(&self, rule: &str) -> Result<(), Error> {
88          let mut e = Error::empty();
89          let n = to_c_str(rule);
90 -        unsafe { ffi::dbus_bus_remove_match(self.conn(), n.as_ptr(), e.get_mut()) };
91 +        unsafe { ffi::dbus_bus_remove_match(self.conn(), n.as_ptr() as *const _, e.get_mut()) };
92          if e.name().is_some() { Err(e) } else { Ok(()) }
93      }
94  
95 diff --git a/src/message.rs b/src/message.rs
96 index 23871f8..e3dd021 100644
97 --- a/src/message.rs
98 +++ b/src/message.rs
99 @@ -126,7 +126,7 @@ fn iter_append_array(i: &mut ffi::DBusMessageIter, a: &[MessageItem], t: TypeSig
100      let mut subiter = new_dbus_message_iter();
101      let atype = to_c_str(&t);
102  
103 -    assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_ARRAY, atype.as_ptr(), &mut subiter) } != 0);
104 +    assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_ARRAY, atype.as_ptr() as *const _, &mut subiter) } != 0);
105      for item in a.iter() {
106  //        assert!(item.type_sig() == t);
107          item.iter_append(&mut subiter);
108 @@ -148,7 +148,7 @@ fn iter_append_struct(i: &mut ffi::DBusMessageIter, a: &[MessageItem]) {
109  fn iter_append_variant(i: &mut ffi::DBusMessageIter, a: &MessageItem) {
110      let mut subiter = new_dbus_message_iter();
111      let atype = to_c_str(&format!("{}", a.array_type() as u8 as char));
112 -    assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_VARIANT, atype.as_ptr(), &mut subiter) } != 0);
113 +    assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_VARIANT, atype.as_ptr()  as *const _, &mut subiter) } != 0);
114      a.iter_append(&mut subiter);
115      assert!(unsafe { ffi::dbus_message_iter_close_container(i, &mut subiter) } != 0);
116  }
117 @@ -481,7 +481,7 @@ impl Message {
118          init_dbus();
119          let (d, p, i, m) = (to_c_str(destination), to_c_str(path), to_c_str(iface), to_c_str(method));
120          let ptr = unsafe {
121 -            ffi::dbus_message_new_method_call(d.as_ptr(), p.as_ptr(), i.as_ptr(), m.as_ptr())
122 +            ffi::dbus_message_new_method_call(d.as_ptr() as *const _, p.as_ptr() as *const _, i.as_ptr() as *const _, m.as_ptr() as *const _)
123          };
124          if ptr == ptr::null_mut() { None } else { Some(Message { msg: ptr} ) }
125      }
126 @@ -490,7 +490,7 @@ impl Message {
127          init_dbus();
128          let (p, i, m) = (to_c_str(path), to_c_str(iface), to_c_str(method));
129          let ptr = unsafe {
130 -            ffi::dbus_message_new_signal(p.as_ptr(), i.as_ptr(), m.as_ptr())
131 +            ffi::dbus_message_new_signal(p.as_ptr() as *const _, i.as_ptr() as *const _, m.as_ptr() as *const _)
132          };
133          if ptr == ptr::null_mut() { None } else { Some(Message { msg: ptr} ) }
134      }
135 @@ -502,7 +502,7 @@ impl Message {
136  
137      pub fn new_error(m: &Message, error_name: &str, error_message: &str) -> Option<Message> {
138          let (en, em) = (to_c_str(error_name), to_c_str(error_message));
139 -        let ptr = unsafe { ffi::dbus_message_new_error(m.msg, en.as_ptr(), em.as_ptr()) };
140 +        let ptr = unsafe { ffi::dbus_message_new_error(m.msg, en.as_ptr() as *const _, em.as_ptr() as *const _) };
141          if ptr == ptr::null_mut() { None } else { Some(Message { msg: ptr} ) }
142      }
143  
144 -- 
145 2.1.4
146