Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6892 → Rev 6893

/kernel/trunk/docs/sysfuncr.txt
2577,8 → 2577,6
* 3 = RAW
* 4 и выше зарезервировано
* +8: более детально смотрите файл clipboard_container_rus.txt
* Функция должна использоваться совместно с 68.11. Приложение должно
предварительно проинициализировать локальную кучу вызовом 68.11.
 
---------------------- Константы для регистров: ----------------------
eax - SF_CLIPBOARD (54)
2991,10 → 2989,8
* eax = 1 - недостаточно памяти
Замечания:
* Есть другой способ выделения/освобождения динамической памяти -
подфункции 11, 12, 13 функции 68.
* Функция не может использоваться совместно с 68.11, 68.12, 68.13.
Вызов функции будет игнорироваться, если приложение создаст
локальную кучу вызовом 68.11.
подфункции 12, 13 и 20 функции 68, но после их использования будет
создана куча процесса и вызов функции 64 будет игнорироваться.
 
---------------------- Константы для регистров: ----------------------
eax - SF_MEMORY_RESIZE (64)
3296,7 → 3292,7
eax - SF_SYS_MISC (68)
ebx - SSF_WRITE_MSR (4)
======================================================================
===== Функция 68, подфункция 11 - инициализировать кучу процесса. ====
= Функция 68, подфункция 11 - вручную инициализировать кучу процесса =
======================================================================
Параметры:
* eax = 68 - номер функции
3306,10 → 3302,9
* иначе размер созданной кучи
Замечания:
* Вызов функции инициализирует кучу, из которой впоследствии можно
выделять и освобождать блоки памяти подфункциями 12 и 13.
выделять и освобождать блоки памяти подфункциями 12, 13 и 20.
* Если куча уже создана, функция вернёт размер существующей кучи.
Размер кучи равен размеру всей свободной памяти приложения.
* При повторном вызове функции тем же процессом функция вернёт
размер существующей кучи.
* После создания кучи вызовы функции 64 игнорируются.
 
---------------------- Константы для регистров: ----------------------
3325,8 → 3320,6
Возвращаемое значение:
* eax = указатель на выделенный блок
Замечания:
* Предварительно следует инициализировать кучу процесса вызовом
подфункции 11.
* Функция выделяет целое число страниц (4 Кб) так, что фактический
размер выделенного блока больше или равен запрошенному.
 
3454,8 → 3447,6
Возвращаемое значение:
* eax = указатель на перераспределённый блок, 0 при ошибке
Замечания:
* Предварительно следует инициализировать кучу процесса вызовом
подфункции 11.
* Функция выделяет целое число страниц (4 Кб) так, что фактический
размер выделенного блока больше или равен запрошенному.
* Если edx=0, то вызов функции эквивалентен выделению памяти
3519,8 → 3510,6
* E_NOMEM = 30
* E_PARAM = 33
Замечания:
* Предварительно следует инициализировать кучу процесса вызовом
подфункции 11.
* Если создаётся новая область, то флаги доступа устанавливают
максимальные права доступа для остальных процессов. Попытка
открытия другим потоком с неразрешёнными правами провалится
/kernel/trunk/docs/sysfuncs.txt
2548,9 → 2548,6
* eax = if successful - pointer to a memory with data
* eax = 1 - error
* eax = -1 - main list area not found
Remarks:
* The function must be used in conjunction with 68.11. The
application must pre-initialize the local heap by calling 68.11.
 
---------------------- Constants for registers: ----------------------
eax - SF_CLIPBOARD (54)
2958,10 → 2955,8
* eax = 1 - not enough memory
Remarks:
* There is another way to dynamically allocate/free memory -
subfunctions 11, 12, 13 of function 68.
* The function cannot be used together with 68.11, 68.12, 68.13.
The function call will be ignored after creation of process heap
with function 68.11.
subfunctions 12, 13 and 20 of function 68, but after creation
of the process heap 64 function call will be ignored.
 
---------------------- Constants for registers: ----------------------
eax - SF_MEMORY_RESIZE (64)
3263,7 → 3258,7
eax - SF_SYS_MISC (68)
ebx - SSF_WRITE_MSR (4)
======================================================================
======= Function 68, subfunction 11 - initialize process heap. =======
=== Function 68, subfunction 11 - manually initialize process heap ===
======================================================================
Parameters:
* eax = 68 - function number
3272,11 → 3267,10
* eax = 0 - failed
* otherwise size of created heap
Remarks:
* The function call initializes heap, from which one can in future
allocate and free memory blocks with subfunctions 12 and 13.
* The function call initializes heap for subfunctions 12, 13 and 20.
* If the process heap is already created, this function will return
the size of the existing heap.
Heap size is equal to total amount of free application memory.
* The second function call from the same process results in
returning the size of the existing heap.
* After creation of the heap calls to function 64 will be ignored.
 
---------------------- Constants for registers: ----------------------
3292,8 → 3286,6
Returned value:
* eax = pointer to the allocated block
Remarks:
* Before this call one must initialize process heap by call to
subfunction 11.
* The function allocates an integer number of pages (4 Kb) in such
way that the real size of allocated block is more than or equal to
requested size.
3421,8 → 3413,6
Returned value:
* eax = pointer to the reallocated block, 0 = error
Remarks:
* Before this call one must initialize process heap by call to
subfunction 11.
* The function allocates an integer number of pages (4 Kb) in such
way that the real size of allocated block is more than or equal to
requested size.
3485,8 → 3475,6
* E_NOMEM = 30
* E_PARAM = 33
Remarks:
* Before this call one must initialize process heap by call to
subfunction 11.
* If a new area is created, access flags set maximal rights
for other processes. An attempt from other process to open
with denied rights will fail with error code E_ACCESS.