@@ -42,7 +42,7 @@ const WSTOPPED: WaitPidFlag = WUNTRACED;
4242pub enum WaitStatus {
4343 Exited ( pid_t , i8 ) ,
4444 Signaled ( pid_t , signal:: SigNum , bool ) ,
45- Stopped ( pid_t , signal:: SigNum ) ,
45+ Stopped ( pid_t , signal:: SigNum , c_int ) ,
4646 Continued ( pid_t ) ,
4747 StillAlive
4848}
@@ -51,6 +51,7 @@ pub enum WaitStatus {
5151 target_os = "android" ) ) ]
5252mod status {
5353 use sys:: signal;
54+ use libc:: c_int;
5455
5556 pub fn exited ( status : i32 ) -> bool {
5657 ( status & 0x7F ) == 0
@@ -80,6 +81,10 @@ mod status {
8081 ( ( status & 0xFF00 ) >> 8 ) as signal:: SigNum
8182 }
8283
84+ pub fn stop_additional ( status : i32 ) -> c_int {
85+ ( status >> 16 ) as c_int
86+ }
87+
8388 pub fn continued ( status : i32 ) -> bool {
8489 status == 0xFFFF
8590 }
@@ -89,6 +94,7 @@ mod status {
8994 target_os = "ios" ) ) ]
9095mod status {
9196 use sys:: signal;
97+ use libc:: c_int;
9298
9399 const WCOREFLAG : i32 = 0x80 ;
94100 const WSTOPPED : i32 = 0x7f ;
@@ -105,6 +111,10 @@ mod status {
105111 ( status >> 8 ) as signal:: SigNum
106112 }
107113
114+ pub fn stop_additional ( status : i32 ) -> c_int {
115+ 0
116+ }
117+
108118 pub fn continued ( status : i32 ) -> bool {
109119 wstatus ( status) == WSTOPPED && stop_signal ( status) == 0x13
110120 }
@@ -136,6 +146,7 @@ mod status {
136146 target_os = "netbsd" ) ) ]
137147mod status {
138148 use sys:: signal;
149+ use libc:: c_int;
139150
140151 const WCOREFLAG : i32 = 0x80 ;
141152 const WSTOPPED : i32 = 0x7f ;
@@ -152,6 +163,10 @@ mod status {
152163 ( status >> 8 ) as signal:: SigNum
153164 }
154165
166+ pub fn stop_additional ( status : i32 ) -> c_int {
167+ 0
168+ }
169+
155170 pub fn signaled ( status : i32 ) -> bool {
156171 wstatus ( status) != WSTOPPED && wstatus ( status) != 0 && status != 0x13
157172 }
@@ -183,7 +198,7 @@ fn decode(pid : pid_t, status: i32) -> WaitStatus {
183198 } else if status:: signaled ( status) {
184199 WaitStatus :: Signaled ( pid, status:: term_signal ( status) , status:: dumped_core ( status) )
185200 } else if status:: stopped ( status) {
186- WaitStatus :: Stopped ( pid, status:: stop_signal ( status) )
201+ WaitStatus :: Stopped ( pid, status:: stop_signal ( status) , status :: stop_additional ( status ) )
187202 } else {
188203 assert ! ( status:: continued( status) ) ;
189204 WaitStatus :: Continued ( pid)
0 commit comments