Prechádzať zdrojové kódy

another try to finally understand fuckin timerfd

Phil 4 rokov pred
rodič
commit
3566bd9dc5
1 zmenil súbory, kde vykonal 35 pridanie a 9 odobranie
  1. 35 9
      timer.asm

+ 35 - 9
timer.asm

@@ -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