SysFn64/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
'''Функция 64 - перераспределить память приложения.'''
'''Функция 64''' - перераспределить память приложения.


''Параметры:''
''Параметры:''


* eax = 64 - номер функции
:* eax = 64 - номер функции
* ebx = 1 - единственная подфункция
:* ebx = 1 - единственная подфункция
* ecx = новый размер памяти
:* ecx = новый размер памяти


''Возвращаемое значение:''
''Возвращаемое значение:''


* eax = 0 - успешно
:* eax = 0 - успешно
* eax = 1 - недостаточно памяти
:* eax = 1 - недостаточно памяти


''Замечания:''
''Замечания:''


* Есть другой способ выделения/освобождения динамической памяти -  подфункции 11, 12, 13 функции 68.
:* Есть другой способ выделения/освобождения динамической памяти -  подфункции 11, 12, 13 [[SysFn68/ru|функции 68]].
* Функция не может использоваться совместно с 68.11, 68.12, 68.13. Вызов функции будет игнорироваться, если приложение создаст локальную кучу вызовом 68.11.
:* Функция не может использоваться совместно с 68.11, 68.12, 68.13. Вызов функции будет игнорироваться, если приложение создаст локальную кучу вызовом 68.11.
* число в ecx, это вся доступная память приложения, включая кода и стека программой. Тоесть задавая число меньшее чем размер программой заданной в [[Writing applications for KolibriOS#The header|заголовке]], программа может сама себе освободить.
:* число в ecx, это вся доступная память приложения, включая кода и стека программой. Тоесть задавая число меньшее чем размер программой заданной в [[Writing applications for KolibriOS#The header|заголовке]], программа может сама себе освободить.


''Implementation:''
''Реализация:''
sys_resize_app_memory: (core/sys32.inc)
sys_resize_app_memory: ([http://websvn.kolibrios.org/filedetails.php?repname=Kolibri+OS&path=%2Fkernel%2Ftrunk%2Fcore%2Fsys32.inc core/sys32.inc])
 
'''Константы для регистров:'''
::eax - SF_MEMORY_RESIZE (64)


{{System_functions}}
{{System_functions}}
[[Category: SysCalls]]
[[Category: SysCalls]]

Revision as of 14:08, 18 January 2016

Функция 64 - перераспределить память приложения.

Параметры:

  • eax = 64 - номер функции
  • ebx = 1 - единственная подфункция
  • ecx = новый размер памяти

Возвращаемое значение:

  • eax = 0 - успешно
  • eax = 1 - недостаточно памяти

Замечания:

  • Есть другой способ выделения/освобождения динамической памяти - подфункции 11, 12, 13 функции 68.
  • Функция не может использоваться совместно с 68.11, 68.12, 68.13. Вызов функции будет игнорироваться, если приложение создаст локальную кучу вызовом 68.11.
  • число в ecx, это вся доступная память приложения, включая кода и стека программой. Тоесть задавая число меньшее чем размер программой заданной в заголовке, программа может сама себе освободить.

Реализация: sys_resize_app_memory: (core/sys32.inc)

Константы для регистров:

eax - SF_MEMORY_RESIZE (64)