/kernel/trunk/kernel.asm |
---|
1,6 → 1,6 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;; |
;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. |
;; Copyright (C) KolibriOS team 2004-2016. All rights reserved. |
;; PROGRAMMING: |
;; Ivan Poddubny |
;; Marat Zakiyanov (Mario79) |
2177,7 → 2177,7 |
@@: |
mov eax, [TASK_BASE] |
mov [eax+TASKDATA.state], 3; terminate this program |
mov [eax+TASKDATA.state], TSTATE_ZOMBIE |
call wakeup_osloop |
.waitterm: ; wait here for termination |
3746,7 → 3746,7 |
align 4 |
markz: |
push ecx edx |
cmp [edx+TASKDATA.state], 9 |
cmp [edx+TASKDATA.state], TSTATE_FREE |
jz .nokill |
lea edx, [(edx-(CURRENT_TASK and 1FFFFFFFh))*8+SLOT_BASE] |
cmp [edx+APPDATA.process], sys_proc |
3760,7 → 3760,7 |
pop edx ecx |
test eax, eax |
jz @f |
mov [edx+TASKDATA.state], byte 3 |
mov [edx+TASKDATA.state], TSTATE_ZOMBIE |
@@: |
add edx, 0x20 |
loop markz |
/kernel/trunk/network/IPv4.inc |
---|
1,6 → 1,6 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;; ;; |
;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. ;; |
;; Copyright (C) KolibriOS team 2004-2016. All rights reserved. ;; |
;; Distributed under terms of the GNU General Public License ;; |
;; ;; |
;; IPv4.INC ;; |
634,6 → 634,8 |
push ecx ax edi |
mov eax, edi |
call ipv4_route ; outputs device number in edi, dest ip in eax, source IP in edx |
test eax, eax |
jz .no_route |
push edx |
test edi, edi |
jz .loopback |
683,6 → 685,12 |
xor eax, eax |
ret |
.no_route: |
DEBUGF DEBUG_NETWORK_ERROR, "IPv4_output: No route to host!\n" |
add esp, 2*4+2 |
xor eax, eax |
ret |
.arp_error: |
DEBUGF DEBUG_NETWORK_ERROR, "IPv4_output: ARP error=%x\n", eax |
add esp, 4 |
917,7 → 925,7 |
; ebx = outgoing device / 0 ; |
; edx = Source IP ; |
; ; |
; OUT: eax = Destination IP (or gateway IP) ; |
; OUT: eax = Destination IP (may be gateway), 0 on error ; |
; edx = Source IP ; |
; edi = device number*4 ; |
; ; |
926,7 → 934,7 |
; ; |
;-----------------------------------------------------------------; |
align 4 |
ipv4_route: ; TODO: return error if no valid route found |
ipv4_route: |
test ebx, ebx |
jnz .got_device |
979,6 → 987,7 |
ret |
.fail: |
xor eax, eax |
ret |