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 |