Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6633 → Rev 6634

/kernel/trunk/docs/sysfuncs.txt
4667,47 → 4667,300
* bh = device 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
 
0 - Ethernet:
0 - Read MAC:
returns lower part of mac in EAX, upper part in BX
======================================================================
= 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)
 
1 - IPv4:
0 - Read # packets sent
1 - Read # packets received
2 - Read IP
3 - Write IP
4 - Read DNS
5 - Write DNS
6 - Read subnet
7 - Write subnet
8 - Read gateway
9 - Write gateway
======================================================================
= 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)
 
2 - ICMP:
0 - Read # packets sent
1 - Read # packets received
======================================================================
=== 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)
 
3 - UDP:
0 - Read # packets sent
1 - Read # packets received
======================================================================
=== 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
4 - TCP:
0 - Read # packets sent
1 - Read # packets received
======================================================================
== Function 76, Protocol 1 - IPv4, Subfunction 4, Read DNS address ===
======================================================================
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)
 
5 - ARP:
0 - Read # packets sent
1 - Read # packets received
2 - Read # ARP entry's
3 - Read ARP entry
4 - Add static ARP entry
5 - Remove ARP entry (-1 = remove all)
6 - Send ARP announce on specified interface
7 - Read # ARP conflicts (IP address conflicts)
======================================================================
=== 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
 
======================================================================
== Function 76, Protocol 1 - IPv4, Subfunction 6, Read subnet mask ===
======================================================================
Parameters:
* eax = 76 - function number
* high half of ebx = 1 (IPv4)
* bh = device number
* bl = 6 (Read subnet mask)
Returned value:
* eax = subnet mask (-1 on error)
======================================================================
=== 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)
 
======================================================================
==== Function 76, Protocol 5 - ARP, Subfunction 3, Read 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)
* 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
 
======================================================================
==== Function 76, Protocol 5 - ARP, Subfunction 4, Add ARP entry ====
======================================================================
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
======================================================================
=== Function 76, Protocol 5 - ARP, Subfunction 7, Read # conflicts ===
======================================================================
Parameters:
* eax = 76 - function number
* high half of ebx = 5 (ARP)
* bh = device number
* bl = 7 (Read # IP address conflicts that have occured)
Returned value:
* eax = # IP address conflicts (-1 on error)
 
---------------------- Constants for registers: ----------------------
eax - SF_NETWORK_PROTOCOL (76)
======================================================================