new Fn77 - fast user-space locking
git-svn-id: svn://kolibrios.org@6079 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -919,7 +919,7 @@ Format of the table: short version:
|
||||
For example, for the standard configuration from one 1.44-drive
|
||||
here will be 40h, and for the case 1.2Mb on A: and 1.44Mb on B:
|
||||
the value is 24h.
|
||||
|
||||
|
||||
First IDE controller:
|
||||
* +1: byte: information about hard disks and CD-drives, AABBCCDD,
|
||||
where AA corresponds to the controller IDE0, ..., DD - IDE3:
|
||||
@@ -930,7 +930,7 @@ Format of the table: short version:
|
||||
this field contains 48h.
|
||||
* +2: 4 db: number of the retrieved partitions on hard disks
|
||||
at accordingly IDE0,...,IDE3.
|
||||
|
||||
|
||||
Second IDE controller:
|
||||
* +6: byte: information about hard disks and CD-drives, AABBCCDD,
|
||||
where AA corresponds to the controller IDE4, ..., DD - IDE7:
|
||||
@@ -951,8 +951,8 @@ Format of the table: short version:
|
||||
For example, in the case HD on IDE8 and CD on IDE10
|
||||
this field contains 48h.
|
||||
* +12: 4 db: number of the retrieved partitions on hard disks
|
||||
at accordingly IDE8,...,IDE11.
|
||||
|
||||
at accordingly IDE8,...,IDE11.
|
||||
|
||||
If the hard disk on IDEx is absent, appropriate byte is zero,
|
||||
otherwise it shows number of the recognized partitions, which
|
||||
can be not presented (if the drive is not formatted or if
|
||||
@@ -1631,7 +1631,7 @@ Returned value:
|
||||
Remarks:
|
||||
* Counter takes modulo 2^32, that correspond to a little more
|
||||
than 497 days.
|
||||
* To get system time use function 3.
|
||||
* To get system time use function 3.
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_SYSTEM_GET (26)
|
||||
@@ -1645,7 +1645,7 @@ Parameters:
|
||||
* ebx = 10 - subfunction number
|
||||
Returned value:
|
||||
* eax = number of nanoseconds since system boot time (lower DWORD)
|
||||
* edx = number of nanoseconds since system boot time (high DWORD)
|
||||
* edx = number of nanoseconds since system boot time (high DWORD)
|
||||
Remarks:
|
||||
* The counter is based on HPET, if HPET is not available, resolution
|
||||
will be reduced to 10 000 000 nanoseconds.
|
||||
@@ -2517,7 +2517,7 @@ Returned value:
|
||||
* eax = if successful - pointer to a memory with data
|
||||
* eax = 1 - error
|
||||
* eax = -1 - main list area not found
|
||||
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_CLIPBOARD (54)
|
||||
ebx - SSF_READ_CB (1)
|
||||
@@ -4665,7 +4665,7 @@ Returned value:
|
||||
* ebx = errorcode
|
||||
Remarks:
|
||||
|
||||
Optstruct:
|
||||
Optstruct:
|
||||
dd level
|
||||
dd optionname
|
||||
dd optlength
|
||||
@@ -4687,7 +4687,7 @@ Returned value:
|
||||
* ebx = errorcode
|
||||
Remarks:
|
||||
|
||||
Optstruct:
|
||||
Optstruct:
|
||||
dd level
|
||||
dd optionname
|
||||
dd optlength
|
||||
@@ -4720,7 +4720,7 @@ Parameters:
|
||||
|
||||
Ethernet (0)
|
||||
0 - Read MAC
|
||||
|
||||
|
||||
IPv4 (1)
|
||||
0 - Read # IP packets sent
|
||||
1 - Read # IP packets received
|
||||
@@ -4732,7 +4732,7 @@ IPv4 (1)
|
||||
7 - Write subnet
|
||||
8 - Read gateway
|
||||
9 - Write gateway
|
||||
|
||||
|
||||
ICMP (2)
|
||||
0 - Read # ICMP packets sent
|
||||
1 - Read # ICMP packets received
|
||||
@@ -4744,8 +4744,8 @@ UDP (3)
|
||||
|
||||
TCP (4)
|
||||
0 - Read # TCP packets sent
|
||||
1 - Read # TCP packets received
|
||||
|
||||
1 - Read # TCP packets received
|
||||
|
||||
ARP (5)
|
||||
0 - Read # ARP packets sent
|
||||
1 - Read # ARP packets received
|
||||
@@ -4754,10 +4754,70 @@ ARP (5)
|
||||
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)
|
||||
7 - Read # ARP conflicts (IP address conflicts)
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_PROTOCOL (76)
|
||||
|
||||
======================================================================
|
||||
========== Function 77, Subfunction 0, Create futex object ===========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 77 - function number
|
||||
* ebx = 0 - subfunction number
|
||||
* ecx = pointer to futex dword
|
||||
Returned value:
|
||||
* eax = futex handle, 0 on error
|
||||
Remarks:
|
||||
* Use subfunction 1 to destroy the futex.
|
||||
The kernel destroys the futexes automatically when the process
|
||||
terminates.
|
||||
======================================================================
|
||||
========= Function 77, Subfunction 1, Destroy futex object ===========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 77 - function number
|
||||
* ebx = 1 - subfunction number
|
||||
* ecx = futex handle
|
||||
Returned value:
|
||||
* eax = 0 - successfull, -1 on error
|
||||
Remarks:
|
||||
* The futex handle must have been created by subfunction 0
|
||||
|
||||
======================================================================
|
||||
=============== Function 77, Subfunction 2, Futex wait ===============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 77 - function number
|
||||
* ebx = 2 - subfunction number
|
||||
* ecx = futex handle
|
||||
* edx = control value
|
||||
* esi = timeout in system ticks or 0 for infinity
|
||||
Returned value:
|
||||
* eax = 0 - successfull, -1 on timeout
|
||||
|
||||
Remarks:
|
||||
* This functionn tests that the value at the futex dword still
|
||||
contains the expected control value, and if so, then sleeps
|
||||
waiting for a wake operation on the futex.
|
||||
* The futex handle must have been created by subfunction 0
|
||||
|
||||
======================================================================
|
||||
=============== Function 77, Subfunction 3, Futex wake ===============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 77 - function number
|
||||
* ebx = 3 - subfunction number
|
||||
* ecx = futex handle
|
||||
* edx = number of waiters to wake
|
||||
Returned value:
|
||||
* eax = number of waiters that were woken up
|
||||
|
||||
Remarks:
|
||||
* This function wakes at most edx of the waiters that are
|
||||
waiting (e.g., inside futex wait) on the futex dword
|
||||
* The futex handle must have been created by subfunction 0
|
||||
|
||||
======================================================================
|
||||
=============== Function -1 - terminate thread/process ===============
|
||||
======================================================================
|
||||
|
Reference in New Issue
Block a user