kernel: fix export of file_system_lfn_protected.

This function returns values not in registers but in their images on
stack. Therefore we have to wrap a call with pushad/popad.

git-svn-id: svn://kolibrios.org@9185 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Ivan Baravy 2021-09-09 22:37:00 +00:00
parent 79377393da
commit cf3af4b4ed
2 changed files with 11 additions and 2 deletions

View File

@ -123,8 +123,9 @@ __exports:
usb_get_param, 'USBGetParam', \ usb_get_param, 'USBGetParam', \
usb_hc_func, 'USBHCFunc', \ usb_hc_func, 'USBHCFunc', \
\ \
file_system_lfn_protected, 'FS_Service', \ ; The intrakernel function of working with the file system is exported. \ ; The intrakernel function of working with the file system.
\ ; Duplicates system call 70. \ ; Duplicates system call 70.
file_system_lfn_protected_registers, 'FS_Service', \
\ \
net_add_device, 'NetRegDev', \ net_add_device, 'NetRegDev', \
net_remove_device, 'NetUnRegDev', \ net_remove_device, 'NetUnRegDev', \

View File

@ -119,6 +119,14 @@ image_of_ebx EQU esp+20
; System function 70 ; 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: file_system_lfn_protected:
pushad pushad
call protect_from_terminate call protect_from_terminate