diff --git a/libc-test/build.rs b/libc-test/build.rs index 2c0d5853623487492bb79878e83e49fd72cce52d..6475db5749c2779386b5082bac93b53e17fee979 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 3d96ed9308545a355f1a5b7797199610f87757da..ec0fe7c111b43fbd6ebfdd82a539015dc05da811 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 6176402fb07e5788e43237b149b7030dbf37442f..3ffb3b79cf9d205ec9e1c7471fe91e9bffdbd5c9 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;