Rev 1171 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1171 | Rev 1174 | ||
---|---|---|---|
Line 72... | Line 72... | ||
72 | xor eax, eax |
72 | xor eax, eax |
73 | mov edi, ETH_RUNNING |
73 | mov edi, ETH_RUNNING |
74 | mov ecx, (1+MAX_ETH_DEVICES) |
74 | mov ecx, (1+MAX_ETH_DEVICES) |
75 | rep stosd |
75 | rep stosd |
Line 76... | Line 76... | ||
76 | 76 | ||
77 | mov dword [ETH_IN_QUEUE], eax |
77 | mov dword [ETH_IN_QUEUE], ETH_QUEUE_SIZE |
78 | mov dword [ETH_IN_QUEUE+4], ETH_IN_QUEUE + queue.data |
78 | mov dword [ETH_IN_QUEUE+4], ETH_IN_QUEUE + queue.data |
Line 79... | Line 79... | ||
79 | mov dword [ETH_IN_QUEUE+8], ETH_IN_QUEUE + queue.data |
79 | mov dword [ETH_IN_QUEUE+8], ETH_IN_QUEUE + queue.data |
80 | 80 | ||
81 | mov dword [ETH_OUT_QUEUE], eax |
81 | mov dword [ETH_OUT_QUEUE], ETH_QUEUE_SIZE |
Line 82... | Line 82... | ||
82 | mov dword [ETH_OUT_QUEUE+4], ETH_OUT_QUEUE + queue.data |
82 | mov dword [ETH_OUT_QUEUE+4], ETH_OUT_QUEUE + queue.data |
Line 83... | Line -... | ||
83 | mov dword [ETH_OUT_QUEUE+8], ETH_OUT_QUEUE + queue.data |
- | |
84 | 83 | mov dword [ETH_OUT_QUEUE+8], ETH_OUT_QUEUE + queue.data |
|
85 | ret |
84 | |
86 | 85 | ret |
|
87 | 86 | ||
88 | 87 | ||
Line 100... | Line 99... | ||
100 | 99 | ||
101 | align 4 |
100 | align 4 |
Line 102... | Line 101... | ||
102 | ETH_Add_Device: |
101 | ETH_Add_Device: |
- | 102 | ||
- | 103 | DEBUGF 1,"ETH_Add_Device: %x\n", ebx |
|
103 | 104 | ||
104 | DEBUGF 1,"ETH_Add_Device: %x\n", ebx |
105 | mov eax, [ETH_RUNNING] |
Line -... | Line 106... | ||
- | 106 | cmp eax, MAX_ETH_DEVICES |
|
- | 107 | jge .error |
|
- | 108 | ||
- | 109 | test eax, eax |
|
- | 110 | jnz .notfirst |
|
- | 111 | mov dword [ETH_IN_QUEUE], eax |
|
105 | cmp [ETH_RUNNING], MAX_ETH_DEVICES |
112 | mov dword [ETH_OUT_QUEUE], eax |
106 | jge .error |
113 | .notfirst: |
107 | 114 | ||
Line 108... | Line 115... | ||
108 | mov eax, ebx |
115 | mov eax, ebx |
Line 140... | Line 147... | ||
140 | ; stosd ; Write MAC address to the MAC list |
147 | ; stosd ; Write MAC address to the MAC list |
141 | ; mov ax, bx ; |
148 | ; mov ax, bx ; |
142 | ; stosw ; |
149 | ; stosw ; |
Line 143... | Line 150... | ||
143 | 150 | ||
- | 151 | inc [ETH_RUNNING] ; Indicate that one more ethernet device is up and running |
|
144 | inc [ETH_RUNNING] ; Indicate that one more ethernet device is up and running |
152 | |
145 | ; pop eax ; Output device num in eax |
153 | ; pop eax ; Output device num in eax |
146 | DEBUGF 1,"- succes: %u\n",eax |
154 | DEBUGF 1,"- succes: %u\n",eax |
Line 147... | Line 155... | ||
147 | ret |
155 | ret |
Line 182... | Line 190... | ||
182 | 190 | ||
183 | xor eax, eax |
191 | xor eax, eax |
Line 184... | Line 192... | ||
184 | mov dword [edi-4], eax |
192 | mov dword [edi-4], eax |
- | 193 | ||
- | 194 | dec [ETH_RUNNING] |
|
- | 195 | jnz .notlast |
|
- | 196 | ||
- | 197 | mov dword [ETH_IN_QUEUE], ETH_QUEUE_SIZE |
|
- | 198 | mov dword [ETH_OUT_QUEUE], ETH_QUEUE_SIZE |
|
Line 185... | Line 199... | ||
185 | 199 | ||
Line 186... | Line 200... | ||
186 | dec [ETH_RUNNING] |
200 | .notlast: |
187 | 201 | ||
Line 468... | Line 482... | ||
468 | 482 | ||
469 | .bytes_tx: |
483 | .bytes_tx: |
470 | add eax, ETH_DRV_LIST |
484 | add eax, ETH_DRV_LIST |
471 | mov eax, dword [eax] |
485 | mov eax, dword [eax] |
- | 486 | mov eax, dword [eax + ETH_DEVICE.bytes_tx + 4] |
|
- | 487 | mov eax, dword [eax + ETH_DEVICE.bytes_tx] |
|
472 | mov eax, dword [eax + ETH_DEVICE.bytes_tx + 4] |
488 | mov [esp+20+4], ebx ; TODO: fix this ugly code |
Line 473... | Line 489... | ||
473 | ret |
489 | ret |
474 | 490 | ||
475 | .bytes_rx: |
491 | .bytes_rx: |
476 | add eax, ETH_DRV_LIST |
492 | add eax, ETH_DRV_LIST |
- | 493 | mov eax, dword [eax] |
|
- | 494 | mov ebx, dword [eax + ETH_DEVICE.bytes_rx + 4] |
|
477 | mov eax, dword [eax] |
495 | mov eax, dword [eax + ETH_DEVICE.bytes_rx] |
Line -... | Line 496... | ||
- | 496 | mov [esp+20+4], ebx ; TODO: fix this ugly code |
|
478 | mov eax, dword [eax + ETH_DEVICE.bytes_rx + 4] |
497 | ret |
479 | ret |
498 | |
480 | 499 | ||
481 | .read_mac: |
500 | .read_mac: |
482 | add eax, ETH_DRV_LIST |
501 | add eax, ETH_DRV_LIST |