Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5522 → Rev 5363

/drivers/ethernet/sis900.asm
414,6 → 414,7
; - Remove all allocated structures and buffers the card used
 
or eax, -1
 
ret
 
;***************************************************************************
611,13 → 612,12
mov dword [esi + 4], RX_BUFF_SZ ; size
 
push ecx esi
invoke NetAlloc, RX_BUFF_SZ+NET_BUFF.data
invoke KernelAlloc, RX_BUFF_SZ
pop esi ecx
test eax, eax
jz .fail
mov dword [esi + 12], eax ; address
invoke GetPhysAddr
add eax, NET_BUFF.data
mov dword [esi + 8], eax ; real address
add esi, 16
dec ecx
1006,22 → 1006,21
;***************************************************************************
align 4
 
proc transmit stdcall bufferptr
proc transmit stdcall bufferptr, buffersize
 
pushf
cli
 
mov esi, [bufferptr]
DEBUGF 1,"Transmitting packet, buffer:%x, size:%u\n", [bufferptr], [esi + NET_BUFF.length]
lea eax, [esi + NET_BUFF.data]
DEBUGF 1,"Transmitting packet, buffer:%x, size:%u\n", [bufferptr], [buffersize]
mov eax, [bufferptr]
DEBUGF 1,"To: %x-%x-%x-%x-%x-%x From: %x-%x-%x-%x-%x-%x Type:%x%x\n",\
[eax+00]:2,[eax+01]:2,[eax+02]:2,[eax+03]:2,[eax+04]:2,[eax+05]:2,\
[eax+06]:2,[eax+07]:2,[eax+08]:2,[eax+09]:2,[eax+10]:2,[eax+11]:2,\
[eax+13]:2,[eax+12]:2
 
cmp [esi + NET_BUFF.length], 1514
cmp [buffersize], 1514
ja .fail
cmp [esi + NET_BUFF.length], 60
cmp [buffersize], 60
jb .fail
 
movzx ecx, [ebx + device.cur_tx]
1031,13 → 1030,12
test dword[ecx + 4], 0x80000000 ; card owns descriptor ?
jnz .fail
 
mov eax, esi
mov eax, [bufferptr]
mov dword[ecx + 12], eax
add eax, [eax + NET_BUFF.offset]
invoke GetPhysAddr
mov dword[ecx + 8], eax ; buffer address
 
mov eax, [esi + NET_BUFF.length]
mov eax, [buffersize]
and eax, DSIZE
or eax, 0x80000000 ; card owns descriptor
mov dword[ecx + 4], eax ; status field
1052,7 → 1050,7
and [ebx + device.cur_tx], NUM_TX_DESC-1
 
; update stats
mov ecx, [esi + NET_BUFF.length]
mov ecx, [buffersize]
inc [ebx + device.packets_tx]
add dword [ebx + device.bytes_tx], ecx
adc dword [ebx + device.bytes_tx + 4], 0
1064,7 → 1062,7
 
.fail:
DEBUGF 2,"Transmit failed\n"
invoke NetFree, [bufferptr]
invoke KernelFree, [bufferptr]
popf
or eax, -1
ret
1153,19 → 1151,16
adc dword [ebx + device.bytes_rx + 4], 0
 
push ebx
push .return ; return addr
mov eax, [ebx + device.rxd + eax + 12]
push eax ; packet ptr
mov [eax + NET_BUFF.length], ecx
mov [eax + NET_BUFF.device], ebx
mov [eax + NET_BUFF.offset], NET_BUFF.data
push .return
push ecx ; packet size
pushd [ebx + device.rxd + eax + 12] ; packet ptr
DEBUGF 1, "Packet received OK\n"
jmp [EthInput]
jmp [Eth_input]
.return:
pop ebx
 
; Reset status, allow ethernet card access to descriptor
invoke NetAlloc, RX_BUFF_SZ + NET_BUFF.data
invoke KernelAlloc, RX_BUFF_SZ
test eax, eax
jz .fail
movzx ecx, [ebx + device.cur_rx]
1173,7 → 1168,6
lea ecx, [ebx + device.rxd + ecx]
mov dword [ecx + 12], eax
invoke GetPhysAddr
add eax, NET_BUFF.data
mov dword [ecx + 8], eax
mov dword [ecx + 4], RX_BUFF_SZ
 
1210,7 → 1204,7
DEBUGF 1, "Freeing packet = %x\n", [ecx + 12]:8
push dword[ecx + 12]
mov dword[ecx + 12], 0
invoke NetFree
invoke KernelFree
 
inc [ebx + device.last_tx]
and [ebx + device.last_tx], NUM_TX_DESC-1