Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6973 → Rev 6974

/kernel/trunk/core/heap.inc
596,7 → 596,7
align 4
proc user_alloc stdcall, alloc_size:dword
push ebx esi edi
call init_heap
mov ebx, [current_process]
lea ecx, [ebx+PROC.heap_lock]
call mutex_lock
mov ecx, [alloc_size]
/kernel/trunk/docs/sysfuncr.txt
2577,6 → 2577,8
* 3 = RAW
* 4 и выше зарезервировано
* +8: более детально смотрите файл clipboard_container_rus.txt
* Функция должна использоваться совместно с 68.11. Приложение должно
предварительно проинициализировать локальную кучу вызовом 68.11.
 
---------------------- Константы для регистров: ----------------------
eax - SF_CLIPBOARD (54)
2989,8 → 2991,10
* eax = 1 - недостаточно памяти
Замечания:
* Есть другой способ выделения/освобождения динамической памяти -
подфункции 12, 13 и 20 функции 68, но после их использования будет
создана куча процесса и вызов функции 64 будет игнорироваться.
подфункции 11, 12, 13 функции 68.
* Функция не может использоваться совместно с 68.11, 68.12, 68.13.
Вызов функции будет игнорироваться, если приложение создаст
локальную кучу вызовом 68.11.
 
---------------------- Константы для регистров: ----------------------
eax - SF_MEMORY_RESIZE (64)
3292,7 → 3296,7
eax - SF_SYS_MISC (68)
ebx - SSF_WRITE_MSR (4)
======================================================================
= Функция 68, подфункция 11 - вручную инициализировать кучу процесса =
===== Функция 68, подфункция 11 - инициализировать кучу процесса. ====
======================================================================
Параметры:
* eax = 68 - номер функции
3447,6 → 3451,8
Возвращаемое значение:
* eax = указатель на перераспределённый блок, 0 при ошибке
Замечания:
* Предварительно следует инициализировать кучу процесса вызовом
подфункции 11.
* Функция выделяет целое число страниц (4 Кб) так, что фактический
размер выделенного блока больше или равен запрошенному.
* Если edx=0, то вызов функции эквивалентен выделению памяти
3510,6 → 3516,8
* E_NOMEM = 30
* E_PARAM = 33
Замечания:
* Предварительно следует инициализировать кучу процесса вызовом
подфункции 11.
* Если создаётся новая область, то флаги доступа устанавливают
максимальные права доступа для остальных процессов. Попытка
открытия другим потоком с неразрешёнными правами провалится
3619,6 → 3627,8
* edx = размер загруженного файла или 0
Примечания:
* функция загружает и, при необходимости, распаковывает файл (kunpack)
* Предварительно следует инициализировать кучу процесса вызовом
подфункции 11.
 
---------------------- Константы для регистров: ----------------------
eax - SF_SYS_MISC (68)
/kernel/trunk/docs/sysfuncs.txt
2548,6 → 2548,9
* 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)
2957,6 → 2960,9
* There is another way to dynamically allocate/free memory -
subfunctions 12, 13 and 20 of function 68, but after creation
of the process heap 64 function call will be ignored.
* 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.
 
---------------------- Constants for registers: ----------------------
eax - SF_MEMORY_RESIZE (64)
3258,7 → 3264,7
eax - SF_SYS_MISC (68)
ebx - SSF_WRITE_MSR (4)
======================================================================
=== Function 68, subfunction 11 - manually initialize process heap ===
=== Function 68, subfunction 11 - initialize process heap ============
======================================================================
Parameters:
* eax = 68 - function number
3413,6 → 3419,8
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.
3475,6 → 3483,8
* 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.
3584,6 → 3594,8
* edx = size of the loaded file, or zero
Remarks:
* function loads file and unpacks, if necessary
* Before this call one must initialize process heap by call to
subfunction 11.
 
---------------------- Constants for registers: ----------------------
eax - SF_SYS_MISC (68)