Skip to content

Commit ade8d4b

Browse files
committed
add syscall: clock_nanosleep_time64
1 parent c524717 commit ade8d4b

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

qiling/os/posix/syscall/time.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,25 @@ def ql_syscall_time(ql, *args, **kw):
1717
regreturn = int(time.time())
1818
return regreturn
1919

20+
def ql_syscall_clock_nanosleep_time64(ql, nanosleep_clk_id, nanosleep_flags, nanosleep_req, nanosleep_rem, *args, **kw):
21+
def _sched_sleep(cur_thread):
22+
gevent.sleep(tv_sec)
23+
24+
n = ql.pointersize
25+
26+
tv_sec = ql.unpack(ql.mem.read(nanosleep_req, n))
27+
tv_sec += ql.unpack(ql.mem.read(nanosleep_req + n, n)) / 1000000000
28+
29+
if ql.os.thread_management == None:
30+
time.sleep(tv_sec)
31+
else:
32+
ql.emu_stop()
33+
ql.os.thread_management.cur_thread.sched_cb = _sched_sleep
34+
th = ql.os.thread_management.cur_thread
35+
36+
regreturn = 0
37+
return regreturn
38+
2039

2140
def ql_syscall_nanosleep(ql, nanosleep_req, nanosleep_rem, *args, **kw):
2241
def _sched_sleep(cur_thread):

0 commit comments

Comments
 (0)