summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2016-03-08 21:43:44 -0800
committerAlex Crichton <alex@alexcrichton.com>2016-03-08 21:43:44 -0800
commit04213bbac5e66c59482cf80ed47ec886e30ed8f7 (patch)
tree6ce8b3eca1b2fa30603b23ddca9fb0b74656f4fe
parentb47bc673bae102f724bfb167ed5199344018fe6a (diff)
parent89a7700e23a0849af488349603e8753a7915603f (diff)
downloadrust-libc-04213bbac5e66c59482cf80ed47ec886e30ed8f7.tar.gz
Merge pull request #202 from kamalmarhubi/openpty
apple: Add openpty(3) and forkpty(3)
-rw-r--r--libc-test/build.rs1
-rw-r--r--src/unix/bsd/apple/mod.rs9
-rw-r--r--src/unix/mod.rs7
3 files changed, 17 insertions, 0 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index 2c0d585362..6475db5749 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -121,6 +121,7 @@ fn main() {
cfg.header("mach-o/dyld.h");
cfg.header("mach/mach_time.h");
cfg.header("malloc/malloc.h");
+ cfg.header("util.h");
if target.starts_with("x86") {
cfg.header("crt_externs.h");
}
diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs
index 3d96ed9308..ec0fe7c111 100644
--- a/src/unix/bsd/apple/mod.rs
+++ b/src/unix/bsd/apple/mod.rs
@@ -927,6 +927,15 @@ extern {
len: *mut ::off_t,
hdtr: *mut ::sf_hdtr,
flags: ::c_int) -> ::c_int;
+ pub fn openpty(amaster: *mut ::c_int,
+ aslave: *mut ::c_int,
+ name: *mut ::c_char,
+ termp: *mut termios,
+ winp: *mut ::winsize) -> ::c_int;
+ pub fn forkpty(amaster: *mut ::c_int,
+ name: *mut ::c_char,
+ termp: *mut termios,
+ winp: *mut ::winsize) -> ::pid_t;
}
cfg_if! {
diff --git a/src/unix/mod.rs b/src/unix/mod.rs
index 6176402fb0..3ffb3b79cf 100644
--- a/src/unix/mod.rs
+++ b/src/unix/mod.rs
@@ -99,6 +99,13 @@ s! {
pub events: ::c_short,
pub revents: ::c_short,
}
+
+ pub struct winsize {
+ pub ws_row: ::c_ushort,
+ pub ws_col: ::c_ushort,
+ pub ws_xpixel: ::c_ushort,
+ pub ws_ypixel: ::c_ushort,
+ }
}
pub const SIG_DFL: sighandler_t = 0 as sighandler_t;