diff --git a/kernel/trunk/core/exports.inc b/kernel/trunk/core/exports.inc index d50e349e0c..f0a77f3e51 100644 --- a/kernel/trunk/core/exports.inc +++ b/kernel/trunk/core/exports.inc @@ -123,8 +123,9 @@ __exports: usb_get_param, 'USBGetParam', \ usb_hc_func, 'USBHCFunc', \ \ - file_system_lfn_protected, 'FS_Service', \ ; The intrakernel function of working with the file system is exported. -\ ; Duplicates system call 70. +\ ; The intrakernel function of working with the file system. +\ ; Duplicates system call 70. + file_system_lfn_protected_registers, 'FS_Service', \ \ net_add_device, 'NetRegDev', \ net_remove_device, 'NetUnRegDev', \ diff --git a/kernel/trunk/fs/fs_lfn.inc b/kernel/trunk/fs/fs_lfn.inc index 298939f6e9..75b2eacdcd 100644 --- a/kernel/trunk/fs/fs_lfn.inc +++ b/kernel/trunk/fs/fs_lfn.inc @@ -119,6 +119,14 @@ image_of_ebx EQU esp+20 ; System function 70 +; file_system_lfn_protected returns values not in registers, but in their images +; on stack. Make a short wrapper to actually return values in registers. +file_system_lfn_protected_registers: + pushad + call file_system_lfn_protected + popad + ret + file_system_lfn_protected: pushad call protect_from_terminate