Subversion Repositories Kolibri OS

Rev

Rev 1251 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1251 Rev 1254
Line 15... Line 15...
15
;;          GNU GENERAL PUBLIC LICENSE                             ;;
15
;;          GNU GENERAL PUBLIC LICENSE                             ;;
16
;;             Version 2, June 1991                                ;;
16
;;             Version 2, June 1991                                ;;
17
;;                                                                 ;;
17
;;                                                                 ;;
18
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 19... Line 19...
19
 
19
 
Line 20... Line 20...
20
$Revision: 1251 $
20
$Revision: 1254 $
21
 
21
 
22
uglobal
22
uglobal
23
	last_1sTick	db ?
23
	last_1sTick	db ?
Line 30... Line 30...
30
MAX_EPHEMERAL_PORT equ 61000
30
MAX_EPHEMERAL_PORT equ 61000
Line 31... Line 31...
31
 
31
 
32
ETHER		equ 1337
32
ETHER		equ 1337
Line 33... Line 33...
33
ETHER_ARP	equ 0x0608
33
ETHER_ARP	equ 0x0608
34
 
34
 
35
;AF_UNSPEC       equ 0
35
AF_UNSPEC	equ 0
36
AF_UNIX 	equ 1
36
AF_UNIX 	equ 1
37
AF_INET4	equ 2
37
AF_INET4	equ 2
38
;AF_AX25         equ 3
38
;AF_AX25         equ 3
Line 53... Line 53...
53
; Socket types
53
; Socket types
54
SOCK_STREAM	= 1
54
SOCK_STREAM	= 1
55
SOCK_DGRAM	= 2
55
SOCK_DGRAM	= 2
56
SOCK_RAW	= 3
56
SOCK_RAW	= 3
Line 57... Line 57...
57
 
57
 
-
 
58
TCB_LISTEN		equ 1
58
; TCP opening modes
59
TCB_SYN_SENT		equ 2
-
 
60
TCB_SYN_RECEIVED	equ 3
-
 
61
TCB_ESTABLISHED 	equ 4
-
 
62
TCB_FIN_WAIT_1		equ 5
-
 
63
TCB_FIN_WAIT_2		equ 6
-
 
64
TCB_CLOSE_WAIT		equ 7
59
SOCKET_PASSIVE	equ 0
65
TCB_CLOSING		equ 8
-
 
66
TCB_LAST_ACK		equ 9
-
 
67
TCB_TIMED_WAIT		equ 10
-
 
68
TCB_CLOSED		equ 11
-
 
69
 
-
 
70
TH_FIN			equ 1 shl 0
-
 
71
TH_SYN			equ 1 shl 1
-
 
72
TH_RST			equ 1 shl 2
-
 
73
TH_PUSH 		equ 1 shl 3
-
 
74
TH_ACK			equ 1 shl 4
-
 
75
TH_URG			equ 1 shl 5
-
 
76
 
-
 
77
 
-
 
78
macro inc_INET reg {
-
 
79
 
-
 
80
	inc	byte [reg + 3]
-
 
81
	adc	byte [reg + 2], 0
-
 
82
	adc	byte [reg + 1], 0
-
 
83
	adc	byte [reg + 0], 0
-
 
84
 
-
 
85
}
-
 
86
 
-
 
87
 
-
 
88
macro add_INET reg {
-
 
89
 
-
 
90
	rol	ecx, 16
-
 
91
	adc	byte [reg + 3], ch
-
 
92
	adc	byte [reg + 2], cl
-
 
93
	rol	ecx, 16
-
 
94
	adc	byte [reg + 1], ch
-
 
95
	adc	byte [reg + 0], cl
-
 
96
 
Line 60... Line 97...
60
SOCKET_ACTIVE	equ 1
97
}
61
 
98
 
62
include "queue.inc"
99
include "queue.inc"
63
include "ARP.inc"
100
include "ARP.inc"
Line 88... Line 125...
88
	call	UDP_init
125
	call	UDP_init
89
	call	TCP_init
126
	call	TCP_init
90
	call	ICMP_init
127
	call	ICMP_init
91
	call	socket_init
128
	call	socket_init
Line 92... Line 129...
92
 
129
 
93
	mov	al, 0x0 		; set up 1s timer
130
	mov	al, 0		      ; set up 1s timer
94
	out	0x70, al
131
	out	0x70, al
95
	in	al, 0x71
132
	in	al, 0x71
Line 96... Line 133...
96
	mov	[last_1sTick], al
133
	mov	[last_1sTick], al
Line 114... Line 151...
114
stack_handler:
151
stack_handler:
Line 115... Line 152...
115
 
152
 
116
    cmp     [ETH_RUNNING], 0
153
    cmp     [ETH_RUNNING], 0
Line 117... Line 154...
117
    je	    .exit
154
    je	    .exit
118
 
155
 
119
    ; Test for 10ms tick
156
    ; Test for 1/100 s (10ms) tick
120
    mov     eax, [timer_ticks]
157
    mov     eax, [timer_ticks]
Line 121... Line 158...
121
    cmp     eax, [last_1hsTick]
158
    cmp     eax, [last_1hsTick]
Line 127... Line 164...
127
    call    ETH_send_queued
164
    call    ETH_send_queued
128
    call    TCP_send_queued
165
    call    TCP_send_queued
Line 129... Line 166...
129
 
166
 
Line 130... Line 167...
130
  .sec_tick:
167
  .sec_tick:
131
 
168
 
132
    ; Test for 1 second event
169
    ; Test for 1 second tick
133
    mov     al, 0x0   ;second
170
    mov     al, 0
134
    out     0x70, al
171
    out     0x70, al
135
    in	    al, 0x71
172
    in	    al, 0x71
Line 334... Line 371...
334
 
371
 
335
	cmp	ax , IP_PROTO_UDP
372
	cmp	ax , IP_PROTO_UDP
Line 336... Line 373...
336
	je	UDP_API
373
	je	UDP_API
337
 
374
 
Line 338... Line 375...
338
	cmp	ax , IP_PROTO_TCP
375
	cmp	ax , IP_PROTO_TCP
339
;        je      TCP_API
376
	je	TCP_API
Line 340... Line 377...
340
 
377