diff --git a/kernel/branches/net/network/ARP.inc b/kernel/branches/net/network/ARP.inc index a18468b9e6..285693c9b9 100644 --- a/kernel/branches/net/network/ARP.inc +++ b/kernel/branches/net/network/ARP.inc @@ -122,7 +122,8 @@ local .exit .next: add esi, ARP_ENTRY.size - loop .loop + dec ecx + jnz .loop jmp .exit .time_out: @@ -161,7 +162,7 @@ ARP_input: DEBUGF 1,"ARP_Handler - start\n" cmp ecx, 28 - jl .exit + jb .exit ;--------------------- ; Handle Reply packets @@ -183,7 +184,8 @@ ARP_input: cmp [esi + ARP_ENTRY.IP], eax je .gotit add esi, ARP_ENTRY.size - loop .loop + dec ecx + jnz .loop jmp .exit @@ -349,7 +351,7 @@ ARP_add_entry: test ecx, ecx ; first entry? jz .add cmp ecx, ARP_TABLE_SIZE ; list full ? - jge .error + jae .error mov eax, dword[esi + ARP_ENTRY.MAC] mov bx , word[esi + ARP_ENTRY.MAC + 4] @@ -602,7 +604,7 @@ ARP_API: .read: cmp ecx, [NumARP] - jge .error + jae .error ; edi = pointer to buffer ; ecx = # entry imul ecx, ARP_ENTRY.size @@ -622,7 +624,7 @@ ARP_API: .remove: ; ecx = # entry cmp ecx, [NumARP] - jge .error + jae .error imul ecx, ARP_ENTRY.size lea esi, [ARP_table + ecx] call ARP_del_entry diff --git a/kernel/branches/net/network/IPv4.inc b/kernel/branches/net/network/IPv4.inc index 29a679b88c..1609209d93 100644 --- a/kernel/branches/net/network/IPv4.inc +++ b/kernel/branches/net/network/IPv4.inc @@ -597,7 +597,7 @@ IPv4_output: DEBUGF 1,"IPv4_create_packet: size=%u\n", ecx cmp ecx, 65500 ; Max IPv4 packet size - jg .too_large + ja .too_large push ecx eax ebx dx di @@ -673,7 +673,7 @@ IPv4_output_raw: DEBUGF 1,"IPv4_output_raw: size=%u ptr=%x socket=%x\n", ecx, esi, eax cmp ecx, 1480 ;;;;; - jg .too_large + ja .too_large sub esp, 8 push esi eax @@ -761,7 +761,7 @@ IPv4_fragment: and ecx, not 111b ; align 4 cmp ecx, IPv4_Packet.DataOrOptional + 8 ; must be able to put at least 8 bytes - jl .err2 + jb .err2 push esi ecx mov eax, [esi + IPv4_Packet.DestinationAddress] @@ -846,7 +846,7 @@ IPv4_fragment: DEBUGF 1,"Ipv4_fragment - bytes remaining: %u\n", ecx cmp ecx, [esp+1*4] - jge .new_fragment + jae .new_fragment mov [esp+4], ecx ; set fragment size to remaining packet size jmp .new_fragment diff --git a/kernel/branches/net/network/ethernet.inc b/kernel/branches/net/network/ethernet.inc index 19307ebb39..ce5481f393 100644 --- a/kernel/branches/net/network/ethernet.inc +++ b/kernel/branches/net/network/ethernet.inc @@ -64,7 +64,7 @@ ETH_input: DEBUGF 1,"ETH_input - size: %u\n", ecx cmp ecx, 60 ; check packet length - jl .dump + jb .dump sub ecx, ETH_FRAME.Data lea edx, [eax + ETH_FRAME.Data] @@ -110,7 +110,7 @@ ETH_output: DEBUGF 1,"ETH_output: size=%u device:%x\n", ecx, ebx cmp ecx, [ebx + NET_DEVICE.mtu] - jg .exit + ja .exit push ecx ; << 1 push di eax edx ; << 2 @@ -140,8 +140,8 @@ ETH_output: pop ecx ; >> 1 - cmp edx, 60-1 ; minimum ethernet packet size - jle .adjust_size + cmp edx, 60 ; minimum ethernet packet size + jb .adjust_size DEBUGF 1,"ETH_output: done: %x total size: %u\n", eax, edx ret @@ -181,7 +181,7 @@ align 4 ETH_API: cmp bh, MAX_NET_DEVICES - jg .error + ja .error movzx eax, bh shl eax, 2 diff --git a/kernel/branches/net/network/queue.inc b/kernel/branches/net/network/queue.inc index acde331b8b..acb1be3994 100644 --- a/kernel/branches/net/network/queue.inc +++ b/kernel/branches/net/network/queue.inc @@ -44,7 +44,7 @@ ends macro add_to_queue ptr, size, entry_size, failaddr { cmp [ptr + queue.size], size ; Check if queue isnt full - jge failaddr + jae failaddr inc [ptr + queue.size] ; if not full, queue one more @@ -54,7 +54,7 @@ macro add_to_queue ptr, size, entry_size, failaddr { lea ecx, [size*entry_size+ptr+queue.data] cmp edi, ecx ; entry size - jl .no_wrap + jb .no_wrap sub edi, size*entry_size @@ -79,7 +79,7 @@ macro get_from_queue ptr, size, entry_size, failaddr { lea ecx, [size*entry_size+ptr+queue.data] cmp esi, ecx ; entry size - jl .no_wrap + jb .no_wrap sub esi, size*entry_size diff --git a/kernel/branches/net/network/socket.inc b/kernel/branches/net/network/socket.inc index a9d617c204..29e99431a4 100644 --- a/kernel/branches/net/network/socket.inc +++ b/kernel/branches/net/network/socket.inc @@ -216,17 +216,17 @@ macro SOCKET_init { @@: pseudo_random eax cmp ax, MIN_EPHEMERAL_PORT - jl @r + jb @r cmp ax, MAX_EPHEMERAL_PORT - jg @r + ja @r mov [last_UDP_port], ax @@: pseudo_random eax cmp ax, MIN_EPHEMERAL_PORT - jl @r + jb @r cmp ax, MAX_EPHEMERAL_PORT - jg @r + ja @r mov [last_TCP_port], ax } @@ -240,7 +240,7 @@ macro SOCKET_init { align 4 sys_socket: cmp ebx, 9 ; highest possible number - jg @f + ja @f jmp dword [sock_sysfn_table + 4*ebx] @@: cmp ebx, 255 @@ -372,7 +372,7 @@ SOCKET_bind: jz s_error cmp esi, 2 - jl s_error + jb s_error cmp word [edx], AF_INET4 je .af_inet4 @@ -393,7 +393,7 @@ SOCKET_bind: DEBUGF 1,"af_inet4\n" cmp esi, 6 - jl s_error + jb s_error push word [edx + 2] pop word [eax + UDP_SOCKET.LocalPort] @@ -430,7 +430,7 @@ SOCKET_connect: jz s_error cmp esi, 8 - jl s_error + jb s_error cmp word [edx], AF_INET4 je .af_inet4 @@ -577,7 +577,7 @@ SOCKET_listen: @@: cmp edx, MAX_backlog - jle @f + jbe @f mov edx, MAX_backlog @@: @@ -665,7 +665,7 @@ SOCKET_close: .tcp: cmp [eax + TCP_SOCKET.t_state], TCPS_SYN_RECEIVED ; state must be LISTEN, SYN_SENT or CLOSED - jl .free + jb .free call TCP_output mov dword [esp+32], 0 @@ -715,7 +715,7 @@ SOCKET_receive_dgram: DEBUGF 1,"Got %u bytes of data\n", ecx cmp ecx, ebx - jg .too_small + ja .too_small push [esi + socket_queue_entry.buf_ptr] ; save the buffer addr so we can clear it later mov esi, [esi + socket_queue_entry.data_ptr] @@ -1119,7 +1119,7 @@ SOCKET_ring_write: add [eax + RING_BUFFER.size], ecx cmp [eax + RING_BUFFER.size], SOCKET_MAXDATA - jg .too_large + ja .too_large .copy: mov edi, [eax + RING_BUFFER.write_ptr] @@ -1141,7 +1141,7 @@ SOCKET_ring_write: pop ecx cmp edi, [eax + RING_BUFFER.end_ptr] - jge .wrap + jae .wrap mov [eax + RING_BUFFER.write_ptr], edi ret @@ -1155,7 +1155,7 @@ SOCKET_ring_write: .too_large: mov ecx, SOCKET_MAXDATA ; calculate number of bytes available in buffer sub ecx, [eax + RING_BUFFER.size] - jge .full + jae .full mov [eax + RING_BUFFER.size], SOCKET_MAXDATA ; update size, we will fill buffer completely jmp .copy @@ -1185,7 +1185,7 @@ SOCKET_ring_read: DEBUGF 1,"SOCKET_ring_read: ringbuff=%x ptr=%x size=%u\n", eax, edi, ecx cmp ecx, [eax + RING_BUFFER.size] - jg .less_data + ja .less_data .copy: mov esi, [eax + RING_BUFFER.read_ptr] @@ -1234,12 +1234,12 @@ SOCKET_ring_free: DEBUGF 1,"SOCKET_ring_free: %u bytes from ring %x\n", ecx, eax sub [eax + RING_BUFFER.size], ecx - jl .sumthinwong + jb .sumthinwong add [eax + RING_BUFFER.read_ptr], ecx mov edx, [eax + RING_BUFFER.end_ptr] cmp [eax + RING_BUFFER.read_ptr], edx - jl @f + jb @f sub [eax + RING_BUFFER.read_ptr], SOCKET_MAXDATA @@: ret @@ -1468,7 +1468,7 @@ SOCKET_fork: ; Exit if backlog queue is full mov eax, [ebx + SOCKET_QUEUE_LOCATION + queue.size] cmp ax, [ebx + SOCKET.backlog] - jge .fail + jae .fail ; Allocate new socket call SOCKET_alloc diff --git a/kernel/branches/net/network/stack.inc b/kernel/branches/net/network/stack.inc index 22848e85f8..69efc9578d 100644 --- a/kernel/branches/net/network/stack.inc +++ b/kernel/branches/net/network/stack.inc @@ -274,7 +274,7 @@ NET_add_device: mov eax, [NET_RUNNING] cmp eax, MAX_NET_DEVICES - jge .error + jae .error ;---------------------------------- ; Check if device is already listed @@ -339,7 +339,7 @@ NET_set_default: DEBUGF 1,"NET_set_default %x\n", eax cmp eax, MAX_NET_DEVICES - jge .error + jae .error cmp [NET_DRV_LIST+eax*4], 0 je .error @@ -583,7 +583,7 @@ sys_network: @@: cmp bh, MAX_NET_DEVICES ; Check if device number exists - jge .doesnt_exist + jae .doesnt_exist mov esi, ebx and esi, 0x0000ff00 @@ -679,7 +679,7 @@ sys_network: align 4 sys_protocols: cmp bh, MAX_NET_DEVICES ; Check if device number exists - jge .doesnt_exist + jae .doesnt_exist mov esi, ebx and esi, 0x0000ff00 diff --git a/kernel/branches/net/network/tcp_input.inc b/kernel/branches/net/network/tcp_input.inc index 88eb79e277..9bc89886e4 100644 --- a/kernel/branches/net/network/tcp_input.inc +++ b/kernel/branches/net/network/tcp_input.inc @@ -46,7 +46,7 @@ TCP_input: DEBUGF 1,"headersize=%u\n", eax cmp eax, 20 - jl .drop_not_locked + jb .drop_not_locked ;------------------------------- ; Now, re-calculate the checksum @@ -66,14 +66,14 @@ TCP_input: DEBUGF 1,"Checksum is correct\n" sub ecx, esi ; update packet size - jl .drop_not_locked + jb .drop_not_locked DEBUGF 1,"we got %u bytes of data\n", ecx ;----------------------------------------------------------------------------------------- ; Check if this packet has a timestamp option (We do it here so we can process it quickly) cmp esi, 20 + 12 ; Timestamp option is 12 bytes - jl .no_timestamp + jb .no_timestamp je .is_ok cmp byte [edx + TCP_segment.Data + 12], TCP_OPT_EOL ; end of option list @@ -226,7 +226,7 @@ TCP_input: .opt_loop: cmp edi, eax - jge .no_options + jae .no_options cmp byte [edi], TCP_OPT_EOL ; end of option list? jz .no_options @@ -349,16 +349,16 @@ TCP_input: ; This test is true only if the window is fully open, that is, the connection is not in the middle of slow start or congestion avoidance. mov eax, [ebx + TCP_SOCKET.SND_CWND] cmp eax, [ebx + TCP_SOCKET.SND_WND] - jl .not_uni_xfer + jb .not_uni_xfer ; - The acknowledgment field in the segment is less than or equal to the maximum sequence number sent. mov eax, [edx + TCP_segment.AckNumber] cmp eax, [ebx + TCP_SOCKET.SND_MAX] - jg .not_uni_xfer + ja .not_uni_xfer ; - The acknowledgment field in the segment is greater than the largest unacknowledged sequence number. sub eax, [ebx + TCP_SOCKET.SND_UNA] - jle .not_uni_xfer + jbe .not_uni_xfer DEBUGF 1,"Header prediction: we are sender\n" @@ -527,10 +527,10 @@ align 4 mov eax, [edx + TCP_segment.AckNumber] cmp eax, [ebx + TCP_SOCKET.ISS] - jle .drop_with_reset + jbe .drop_with_reset cmp eax, [ebx + TCP_SOCKET.SND_MAX] - jg .drop_with_reset + ja .drop_with_reset @@: test [edx + TCP_segment.Flags], TH_RST @@ -559,7 +559,7 @@ align 4 mov eax, [edx + TCP_segment.AckNumber] mov [ebx + TCP_SOCKET.SND_UNA], eax cmp eax, [ebx + TCP_SOCKET.SND_NXT] - jle @f + jbe @f mov [ebx + TCP_SOCKET.SND_NXT], eax @@: @@ -576,7 +576,7 @@ align 4 mov eax, [ebx + TCP_SOCKET.SND_UNA] cmp eax, [ebx + TCP_SOCKET.ISS] - jle .simultaneous_open + jbe .simultaneous_open test [edx + TCP_segment.Flags], TH_ACK jz .simultaneous_open @@ -660,7 +660,7 @@ align 4 mov eax, [ebx + TCP_SOCKET.RCV_NXT] sub eax, [edx + TCP_segment.SequenceNumber] - jle .no_duplicate + jbe .no_duplicate DEBUGF 1,"Uh oh.. %u bytes of duplicate data!\n", eax @@ -673,7 +673,7 @@ align 4 inc [edx + TCP_segment.SequenceNumber] cmp [edx + TCP_segment.UrgentPointer], 1 - jle @f + jbe @f dec [edx + TCP_segment.UrgentPointer] jmp .dup_syn @@: @@ -687,7 +687,7 @@ align 4 ; Check for entire duplicate packet cmp eax, ecx - jge .duplicate + jae .duplicate DEBUGF 1,"Going to drop %u out of %u bytes\n", eax, ecx @@ -743,7 +743,7 @@ align 4 ;;; TODO sub [edx + TCP_segment.UrgentPointer], ax - jg @f + ja @f and [edx + TCP_segment.Flags], not (TH_URG) mov [edx + TCP_segment.UrgentPointer], 0 @@ -753,10 +753,10 @@ align 4 ; Handle data that arrives after process terminates cmp [ebx + SOCKET.PID], 0 - jg @f + ja @f cmp [ebx + TCP_SOCKET.t_state], TCPS_CLOSE_WAIT - jle @f + jbe @f test ecx, ecx jz @f @@ -777,12 +777,12 @@ align 4 ; eax now holds the number of bytes to drop - jle .no_excess_data + jbe .no_excess_data ;;; TODO: update stats cmp eax, ecx - jl .dont_drop_all + jb .dont_drop_all ;;; TODO 700-736 @@ -898,9 +898,9 @@ align 4 mov eax, [edx + TCP_segment.AckNumber] cmp [ebx + TCP_SOCKET.SND_UNA], eax - jg .drop_with_reset + ja .drop_with_reset cmp eax, [ebx + TCP_SOCKET.SND_MAX] - jg .drop_with_reset + ja .drop_with_reset ;;; update stats mov eax, ebx @@ -931,7 +931,7 @@ align 4 mov eax, [edx + TCP_segment.AckNumber] cmp eax, [ebx + TCP_SOCKET.SND_UNA] - jg .not_dup_ack + ja .not_dup_ack test ecx, ecx jnz .reset_dupacks @@ -943,7 +943,7 @@ align 4 DEBUGF 1,"Processing a duplicate ACK..\n" cmp [ebx + TCP_SOCKET.timer_retransmission], 10000 ;;;; - jg @f + ja @f mov eax, [edx + TCP_segment.AckNumber] cmp eax, [ebx + TCP_SOCKET.SND_UNA] @@ -968,7 +968,7 @@ align 4 xor edx, edx div [ebx + TCP_SOCKET.t_maxseg] cmp eax, 2 - jge @f + jae @f mov ax, 2 @@: mul [ebx + TCP_SOCKET.t_maxseg] @@ -995,7 +995,7 @@ align 4 pop eax ; <<<< cmp eax, [ebx + TCP_SOCKET.SND_NXT] - jl @f + jb @f mov [ebx + TCP_SOCKET.SND_NXT], eax @@: @@ -1003,7 +1003,7 @@ align 4 .no_re_xmit: - jle .not_dup_ack + jbe .not_dup_ack DEBUGF 1,"Increasing congestion window\n" @@ -1028,9 +1028,9 @@ align 4 mov eax, [ebx + TCP_SOCKET.SND_SSTHRESH] cmp eax, [ebx + TCP_SOCKET.SND_CWND] - jg @f + ja @f cmp [ebx + TCP_SOCKET.t_dupacks], TCP_re_xmit_thresh - jle @f + jbe @f mov [ebx + TCP_SOCKET.SND_CWND], eax @@: @@ -1038,7 +1038,7 @@ align 4 mov eax, [edx + TCP_segment.AckNumber] cmp eax, [ebx + TCP_SOCKET.SND_MAX] - jle @f + jbe @f ;;; TODO: update stats jmp .drop_after_ack @@ -1084,7 +1084,7 @@ align 4 mov eax, [ebx + TCP_SOCKET.t_maxseg] cmp esi, [ebx + TCP_SOCKET.SND_SSTHRESH] - jle @f + jbe @f push edx push eax mul eax @@ -1135,7 +1135,7 @@ align 4 mov [ebx + TCP_SOCKET.SND_UNA], eax cmp eax, [ebx + TCP_SOCKET.SND_NXT] - jl @f + jb @f mov [ebx + TCP_SOCKET.SND_NXT], eax @@: @@ -1226,13 +1226,13 @@ align 4 mov eax, [ebx + TCP_SOCKET.SND_WL1] cmp eax, [edx + TCP_segment.SequenceNumber] - jl .update_window - jg @f + jb .update_window + ja @f mov eax, [ebx + TCP_SOCKET.SND_WL2] cmp eax, [edx + TCP_segment.AckNumber] - jl .update_window - jg .no_window_update + jb .update_window + ja .no_window_update @@: mov eax, [ebx + TCP_SOCKET.SND_WL2] @@ -1241,7 +1241,7 @@ align 4 movzx eax, [edx + TCP_segment.Window] cmp eax, [ebx + TCP_SOCKET.SND_WND] - jle .no_window_update + jbe .no_window_update .update_window: @@ -1258,7 +1258,7 @@ align 4 ; ; ;; mov eax, tiwin ; cmp eax, [ebx + TCP_SOCKET.SND_WND] -; jle @f +; jbe @f ; ; ;;; update stats ; @@ -1266,7 +1266,7 @@ align 4 mov eax, dword [edx + TCP_segment.Window] cmp eax, [ebx + TCP_SOCKET.max_sndwnd] - jle @f + jbe @f mov [ebx + TCP_SOCKET.max_sndwnd], eax @@: mov [ebx + TCP_SOCKET.SND_WND], eax @@ -1306,7 +1306,7 @@ align 4 movzx eax, [edx + TCP_segment.UrgentPointer] add eax, [ebx + STREAM_SOCKET.rcv + RING_BUFFER.size] cmp eax, SOCKET_MAXDATA - jle .not_urgent + jbe .not_urgent mov [edx + TCP_segment.UrgentPointer], 0 and [edx + TCP_segment.Flags], not (TH_URG) @@ -1336,7 +1336,7 @@ align 4 jnz .process_fin cmp [ebx + TCP_SOCKET.t_state], TCPS_FIN_WAIT_1 - jge .dont_do_data + jae .dont_do_data test ecx, ecx jz .final_processing diff --git a/kernel/branches/net/network/tcp_output.inc b/kernel/branches/net/network/tcp_output.inc index b8124d1994..318c989d81 100644 --- a/kernel/branches/net/network/tcp_output.inc +++ b/kernel/branches/net/network/tcp_output.inc @@ -41,7 +41,7 @@ TCP_output: mov ebx, [eax + TCP_SOCKET.t_idle] cmp ebx, [eax + TCP_SOCKET.t_rxtcur] - jle .not_idle + jbe .not_idle ; We have been idle for a while and no ACKS are expected to clock out any data we send.. ; Slow start to get ack "clock" running again. @@ -56,7 +56,7 @@ TCP_output: mov ecx, [eax + TCP_SOCKET.SND_WND] ; determine window cmp ecx, [eax + TCP_SOCKET.SND_CWND] ; - jl @f ; + jb @f ; mov ecx, [eax + TCP_SOCKET.SND_CWND] ; @@: ; @@ -76,7 +76,7 @@ TCP_output: jnz .no_zero_window cmp ebx, [eax + STREAM_SOCKET.snd + RING_BUFFER.size] - jge @f + jae @f and dl, not (TH_FIN) ; clear the FIN flag ??? how can it be set before? @@ -95,7 +95,7 @@ TCP_output: mov esi, [eax + STREAM_SOCKET.snd + RING_BUFFER.size] cmp esi, ecx - jl @f + jb @f mov esi, ecx @@: sub esi, ebx @@ -132,7 +132,7 @@ TCP_output: ; Send one segment at a time (124) cmp esi, [eax + TCP_SOCKET.t_maxseg] - jle @f + jbe @f mov esi, [eax + TCP_SOCKET.t_maxseg] @@ -176,11 +176,11 @@ TCP_output: mov ebx, [eax + TCP_SOCKET.max_sndwnd] shr ebx, 1 cmp esi, ebx - jge .send + jae .send mov ebx, [eax + TCP_SOCKET.SND_NXT] cmp ebx, [eax + TCP_SOCKET.SND_MAX] - jl .send + jb .send .len_zero: @@ -205,7 +205,7 @@ TCP_output: mov ebx, [eax + TCP_SOCKET.SND_UP] ; when urgent pointer is beyond start of send bufer cmp ebx, [eax + TCP_SOCKET.SND_UNA] - jg .send + ja .send test dl, TH_FIN jz .enter_persist ; no reason to send, enter persist state @@ -347,7 +347,7 @@ TCP_output: add esi, edi ; total TCP segment size cmp esi, [eax + TCP_SOCKET.t_maxseg] - jle .no_overflow + jbe .no_overflow mov esi, [eax + TCP_SOCKET.t_maxseg] @@ -445,7 +445,7 @@ TCP_output: mov edx, [eax + TCP_SOCKET.SND_NXT] cmp edx, [eax + TCP_SOCKET.SND_MAX] - jle @f + jbe @f mov [eax + TCP_SOCKET.SND_MAX], edx ;;;; TODO: time transmission (420) @@ -455,7 +455,7 @@ TCP_output: ; set retransmission timer if not already set, and not doing an ACK or keepalive probe cmp [eax + TCP_SOCKET.timer_retransmission], 1000 ;;;; - jl .retransmit_set + jb .retransmit_set cmp edx, [eax + TCP_SOCKET.SND_UNA] ; edx = [eax + TCP_SOCKET.SND_NXT] je .retransmit_set diff --git a/kernel/branches/net/network/tcp_subr.inc b/kernel/branches/net/network/tcp_subr.inc index 9ac0f345bc..e3ac88740e 100644 --- a/kernel/branches/net/network/tcp_subr.inc +++ b/kernel/branches/net/network/tcp_subr.inc @@ -131,7 +131,7 @@ TCP_drop: DEBUGF 1,"TCP_drop\n" cmp [eax + TCP_SOCKET.t_state], TCPS_SYN_RECEIVED - jl .no_syn_received + jb .no_syn_received mov [eax + TCP_SOCKET.t_state], TCPS_CLOSED