Place structs inside of s!
diff --git a/src/redox.rs b/src/redox.rs
index 09b07da..7a05a39 100644
--- a/src/redox.rs
+++ b/src/redox.rs
@@ -17,41 +17,33 @@
 pub type socklen_t = u32;
 pub type sa_family_t = u16;
 
-#[derive(Copy, Clone)]
-#[repr(C)]
-pub struct in_addr {
-    pub s_addr: in_addr_t,
-}
+s! {
+    pub struct in_addr {
+        pub s_addr: in_addr_t,
+    }
 
-#[derive(Copy, Clone)]
-#[repr(C)]
-pub struct in6_addr {
-    pub s6_addr: [u8; 16],
-    __align: [u32; 0],
-}
+    pub struct in6_addr {
+        pub s6_addr: [u8; 16],
+        __align: [u32; 0],
+    }
 
-#[derive(Copy, Clone)]
-#[repr(C)]
-pub struct sockaddr {
-    pub sa_family: sa_family_t,
-    pub sa_data: [::c_char; 14],
-}
+    pub struct sockaddr {
+        pub sa_family: sa_family_t,
+        pub sa_data: [::c_char; 14],
+    }
 
-#[derive(Copy, Clone)]
-#[repr(C)]
-pub struct sockaddr_in {
-    pub sin_family: sa_family_t,
-    pub sin_port: ::in_port_t,
-    pub sin_addr: ::in_addr,
-    pub sin_zero: [u8; 8],
-}
+    pub struct sockaddr_in {
+        pub sin_family: sa_family_t,
+        pub sin_port: ::in_port_t,
+        pub sin_addr: ::in_addr,
+        pub sin_zero: [u8; 8],
+    }
 
-#[derive(Copy, Clone)]
-#[repr(C)]
-pub struct sockaddr_in6 {
-    pub sin6_family: sa_family_t,
-    pub sin6_port: in_port_t,
-    pub sin6_flowinfo: u32,
-    pub sin6_addr: ::in6_addr,
-    pub sin6_scope_id: u32,
+    pub struct sockaddr_in6 {
+        pub sin6_family: sa_family_t,
+        pub sin6_port: in_port_t,
+        pub sin6_flowinfo: u32,
+        pub sin6_addr: ::in6_addr,
+        pub sin6_scope_id: u32,
+    }
 }