|
|
@@ -2,14 +2,27 @@ SYS_TIMERFD_CREATE equ 0x142
|
|
|
SYS_TIMERFD_GETTIME equ 0x146
|
|
|
SYS_TIMERFD_SETTIME equ 0x145
|
|
|
|
|
|
+
|
|
|
+;timerfd_setttime()
|
|
|
+;argument struct itimerspec contains 2 struct timespec
|
|
|
+;struct timespec contains seconds as time_t (integer unixtimestamp?) and nanoseconds as long
|
|
|
+
|
|
|
section .bss
|
|
|
tfd RESB 4
|
|
|
- tst RESB 4
|
|
|
+ tst RESB 8
|
|
|
tsr RESB 4
|
|
|
lt RESB 1
|
|
|
+ ot RESB 16
|
|
|
+ ;timer struct interval
|
|
|
+ isec RESB 4
|
|
|
+ insec RESB 4
|
|
|
+ ;timer struct init val
|
|
|
+ vsec RESB 4
|
|
|
+ vnsec RESB 4
|
|
|
+
|
|
|
|
|
|
section .data
|
|
|
- tick equ 2
|
|
|
+ tick equ 2000
|
|
|
msg db 'tick',0xa
|
|
|
msgl equ 5
|
|
|
|
|
|
@@ -34,35 +47,46 @@ _start:
|
|
|
;mov [tst], dword 0x01000100
|
|
|
|
|
|
;nanosec
|
|
|
- mov [tsr], byte 0x0
|
|
|
+ mov [tsr], byte 0x1
|
|
|
mov [tsr+1], byte 0x0
|
|
|
mov [tsr+2], byte 0x0
|
|
|
mov [tsr+3], byte 0x0
|
|
|
|
|
|
|
|
|
;sec
|
|
|
- mov [tst], byte 0x1
|
|
|
+ mov [tst], byte 0x2
|
|
|
mov [tst+1], byte 0x0
|
|
|
mov [tst+2], byte 0x0
|
|
|
mov [tst+3], byte 0x0
|
|
|
+ mov [tst+4], byte 0x0
|
|
|
+ mov [tst+5], byte 0x0
|
|
|
+ mov [tst+6], byte 0x0
|
|
|
+ mov [tst+7], byte 0x0
|
|
|
|
|
|
;settime sys_timerfd_settime
|
|
|
mov eax, SYS_TIMERFD_SETTIME
|
|
|
mov ebx, [tfd]
|
|
|
mov ecx, dword 0x0
|
|
|
mov edx, tst
|
|
|
- mov esi, tsr
|
|
|
int 0x80
|
|
|
|
|
|
- jmp exit
|
|
|
+ ;mov eax, 3
|
|
|
+ ;mov ebx, [tfd]
|
|
|
+ ;mov ecx, lt
|
|
|
+ ;mov edx, 1
|
|
|
+ ;int 0x80
|
|
|
+
|
|
|
+ ;jmp exit
|
|
|
+
|
|
|
poll:
|
|
|
;get time
|
|
|
mov eax, SYS_TIMERFD_GETTIME
|
|
|
mov ebx, [tfd]
|
|
|
- mov ecx, tst
|
|
|
+ ;mov ecx, tst
|
|
|
+ mov ecx, ot
|
|
|
int 0x80
|
|
|
|
|
|
- mov bx, [tst]
|
|
|
+ mov bx, [ot+13]
|
|
|
sub bx, [lt]
|
|
|
cmp bx, tick
|
|
|
jg poll
|
|
|
@@ -72,10 +96,12 @@ poll:
|
|
|
mov eax, 4
|
|
|
mov ebx, 1
|
|
|
mov ecx, msg
|
|
|
+ ;mov ecx, ot
|
|
|
mov edx, msgl
|
|
|
+ ;mov edx, 16
|
|
|
int 0x80
|
|
|
|
|
|
- ;jmp poll
|
|
|
+ jmp poll
|
|
|
|
|
|
exit:
|
|
|
mov eax, 1
|