diff options
author | bors <bors@rust-lang.org> | 2019-11-25 19:10:24 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2019-11-25 19:10:24 +0000 |
commit | 581ba358465c24a3954a835bcf446172abe45b6a (patch) | |
tree | 13cff2cf31809832c34c9f7a8dbd77de20b29078 | |
parent | 7a12eedd522e09903745e41ca1f0bbef385a77bd (diff) | |
parent | 54283f9e984e0f8736c69e7df9b2bcbb387e8e10 (diff) | |
download | rust-libc-581ba358465c24a3954a835bcf446172abe45b6a.tar.gz |
Auto merge of #1603 - GrayJack:utmp_solaris, r=gnzlbg
Implement utmp for solarish targets
I followed these references:
https://github.com/illumos/illumos-gate/blob/4e0c5eff9af325c80994e9527b7cb8b3a1ffd1d4/usr/src/head/utmpx.h
https://github.com/illumos/illumos-gate/blob/4e0c5eff9af325c80994e9527b7cb8b3a1ffd1d4/usr/src/head/utmp.h
-rw-r--r-- | src/unix/solarish/mod.rs | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 0ad132e840..c8cca192d9 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -353,6 +353,16 @@ s! { e_termination: ::c_short, e_exit: ::c_short, } + + pub struct utmp { + pub ut_user: [::c_char; 8], + pub ut_id: [::c_char; 4], + pub ut_line: [::c_char; 12], + pub ut_pid: ::c_short, + pub ut_type: ::c_short, + pub ut_exit: exit_status, + pub ut_time: ::time_t, + } } s_no_extra_traits! { @@ -1690,6 +1700,7 @@ pub const PORT_SOURCE_FILE: ::c_int = 7; pub const PORT_SOURCE_POSTWAIT: ::c_int = 8; pub const PORT_SOURCE_SIGNAL: ::c_int = 9; +pub const NONROOT_USR: ::c_short = 2; pub const _UTX_USERSIZE: usize = 32; pub const _UTX_LINESIZE: usize = 32; pub const _UTX_PADSIZE: usize = 5; @@ -2404,10 +2415,18 @@ extern "C" { pub fn pututxline(ut: *const utmpx) -> *mut utmpx; pub fn setutxent(); pub fn endutxent(); -// TODO: uncomment after utmp implementation -// pub fn getutmp(ux: *const utmpx, u: *mut utmp); -// pub fn getutmpx(u: *const utmp, ux: *mut utmpx); -// pub fn updwtmp(file: *const ::c_char, u: *mut utmp); + + pub fn endutent(); + pub fn getutent() -> *mut utmp; + pub fn getutid(u: *const utmp) -> *mut utmp; + pub fn getutline(u: *const utmp) -> *mut utmp; + pub fn pututline(u: *const utmp) -> *mut utmp; + pub fn setutent(); + pub fn utmpname(file: *const ::c_char) -> ::c_int; + + pub fn getutmp(ux: *const utmpx, u: *mut utmp); + pub fn getutmpx(u: *const utmp, ux: *mut utmpx); + pub fn updwtmp(file: *const ::c_char, u: *mut utmp); } mod compat; |