forked from KolibriOS/kolibrios
move stack.txt from the local language folders into a single /kernel/docs/ folder
git-svn-id: svn://kolibrios.org@7714 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
771b422d56
commit
18917968a9
@ -1,203 +0,0 @@
|
|||||||
eax = 74 - Work directly with network interface
|
|
||||||
ebx = -1 (Get number of active network devices)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = number of active network devices
|
|
||||||
|
|
||||||
bh = device number, for all following functions !
|
|
||||||
|
|
||||||
bl = 0 (Get device type)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = device type number
|
|
||||||
|
|
||||||
bl = 1 (Get device name)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = pointer to 64 byte buffer
|
|
||||||
out:
|
|
||||||
name is copied into the buffer
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Reset the device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Stop device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
TO BE FIGURED OUT
|
|
||||||
|
|
||||||
eax = 75 - Work with Sockets
|
|
||||||
|
|
||||||
These functions work like the ones found in UNIX (and windows)
|
|
||||||
for more info, please read http://beej.us/guide/bgnet/
|
|
||||||
|
|
||||||
bl = 0 (Open Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = domain
|
|
||||||
edx = type
|
|
||||||
esi = protocol
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 1 (Close Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Bind)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Listen)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = backlog
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 4 (connect)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 5 (accept)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 6 (send)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 7 (receive)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = number of bytes copied, -1 on error
|
|
||||||
|
|
||||||
bl = 8 (set socket options)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 9 (get socket options
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error, socket option otherwise
|
|
||||||
|
|
||||||
TIP
|
|
||||||
|
|
||||||
when you import 'network.inc' and 'macros.inc' into your source code, you can use the following syntax to work with sockets:
|
|
||||||
|
|
||||||
|
|
||||||
for example, to open a socket
|
|
||||||
|
|
||||||
mcall socket, AF_INET, SOCK_DGRAM,0
|
|
||||||
mov [socketnum], eax
|
|
||||||
|
|
||||||
then to connect to a server
|
|
||||||
|
|
||||||
mcall connect, [socketnum], sockaddr, 18
|
|
||||||
|
|
||||||
|
|
||||||
eax = 76 - Work with protocols
|
|
||||||
|
|
||||||
high half of ebx = protocol number (for all subfunctions!)
|
|
||||||
bh = device number (for all subfunctions!)
|
|
||||||
bl = subfunction number, depends on protocol type
|
|
||||||
|
|
||||||
For Ethernet protocol
|
|
||||||
|
|
||||||
0 - Read # Packets send
|
|
||||||
1 - Read # Packets received
|
|
||||||
2 - Read # Bytes send
|
|
||||||
3 - Read # Bytes received
|
|
||||||
4 - Read MAC
|
|
||||||
5 - Write MAC
|
|
||||||
6 - Read IN-QUEUE size
|
|
||||||
7 - Read OUT-QUEUE size
|
|
||||||
For IPv4 protocol
|
|
||||||
|
|
||||||
0 - Read # IP packets send
|
|
||||||
1 - Read # IP 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
|
|
||||||
For ARP protocol
|
|
||||||
|
|
||||||
0 - Read # ARP packets send
|
|
||||||
1 - Read # ARP packets received
|
|
||||||
2 - Get # ARP entry's
|
|
||||||
3 - Read ARP entry
|
|
||||||
4 - Add static ARP entry
|
|
||||||
5 - Remove ARP entry (-1 = remove all)
|
|
||||||
For ICMP protocol
|
|
||||||
|
|
||||||
0 - Read # ICMP packets send
|
|
||||||
1 - Read # ICMP packets received
|
|
||||||
3 - enable/disable ICMP echo reply
|
|
||||||
For UDP protocol
|
|
||||||
|
|
||||||
0 - Read # UDP packets send
|
|
||||||
1 - Read # UDP packets received
|
|
||||||
For TCP protocol
|
|
||||||
|
|
||||||
0 - Read # TCP packets send
|
|
||||||
1 - Read # TCP packets received
|
|
@ -1,203 +0,0 @@
|
|||||||
eax = 74 - Work directly with network interface
|
|
||||||
ebx = -1 (Get number of active network devices)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = number of active network devices
|
|
||||||
|
|
||||||
bh = device number, for all following functions !
|
|
||||||
|
|
||||||
bl = 0 (Get device type)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = device type number
|
|
||||||
|
|
||||||
bl = 1 (Get device name)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = pointer to 64 byte buffer
|
|
||||||
out:
|
|
||||||
name is copied into the buffer
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Reset the device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Stop device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
TO BE FIGURED OUT
|
|
||||||
|
|
||||||
eax = 75 - Work with Sockets
|
|
||||||
|
|
||||||
These functions work like the ones found in UNIX (and windows)
|
|
||||||
for more info, please read http://beej.us/guide/bgnet/
|
|
||||||
|
|
||||||
bl = 0 (Open Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = domain
|
|
||||||
edx = type
|
|
||||||
esi = protocol
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 1 (Close Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Bind)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Listen)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = backlog
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 4 (connect)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 5 (accept)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 6 (send)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 7 (receive)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = number of bytes copied, -1 on error
|
|
||||||
|
|
||||||
bl = 8 (set socket options)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 9 (get socket options
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error, socket option otherwise
|
|
||||||
|
|
||||||
TIP
|
|
||||||
|
|
||||||
when you import 'network.inc' and 'macros.inc' into your source code, you can use the following syntax to work with sockets:
|
|
||||||
|
|
||||||
|
|
||||||
for example, to open a socket
|
|
||||||
|
|
||||||
mcall socket, AF_INET, SOCK_DGRAM,0
|
|
||||||
mov [socketnum], eax
|
|
||||||
|
|
||||||
then to connect to a server
|
|
||||||
|
|
||||||
mcall connect, [socketnum], sockaddr, 18
|
|
||||||
|
|
||||||
|
|
||||||
eax = 76 - Work with protocols
|
|
||||||
|
|
||||||
high half of ebx = protocol number (for all subfunctions!)
|
|
||||||
bh = device number (for all subfunctions!)
|
|
||||||
bl = subfunction number, depends on protocol type
|
|
||||||
|
|
||||||
For Ethernet protocol
|
|
||||||
|
|
||||||
0 - Read # Packets send
|
|
||||||
1 - Read # Packets received
|
|
||||||
2 - Read # Bytes send
|
|
||||||
3 - Read # Bytes received
|
|
||||||
4 - Read MAC
|
|
||||||
5 - Write MAC
|
|
||||||
6 - Read IN-QUEUE size
|
|
||||||
7 - Read OUT-QUEUE size
|
|
||||||
For IPv4 protocol
|
|
||||||
|
|
||||||
0 - Read # IP packets send
|
|
||||||
1 - Read # IP 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
|
|
||||||
For ARP protocol
|
|
||||||
|
|
||||||
0 - Read # ARP packets send
|
|
||||||
1 - Read # ARP packets received
|
|
||||||
2 - Get # ARP entry's
|
|
||||||
3 - Read ARP entry
|
|
||||||
4 - Add static ARP entry
|
|
||||||
5 - Remove ARP entry (-1 = remove all)
|
|
||||||
For ICMP protocol
|
|
||||||
|
|
||||||
0 - Read # ICMP packets send
|
|
||||||
1 - Read # ICMP packets received
|
|
||||||
3 - enable/disable ICMP echo reply
|
|
||||||
For UDP protocol
|
|
||||||
|
|
||||||
0 - Read # UDP packets send
|
|
||||||
1 - Read # UDP packets received
|
|
||||||
For TCP protocol
|
|
||||||
|
|
||||||
0 - Read # TCP packets send
|
|
||||||
1 - Read # TCP packets received
|
|
@ -1,203 +0,0 @@
|
|||||||
eax = 74 - Work directly with network interface
|
|
||||||
ebx = -1 (Get number of active network devices)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = number of active network devices
|
|
||||||
|
|
||||||
bh = device number, for all following functions !
|
|
||||||
|
|
||||||
bl = 0 (Get device type)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = device type number
|
|
||||||
|
|
||||||
bl = 1 (Get device name)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = pointer to 64 byte buffer
|
|
||||||
out:
|
|
||||||
name is copied into the buffer
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Reset the device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Stop device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
TO BE FIGURED OUT
|
|
||||||
|
|
||||||
eax = 75 - Work with Sockets
|
|
||||||
|
|
||||||
These functions work like the ones found in UNIX (and windows)
|
|
||||||
for more info, please read http://beej.us/guide/bgnet/
|
|
||||||
|
|
||||||
bl = 0 (Open Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = domain
|
|
||||||
edx = type
|
|
||||||
esi = protocol
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 1 (Close Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Bind)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Listen)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = backlog
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 4 (connect)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 5 (accept)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 6 (send)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 7 (receive)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = number of bytes copied, -1 on error
|
|
||||||
|
|
||||||
bl = 8 (set socket options)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 9 (get socket options
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error, socket option otherwise
|
|
||||||
|
|
||||||
TIP
|
|
||||||
|
|
||||||
when you import 'network.inc' and 'macros.inc' into your source code, you can use the following syntax to work with sockets:
|
|
||||||
|
|
||||||
|
|
||||||
for example, to open a socket
|
|
||||||
|
|
||||||
mcall socket, AF_INET, SOCK_DGRAM,0
|
|
||||||
mov [socketnum], eax
|
|
||||||
|
|
||||||
then to connect to a server
|
|
||||||
|
|
||||||
mcall connect, [socketnum], sockaddr, 18
|
|
||||||
|
|
||||||
|
|
||||||
eax = 76 - Work with protocols
|
|
||||||
|
|
||||||
high half of ebx = protocol number (for all subfunctions!)
|
|
||||||
bh = device number (for all subfunctions!)
|
|
||||||
bl = subfunction number, depends on protocol type
|
|
||||||
|
|
||||||
For Ethernet protocol
|
|
||||||
|
|
||||||
0 - Read # Packets send
|
|
||||||
1 - Read # Packets received
|
|
||||||
2 - Read # Bytes send
|
|
||||||
3 - Read # Bytes received
|
|
||||||
4 - Read MAC
|
|
||||||
5 - Write MAC
|
|
||||||
6 - Read IN-QUEUE size
|
|
||||||
7 - Read OUT-QUEUE size
|
|
||||||
For IPv4 protocol
|
|
||||||
|
|
||||||
0 - Read # IP packets send
|
|
||||||
1 - Read # IP 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
|
|
||||||
For ARP protocol
|
|
||||||
|
|
||||||
0 - Read # ARP packets send
|
|
||||||
1 - Read # ARP packets received
|
|
||||||
2 - Get # ARP entry's
|
|
||||||
3 - Read ARP entry
|
|
||||||
4 - Add static ARP entry
|
|
||||||
5 - Remove ARP entry (-1 = remove all)
|
|
||||||
For ICMP protocol
|
|
||||||
|
|
||||||
0 - Read # ICMP packets send
|
|
||||||
1 - Read # ICMP packets received
|
|
||||||
3 - enable/disable ICMP echo reply
|
|
||||||
For UDP protocol
|
|
||||||
|
|
||||||
0 - Read # UDP packets send
|
|
||||||
1 - Read # UDP packets received
|
|
||||||
For TCP protocol
|
|
||||||
|
|
||||||
0 - Read # TCP packets send
|
|
||||||
1 - Read # TCP packets received
|
|
@ -1,203 +0,0 @@
|
|||||||
eax = 74 - Work directly with network interface
|
|
||||||
ebx = -1 (Get number of active network devices)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = number of active network devices
|
|
||||||
|
|
||||||
bh = device number, for all following functions !
|
|
||||||
|
|
||||||
bl = 0 (Get device type)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = device type number
|
|
||||||
|
|
||||||
bl = 1 (Get device name)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = pointer to 64 byte buffer
|
|
||||||
out:
|
|
||||||
name is copied into the buffer
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Reset the device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Stop device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
TO BE FIGURED OUT
|
|
||||||
|
|
||||||
eax = 75 - Work with Sockets
|
|
||||||
|
|
||||||
These functions work like the ones found in UNIX (and windows)
|
|
||||||
for more info, please read http://beej.us/guide/bgnet/
|
|
||||||
|
|
||||||
bl = 0 (Open Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = domain
|
|
||||||
edx = type
|
|
||||||
esi = protocol
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 1 (Close Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Bind)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Listen)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = backlog
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 4 (connect)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 5 (accept)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 6 (send)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 7 (receive)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = number of bytes copied, -1 on error
|
|
||||||
|
|
||||||
bl = 8 (set socket options)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 9 (get socket options
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error, socket option otherwise
|
|
||||||
|
|
||||||
TIP
|
|
||||||
|
|
||||||
when you import 'network.inc' and 'macros.inc' into your source code, you can use the following syntax to work with sockets:
|
|
||||||
|
|
||||||
|
|
||||||
for example, to open a socket
|
|
||||||
|
|
||||||
mcall socket, AF_INET, SOCK_DGRAM,0
|
|
||||||
mov [socketnum], eax
|
|
||||||
|
|
||||||
then to connect to a server
|
|
||||||
|
|
||||||
mcall connect, [socketnum], sockaddr, 18
|
|
||||||
|
|
||||||
|
|
||||||
eax = 76 - Work with protocols
|
|
||||||
|
|
||||||
high half of ebx = protocol number (for all subfunctions!)
|
|
||||||
bh = device number (for all subfunctions!)
|
|
||||||
bl = subfunction number, depends on protocol type
|
|
||||||
|
|
||||||
For Ethernet protocol
|
|
||||||
|
|
||||||
0 - Read # Packets send
|
|
||||||
1 - Read # Packets received
|
|
||||||
2 - Read # Bytes send
|
|
||||||
3 - Read # Bytes received
|
|
||||||
4 - Read MAC
|
|
||||||
5 - Write MAC
|
|
||||||
6 - Read IN-QUEUE size
|
|
||||||
7 - Read OUT-QUEUE size
|
|
||||||
For IPv4 protocol
|
|
||||||
|
|
||||||
0 - Read # IP packets send
|
|
||||||
1 - Read # IP 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
|
|
||||||
For ARP protocol
|
|
||||||
|
|
||||||
0 - Read # ARP packets send
|
|
||||||
1 - Read # ARP packets received
|
|
||||||
2 - Get # ARP entry's
|
|
||||||
3 - Read ARP entry
|
|
||||||
4 - Add static ARP entry
|
|
||||||
5 - Remove ARP entry (-1 = remove all)
|
|
||||||
For ICMP protocol
|
|
||||||
|
|
||||||
0 - Read # ICMP packets send
|
|
||||||
1 - Read # ICMP packets received
|
|
||||||
3 - enable/disable ICMP echo reply
|
|
||||||
For UDP protocol
|
|
||||||
|
|
||||||
0 - Read # UDP packets send
|
|
||||||
1 - Read # UDP packets received
|
|
||||||
For TCP protocol
|
|
||||||
|
|
||||||
0 - Read # TCP packets send
|
|
||||||
1 - Read # TCP packets received
|
|
@ -1,203 +0,0 @@
|
|||||||
eax = 74 - Work directly with network interface
|
|
||||||
ebx = -1 (Get number of active network devices)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = number of active network devices
|
|
||||||
|
|
||||||
bh = device number, for all following functions !
|
|
||||||
|
|
||||||
bl = 0 (Get device type)
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = device type number
|
|
||||||
|
|
||||||
bl = 1 (Get device name)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = pointer to 64 byte buffer
|
|
||||||
out:
|
|
||||||
name is copied into the buffer
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Reset the device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Stop device)
|
|
||||||
|
|
||||||
in
|
|
||||||
none
|
|
||||||
out
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
TO BE FIGURED OUT
|
|
||||||
|
|
||||||
eax = 75 - Work with Sockets
|
|
||||||
|
|
||||||
These functions work like the ones found in UNIX (and windows)
|
|
||||||
for more info, please read http://beej.us/guide/bgnet/
|
|
||||||
|
|
||||||
bl = 0 (Open Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = domain
|
|
||||||
edx = type
|
|
||||||
esi = protocol
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 1 (Close Socket)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 2 (Bind)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 3 (Listen)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = backlog
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 4 (connect)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 5 (accept)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to sockaddr structure
|
|
||||||
esi = length of sockaddr structure
|
|
||||||
out:
|
|
||||||
eax = socket number, -1 on error
|
|
||||||
|
|
||||||
bl = 6 (send)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 7 (receive)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = pointer to buffer
|
|
||||||
esi = length of buffer
|
|
||||||
edi = flags
|
|
||||||
out:
|
|
||||||
eax = number of bytes copied, -1 on error
|
|
||||||
|
|
||||||
bl = 8 (set socket options)
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error
|
|
||||||
|
|
||||||
bl = 9 (get socket options
|
|
||||||
|
|
||||||
in:
|
|
||||||
ecx = socket number
|
|
||||||
edx = level
|
|
||||||
esi = optionname
|
|
||||||
edi = ptr to buffer
|
|
||||||
|
|
||||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
|
||||||
|
|
||||||
out:
|
|
||||||
eax = -1 on error, socket option otherwise
|
|
||||||
|
|
||||||
TIP
|
|
||||||
|
|
||||||
when you import 'network.inc' and 'macros.inc' into your source code, you can use the following syntax to work with sockets:
|
|
||||||
|
|
||||||
|
|
||||||
for example, to open a socket
|
|
||||||
|
|
||||||
mcall socket, AF_INET, SOCK_DGRAM,0
|
|
||||||
mov [socketnum], eax
|
|
||||||
|
|
||||||
then to connect to a server
|
|
||||||
|
|
||||||
mcall connect, [socketnum], sockaddr, 18
|
|
||||||
|
|
||||||
|
|
||||||
eax = 76 - Work with protocols
|
|
||||||
|
|
||||||
high half of ebx = protocol number (for all subfunctions!)
|
|
||||||
bh = device number (for all subfunctions!)
|
|
||||||
bl = subfunction number, depends on protocol type
|
|
||||||
|
|
||||||
For Ethernet protocol
|
|
||||||
|
|
||||||
0 - Read # Packets send
|
|
||||||
1 - Read # Packets received
|
|
||||||
2 - Read # Bytes send
|
|
||||||
3 - Read # Bytes received
|
|
||||||
4 - Read MAC
|
|
||||||
5 - Write MAC
|
|
||||||
6 - Read IN-QUEUE size
|
|
||||||
7 - Read OUT-QUEUE size
|
|
||||||
For IPv4 protocol
|
|
||||||
|
|
||||||
0 - Read # IP packets send
|
|
||||||
1 - Read # IP 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
|
|
||||||
For ARP protocol
|
|
||||||
|
|
||||||
0 - Read # ARP packets send
|
|
||||||
1 - Read # ARP packets received
|
|
||||||
2 - Get # ARP entry's
|
|
||||||
3 - Read ARP entry
|
|
||||||
4 - Add static ARP entry
|
|
||||||
5 - Remove ARP entry (-1 = remove all)
|
|
||||||
For ICMP protocol
|
|
||||||
|
|
||||||
0 - Read # ICMP packets send
|
|
||||||
1 - Read # ICMP packets received
|
|
||||||
3 - enable/disable ICMP echo reply
|
|
||||||
For UDP protocol
|
|
||||||
|
|
||||||
0 - Read # UDP packets send
|
|
||||||
1 - Read # UDP packets received
|
|
||||||
For TCP protocol
|
|
||||||
|
|
||||||
0 - Read # TCP packets send
|
|
||||||
1 - Read # TCP packets received
|
|
@ -14,4 +14,7 @@ end
|
|||||||
tup.append_table(deps,
|
tup.append_table(deps,
|
||||||
tup.rule("../../../develop/fasm/trunk/fasm.txt", cp_cmd, "FASM.TXT")
|
tup.rule("../../../develop/fasm/trunk/fasm.txt", cp_cmd, "FASM.TXT")
|
||||||
)
|
)
|
||||||
|
tup.append_table(deps,
|
||||||
|
tup.rule("../../../../kernel/trunk/docs/stack.txt", cp_cmd, "STACK.TXT")
|
||||||
|
)
|
||||||
tup.rule({"docpack.asm", extra_inputs = deps}, env_prefix .. "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "docpack")
|
tup.rule({"docpack.asm", extra_inputs = deps}, env_prefix .. "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "docpack")
|
||||||
|
Loading…
Reference in New Issue
Block a user