/kernel/branches/net/network/stack.inc |
---|
32,7 → 32,7 |
ETHER equ 1337 |
ETHER_ARP equ 0x0608 |
;AF_UNSPEC equ 0 |
AF_UNSPEC equ 0 |
AF_UNIX equ 1 |
AF_INET4 equ 2 |
;AF_AX25 equ 3 |
55,10 → 55,47 |
SOCK_DGRAM = 2 |
SOCK_RAW = 3 |
; TCP opening modes |
SOCKET_PASSIVE equ 0 |
SOCKET_ACTIVE equ 1 |
TCB_LISTEN equ 1 |
TCB_SYN_SENT equ 2 |
TCB_SYN_RECEIVED equ 3 |
TCB_ESTABLISHED equ 4 |
TCB_FIN_WAIT_1 equ 5 |
TCB_FIN_WAIT_2 equ 6 |
TCB_CLOSE_WAIT equ 7 |
TCB_CLOSING equ 8 |
TCB_LAST_ACK equ 9 |
TCB_TIMED_WAIT equ 10 |
TCB_CLOSED equ 11 |
TH_FIN equ 1 shl 0 |
TH_SYN equ 1 shl 1 |
TH_RST equ 1 shl 2 |
TH_PUSH equ 1 shl 3 |
TH_ACK equ 1 shl 4 |
TH_URG equ 1 shl 5 |
macro inc_INET reg { |
inc byte [reg + 3] |
adc byte [reg + 2], 0 |
adc byte [reg + 1], 0 |
adc byte [reg + 0], 0 |
} |
macro add_INET reg { |
rol ecx, 16 |
adc byte [reg + 3], ch |
adc byte [reg + 2], cl |
rol ecx, 16 |
adc byte [reg + 1], ch |
adc byte [reg + 0], cl |
} |
include "queue.inc" |
include "ARP.inc" |
include "IPv4.inc" |
90,7 → 127,7 |
call ICMP_init |
call socket_init |
mov al, 0x0 ; set up 1s timer |
mov al, 0 ; set up 1s timer |
out 0x70, al |
in al, 0x71 |
mov [last_1sTick], al |
116,7 → 153,7 |
cmp [ETH_RUNNING], 0 |
je .exit |
; Test for 10ms tick |
; Test for 1/100 s (10ms) tick |
mov eax, [timer_ticks] |
cmp eax, [last_1hsTick] |
je .exit |
129,8 → 166,8 |
.sec_tick: |
; Test for 1 second event |
mov al, 0x0 ;second |
; Test for 1 second tick |
mov al, 0 |
out 0x70, al |
in al, 0x71 |
cmp al, [last_1sTick] |
336,7 → 373,7 |
je UDP_API |
cmp ax , IP_PROTO_TCP |
; je TCP_API |
je TCP_API |
cmp ax , ETHER_ARP |
je ARP_API |