aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-06-08 10:23:52 +0000
committerbors <bors@rust-lang.org>2019-06-08 10:23:52 +0000
commit2026c866673a84ad0cd63ac2d73a4f4c2df277ac (patch)
treed639135e6939783518f96151c40b9af42a460431
parentd5a599ece74cde441577db7ece34b59017ff7e6c (diff)
parent4825678dee10f0bec113d6aee2893c028d1e1809 (diff)
downloadlibc-2026c866673a84ad0cd63ac2d73a4f4c2df277ac.tar.gz
Auto merge of #1392 - stefano-garzarella:vsock, r=gnzlbg
linux: add VSOCK struct and constants Add struct sockaddr_vm and VMADDR_ constants to use VSOCK on Linux. VSOCK is present since Linux 3.9
-rw-r--r--libc-test/build.rs1
-rw-r--r--src/unix/linux_like/linux/mod.rs15
2 files changed, 16 insertions, 0 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index 50879064..06386f81 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -2000,6 +2000,7 @@ fn test_linux(target: &str) {
"linux/rtnetlink.h",
"linux/seccomp.h",
"linux/sockios.h",
+ "linux/vm_sockets.h",
"sys/auxv.h",
}
diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs
index d6dfb6f9..6d9c5e72 100644
--- a/src/unix/linux_like/linux/mod.rs
+++ b/src/unix/linux_like/linux/mod.rs
@@ -474,6 +474,14 @@ s! {
pub cookie: u32,
pub len: u32
}
+
+ pub struct sockaddr_vm {
+ pub svm_family: ::sa_family_t,
+ pub svm_reserved1: ::c_ushort,
+ pub svm_port: ::c_uint,
+ pub svm_cid: ::c_uint,
+ pub svm_zero: [u8; 4]
+ }
}
s_no_extra_traits!{
@@ -2000,6 +2008,13 @@ pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5;
pub const ALG_OP_DECRYPT: ::c_int = 0;
pub const ALG_OP_ENCRYPT: ::c_int = 1;
+// uapi/linux/vm_sockets.h
+pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF;
+pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0;
+pub const VMADDR_CID_RESERVED: ::c_uint = 1;
+pub const VMADDR_CID_HOST: ::c_uint = 2;
+pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF;
+
// uapi/linux/inotify.h
pub const IN_ACCESS: u32 = 0x0000_0001;
pub const IN_MODIFY: u32 = 0x0000_0002;