Skip to content

Commit cb095d6

Browse files
committed
Refactored wait
1 parent 83e357b commit cb095d6

File tree

1 file changed

+13
-16
lines changed

1 file changed

+13
-16
lines changed

qiling/os/posix/syscall/wait.py

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,23 @@
33
# Cross Platform and Multi Architecture Advanced Binary Emulation Framework
44
#
55

6+
import os
67

7-
from qiling.const import *
8-
from qiling.os.linux.thread import *
9-
from qiling.const import *
10-
from qiling.os.posix.filestruct import *
11-
from qiling.os.filestruct import *
12-
from qiling.os.posix.const_mapping import *
13-
from qiling.exception import *
14-
from qiling.utils import *
8+
from qiling import Qiling
159
from qiling.os.posix.const import ECHILD
1610

11+
def ql_syscall_wait4(ql: Qiling, pid: int, wstatus: int, options: int, rusage: int):
12+
# convert to signed (pid_t is 32bit)
13+
pid = ql.unpack32s(ql.pack32(pid))
1714

18-
def ql_syscall_wait4(ql, wait4_pid, wait4_wstatus, wait4_options, wait4_rusage, *args, **kw):
19-
wait4_pid = ql.unpack32s(ql.pack32(wait4_pid)) # convert to signed (pid_t is 32bit)
2015
try:
21-
spid, status, rusage = os.wait4(wait4_pid, wait4_options)
22-
if wait4_wstatus != 0:
23-
ql.mem.write(wait4_wstatus, ql.pack32(status))
24-
regreturn = spid
16+
spid, status, _ = os.wait4(pid, options)
17+
18+
if wstatus:
19+
ql.mem.write(wstatus, ql.pack32(status))
20+
21+
retval = spid
2522
except ChildProcessError:
26-
regreturn = -ECHILD
27-
return regreturn
23+
retval = -ECHILD
2824

25+
return retval

0 commit comments

Comments
 (0)