RTL8139 fixes from heavyiron and new system function from me: read data from stack

input:
eax = 53
ebx = 11
ecx = socket number
edx = pointer to where data must be written
esi = buffer size (max bytes of data to copy)
int  0x40  (offcourse)

returned: 
eax = number of bytes copied

if buffer size is zero, all data will be copied (this will be max 4096 bytes)

git-svn-id: svn://kolibrios.org@323 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr
2007-02-06 19:29:54 +00:00
parent 5121a68d46
commit a6c8d276c3
4 changed files with 179 additions and 104 deletions

View File

@@ -269,15 +269,13 @@ endp
checksum:
pusha
mov eax, [checkAdd1]
xor edx, edx ; edx is the accumulative checksum
xor ebx, ebx
mov cx, [checkSize1]
shr cx, 1
jz cs1_1
mov eax, [checkAdd1]
cs1:
mov bh, [eax]
mov bl, [eax + 1]
@@ -301,11 +299,11 @@ cs_test2:
cmp cx, 0
jz cs_exit ; Finished if no 2nd buffer
mov eax, [checkAdd2]
shr cx, 1
jz cs2_1
mov eax, [checkAdd2]
cs2:
mov bh, [eax]
mov bl, [eax + 1]
@@ -673,6 +671,13 @@ nots9:
nots10:
cmp eax, 11
jnz nots11
call socket_read_packet
ret
nots11:
cmp eax, 254
jnz notdump