Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6974 → Rev 6973

/kernel/trunk/core/heap.inc
596,7 → 596,7
align 4
proc user_alloc stdcall, alloc_size:dword
push ebx esi edi
mov ebx, [current_process]
call init_heap
lea ecx, [ebx+PROC.heap_lock]
call mutex_lock
mov ecx, [alloc_size]
/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 - номер функции
3451,8 → 3447,6
Возвращаемое значение:
* eax = указатель на перераспределённый блок, 0 при ошибке
Замечания:
* Предварительно следует инициализировать кучу процесса вызовом
подфункции 11.
* Функция выделяет целое число страниц (4 Кб) так, что фактический
размер выделенного блока больше или равен запрошенному.
* Если edx=0, то вызов функции эквивалентен выделению памяти
3516,8 → 3510,6
* E_NOMEM = 30
* E_PARAM = 33
Замечания:
* Предварительно следует инициализировать кучу процесса вызовом
подфункции 11.
* Если создаётся новая область, то флаги доступа устанавливают
максимальные права доступа для остальных процессов. Попытка
открытия другим потоком с неразрешёнными правами провалится
3627,8 → 3619,6
* edx = размер загруженного файла или 0
Примечания:
* функция загружает и, при необходимости, распаковывает файл (kunpack)
* Предварительно следует инициализировать кучу процесса вызовом
подфункции 11.
 
---------------------- Константы для регистров: ----------------------
eax - SF_SYS_MISC (68)
/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)
2960,9 → 2957,6
* 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)
3264,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
3419,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.
3483,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.
3594,8 → 3584,6
* 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)