Subversion Repositories Kolibri OS

Rev

Rev 1733 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1733 hidnplayr 1
 
2
; 160 ms timer
3
;----------------------
4
macro	TCP_timer_160ms {
5
6
 
7
local	.exit
8
9
 
10
  .loop:
11
	mov	eax, [eax + SOCKET.NextPtr]
12
	or	eax, eax
13
	jz	.exit
14
15
 
16
	jne	.loop
17
18
 
19
	jnz	.loop
20
21
 
22
23
 
24
	call	TCP_respond_socket
25
	pop	eax
26
27
 
28
29
 
30
31
 
32
33
 
34
 
35
; 640 ms timer
36
;----------------------
37
macro	TCP_timer_640ms {
38
39
 
40
local	.exit
41
42
 
43
44
 
45
46
 
47
; timers do not have the chance to wrap because the keepalive timer will kill the socket when it expires
48
49
 
50
  .loop:
51
	mov	eax, [eax + SOCKET.NextPtr]
52
  .check_only:
53
	or	eax, eax
54
	jz	.exit
55
56
 
57
	jne	.loop
58
59
 
60
	jne	.loop
61
62
 
63
	dec	[eax + TCP_SOCKET.timer_retransmission]
64
	jnz	.check_more2
65
66
 
67
68
 
69
	call	TCP_output
70
	pop	eax
71
72
 
73
	dec	[eax + TCP_SOCKET.timer_keepalive]
74
	jnz	.check_more3
75
76
 
77
78
 
79
	jmp	.loop
80
81
 
82
	dec	[eax + TCP_SOCKET.timer_timed_wait]
83
	jnz	.check_more5
84
85
 
86
87
 
88
	dec	[eax + TCP_SOCKET.timer_persist]
89
	jnz	.loop
90
91
 
92
93
 
94
  .exit:
95
96
 
97