forked from KolibriOS/kolibrios
Improved documentation for sysfn 76
git-svn-id: svn://kolibrios.org@6634 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
aa05e6c7e9
commit
1c171f35ce
@ -4667,46 +4667,299 @@ Parameters:
|
|||||||
* bh = device number
|
* bh = device number
|
||||||
* bl = subfunction number
|
* bl = subfunction number
|
||||||
|
|
||||||
Protocols and subfunctions:
|
======================================================================
|
||||||
Unless otherwise specified, output is in eax, additional input in ecx
|
==== Function 76, Protocol 0 - Ethernet, Subfunction 0, Read MAC. ====
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 0 (Ethernet)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 0 (Read MAC)
|
||||||
|
Returned value:
|
||||||
|
* eax = -1 on error, otherwise lower bits of MAC
|
||||||
|
* bx = upper bits of MAC
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 1 - IPv4, Subfunction 0, Read # Packets sent =
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 1 (IPv4)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 0 (Read # packets sent)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets sent (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 1 - IPv4, Subfunction 1, Read # Packets rcvd =
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 1 (IPv4)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 1 (Read # packets received)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets received (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
=== Function 76, Protocol 1 - IPv4, Subfunction 2, Read IP address ===
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 1 (IPv4)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 2 (Read IP address)
|
||||||
|
Returned value:
|
||||||
|
* eax = IP address (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
=== Function 76, Protocol 1 - IPv4, Subfunction 3, Set IP address ====
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 1 (IPv4)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 3 (Set IP address)
|
||||||
|
* ecx = IP address
|
||||||
|
Returned value:
|
||||||
|
* eax = -1 on error
|
||||||
|
|
||||||
0 - Ethernet:
|
======================================================================
|
||||||
0 - Read MAC:
|
== Function 76, Protocol 1 - IPv4, Subfunction 4, Read DNS address ===
|
||||||
returns lower part of mac in EAX, upper part in BX
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 1 (IPv4)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 4 (Read DNS server IP address)
|
||||||
|
Returned value:
|
||||||
|
* eax = DNS server IP address (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
=== Function 76, Protocol 1 - IPv4, Subfunction 5, Set DNS address ===
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 1 (IPv4)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 5 (Set DNS address)
|
||||||
|
* ecx = DNS server IP address
|
||||||
|
Returned value:
|
||||||
|
* eax = -1 on error
|
||||||
|
|
||||||
1 - IPv4:
|
======================================================================
|
||||||
0 - Read # packets sent
|
== Function 76, Protocol 1 - IPv4, Subfunction 6, Read subnet mask ===
|
||||||
1 - Read # packets received
|
======================================================================
|
||||||
2 - Read IP
|
Parameters:
|
||||||
3 - Write IP
|
* eax = 76 - function number
|
||||||
4 - Read DNS
|
* high half of ebx = 1 (IPv4)
|
||||||
5 - Write DNS
|
* bh = device number
|
||||||
6 - Read subnet
|
* bl = 6 (Read subnet mask)
|
||||||
7 - Write subnet
|
Returned value:
|
||||||
8 - Read gateway
|
* eax = subnet mask (-1 on error)
|
||||||
9 - Write gateway
|
|
||||||
|
======================================================================
|
||||||
|
=== Function 76, Protocol 1 - IPv4, Subfunction 7, Set subnet mask ===
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 1 (IPv4)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 7 (Set DNS address)
|
||||||
|
* ecx = subnet mask
|
||||||
|
Returned value:
|
||||||
|
* eax = -1 on error
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
===== Function 76, Protocol 1 - IPv4, Subfunction 8, Read gateway ====
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 1 (IPv4)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 8 (Read gateway IP address)
|
||||||
|
Returned value:
|
||||||
|
* eax = gateway IP address (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
===== Function 76, Protocol 1 - IPv4, Subfunction 9, Set gateway =====
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 1 (IPv4)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 9 (Set getway address)
|
||||||
|
* ecx = gateway IP address
|
||||||
|
Returned value:
|
||||||
|
* eax = -1 on error
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 2 - ICMP, Subfunction 0, Read # Packets sent =
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 2 (ICMP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 0 (Read # packets sent)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets sent (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 2 - ICMP, Subfunction 1, Read # Packets rcvd =
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 2 (ICMP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 1 (Read # packets received)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets received (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 3 - UDP, Subfunction 0, Read # Packets sent ==
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 3 (UDP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 0 (Read # packets sent)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets sent (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 3 - UDP, Subfunction 1, Read # Packets rcvd ==
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 3 (UDP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 1 (Read # packets received)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets received (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 4 - TCP, Subfunction 0, Read # Packets sent ==
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 4 (TCP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 0 (Read # packets sent)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets sent (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 4 - TCP, Subfunction 1, Read # Packets rcvd ==
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 4 (TCP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 1 (Read # packets received)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets received (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 5 - ARP, Subfunction 0, Read # Packets sent ==
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 5 (ARP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 0 (Read # packets sent)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets sent (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
= Function 76, Protocol 5 - ARP, Subfunction 1, Read # Packets rcvd ==
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 5 (ARP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 1 (Read # packets received)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of packets received (-1 on error)
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
== Function 76, Protocol 5 - ARP, Subfunction 2, Read # ARP entries ==
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 5 (ARP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 2 (Read # current entries in the ARP table)
|
||||||
|
Returned value:
|
||||||
|
* eax = number of entries (-1 on error)
|
||||||
|
|
||||||
2 - ICMP:
|
======================================================================
|
||||||
0 - Read # packets sent
|
==== Function 76, Protocol 5 - ARP, Subfunction 3, Read ARP entry ====
|
||||||
1 - Read # packets received
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 5 (ARP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 3 (Read ARP entry)
|
||||||
|
* ecx = ARP entry number (0 based)
|
||||||
|
* edi = ptr to buffer where ARP entry will be written
|
||||||
|
Returned value:
|
||||||
|
* eax = -1 on error
|
||||||
|
Remarks:
|
||||||
|
ARP_entry struct is defined in ARP.inc in kernel and currently looks like this:
|
||||||
|
struct ARP_entry
|
||||||
|
IP dd ?
|
||||||
|
MAC dp ?
|
||||||
|
Status dw ?
|
||||||
|
TTL dw ?
|
||||||
|
ends
|
||||||
|
|
||||||
3 - UDP:
|
======================================================================
|
||||||
0 - Read # packets sent
|
==== Function 76, Protocol 5 - ARP, Subfunction 4, Add ARP entry ====
|
||||||
1 - Read # packets received
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 5 (ARP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 4 (Add ARP entry)
|
||||||
|
* esi = ptr to buffer holding ARP entry
|
||||||
|
Returned value:
|
||||||
|
* eax = -1 on error
|
||||||
|
Remarks:
|
||||||
|
See previous function for details on ARP entry.
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
=== Function 76, Protocol 5 - ARP, Subfunction 5, Remove ARP entry ====
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 5 (ARP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 3 (Read ARP entry)
|
||||||
|
* ecx = ARP entry number (0 based), use -1 to clear whole ARP table.
|
||||||
|
Returned value:
|
||||||
|
* eax = -1 on error
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
=== Function 76, Protocol 5 - ARP, Subfunction 6, Send ARP announce ==
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 76 - function number
|
||||||
|
* high half of ebx = 5 (ARP)
|
||||||
|
* bh = device number
|
||||||
|
* bl = 6 (Send ARP announce)
|
||||||
|
Returned value:
|
||||||
|
* eax = -1 on error
|
||||||
|
|
||||||
4 - TCP:
|
======================================================================
|
||||||
0 - Read # packets sent
|
=== Function 76, Protocol 5 - ARP, Subfunction 7, Read # conflicts ===
|
||||||
1 - Read # packets received
|
======================================================================
|
||||||
|
Parameters:
|
||||||
5 - ARP:
|
* eax = 76 - function number
|
||||||
0 - Read # packets sent
|
* high half of ebx = 5 (ARP)
|
||||||
1 - Read # packets received
|
* bh = device number
|
||||||
2 - Read # ARP entry's
|
* bl = 7 (Read # IP address conflicts that have occured)
|
||||||
3 - Read ARP entry
|
Returned value:
|
||||||
4 - Add static ARP entry
|
* eax = # IP address conflicts (-1 on error)
|
||||||
5 - Remove ARP entry (-1 = remove all)
|
|
||||||
6 - Send ARP announce on specified interface
|
|
||||||
7 - Read # ARP conflicts (IP address conflicts)
|
|
||||||
|
|
||||||
---------------------- Constants for registers: ----------------------
|
---------------------- Constants for registers: ----------------------
|
||||||
eax - SF_NETWORK_PROTOCOL (76)
|
eax - SF_NETWORK_PROTOCOL (76)
|
||||||
|
Loading…
Reference in New Issue
Block a user