Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 3659 → Rev 3663

/kernel/trunk/docs/sysfuncr.txt
1794,6 → 1794,23
* При создании процесса/потока текущая папка наследуется от
родителя.
 
---- Подфункция 3 - установить доп. системную директорию для ядра ----
Параметры:
* eax = 30 - номер функции
* ebx = 3 - номер подфункции
* ecx = указатель на блок данных:
sysdir_name rb 64
sysdir_path rb 64
Пример:
dir_name1 db 'addappl',0
rb 64-8
dir_path1 db 'HD0/1',0
rb 64-6
Возвращаемое значение:
* функция не возвращает значения
Замечания:
* Функция может быть вызвана только 1 раз за 1 сессию работы ОС.
 
======================================================================
========= Функция 34 - узнать кому принадлежит точка экрана. =========
======================================================================
/kernel/trunk/docs/sysfuncs.txt
1776,6 → 1776,23
* At process/thread creation the current folder will be inherited
from the parent.
 
--- Subfunction 3 - install the add.system directory for the kernel --
Parameters:
* eax = 30 - function number
* ebx = 3 - subfunction number
* ecx = pointer to a block of data:
sysdir_name rb 64
sysdir_path rb 64
For example:
dir_name1 db 'addappl',0
rb 64-8
dir_path1 db 'HD0/1',0
rb 64-6
Returned value:
* function does not return value
Remarks:
* The function can be called only 1 time for 1 session of the OS.
 
======================================================================
========= Function 34 - who owner the pixel on the screen. ===========
======================================================================
/kernel/trunk/fs/fs_lfn.inc
934,6 → 934,12
ret
 
process_replace_file_name:
; in
; esi - path with filename(f.70)
;
; out
; ebp - full filename
 
mov ebp, [full_file_name_table]
mov edi, [full_file_name_table.size]
dec edi
975,6 → 981,10
.ret:
ret
 
uglobal
lock_flag_for_f30_3 rb 1
endg
sys_current_directory:
; mov esi, [current_slot]
; mov esi, [esi+APPDATA.cur_dir]
988,7 → 998,42
jz .set
dec ebx
jz .get
dec ebx
jz .mount_additional_directory
ret
 
.mount_additional_directory:
; sysfunction 30.2: [for app] eax=30,ebx=3,ecx->dir name+dir path (128)
; for our code: nothing
 
; check lock of the function
cmp [lock_flag_for_f30_3], 1
je @f
mov esi, ecx
mov edi, sysdir_name1
; copying fake directory name
mov ecx, 63
cld
rep movsb
; terminator of name, in case if we get the inlet trash
inc esi
xor eax, eax
stosb
; copying real directory path for mounting
mov ecx, 63
rep movsb
; terminator of name, in case if we get the inlet trash
xor eax, eax
stosb
; increase the pointer of inputs for procedure "process_replace_file_name"
mov [full_file_name_table.size], 2
; block the ability to call f.30.3 because for one session is necessary
; for us only once
mov [lock_flag_for_f30_3], 1
@@:
ret
.get:
; sysfunction 30.2: [for app] eax=30,ebx=2,ecx->buffer,edx=len
; for our code: ebx->buffer,ecx=len
/kernel/trunk/fs/parse_fn.inc
32,6 → 32,17
; Parser_params will initialize: sysdir_name = "sys", sysdir_path = <sysdir>
sysdir_name rb 64
sysdir_path rb 64
sysdir_name1 rb 64
sysdir_path1 rb 64
 
; for example:
;dir_name1 db 'addappl',0
; rb 64-8
;dir_path1 db 'HD0/1',0
; rb 64-6
endg
 
uglobal
tmp_file_name_table dd ?
endg