From df15574e005b370f78717a92df595115d43d17e2 Mon Sep 17 00:00:00 2001
From: Ivan Baravy <dunkaist@gmail.com>
Date: Tue, 26 Apr 2022 20:55:37 +0000
Subject: [PATCH] Translate documentation of sf68.31 into English

git-svn-id: svn://kolibrios.org@9796 a494cfbc-eb01-0410-851d-a64ba20cac60
---
 kernel/trunk/docs/sysfuncs.txt | 46 +++++++++++++++++++---------------
 1 file changed, 26 insertions(+), 20 deletions(-)

diff --git a/kernel/trunk/docs/sysfuncs.txt b/kernel/trunk/docs/sysfuncs.txt
index bb4dccba14..d41bbcc1d8 100644
--- a/kernel/trunk/docs/sysfuncs.txt
+++ b/kernel/trunk/docs/sysfuncs.txt
@@ -3666,30 +3666,36 @@ Remarks:
   ebx - SSF_MEM_ALLOC_RING (29)  
 
 ======================================================================
-============ Function 68, subfunction 31 - get data driver. ==========
+=========== Function 68, subfunction 31 - get driver data. ===========
 ======================================================================
-Параметры:
+Driver structures are organized into a doubly linked list. Its head is
+a dummy structure with the forward and backward pointers only. Other
+structures, if any, are as follows:
+  * +0: 16*byte: driver name, ASCIIZ
+  * +16 = +0x10: dword: pointer to the next driver structure
+  * +20 = +0x14: dword: pointer to the previous driver structure
+  * +24 = +0x18: dword: driver's base address
+  * +28 = +0x1C: dword: driver's entry point address
+  * +32 = +0x20: dword: driver's service handler address
+
+-------------- Subsubfunction 1 - get driver list head. --------------
+Parameters:
   * eax = 68 - function number
   * ebx = 31 - subfunction number
-  * ecx = function (1 - get first pointers on list,
-                    2 - get item list)
-  * edx = if ecx=2 pointer on structure.
-  * edi = if ecx=2 pointer on memory for structure.
-Возвращаемое значение:
-  * If ecx = 1, then ebx = fd 
-                     ecx = bk
-  * If ecx = 2, then eax = 0  ok
-                     eax = -1 error
-Примечания:
-  *  Returned structure
-   data_service:
-     .name:         rb 16
-     .fd:           rd 1
-     .bk:           rd 1
-     .base:         rd 1
-     .entry:        rd 1
-     .srv_proc:     rd 1
+  * ecx = 1 - subsubfunction number
+Returned value:
+  * ebx = pointer to the next driver structure
+  * ecx = pointer to the previous driver structure
 
+--------- Subsubfunction 2 - get driver list item by pointer. --------
+Parameters:
+  * eax = 68 - function number
+  * ebx = 31 - subfunction number
+  * ecx = 2 - subsubfunction number
+  * edx = pointer to the list item
+  * edi = pointer to memory for driver data
+Returned value:
+  * eax = 0 (ok), -1 (error)
 
 ======================================================================
 ====================== Function 69 - debugging. ======================