forked from KolibriOS/kolibrios
NewLib:
- Duplicate functionality files removed; - Refactoring of file handling functions; - Removed broken impliments. Gears (C + TinyGL): - Removed because it duplicates an existing example on Fasm and uses unsupported wrappers on the KOS API. KosJS: - Removed. The MuJS port is too old and not used anywhere. Support is not profitable. Backy: - Removed useless GCC version. Support is not profitable. DGen-SDL and SQLite3 - Fix after removing broken "dirent.h". Fridge: - Moving the KOS API wrapper to avoid compilation errors. Udis86, uARM and 8086tiny: - Fix after removing redundant "kos_LoadConsole.h". git-svn-id: svn://kolibrios.org@9952 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,31 +1,15 @@
|
||||
/*
|
||||
* Copyright (C) KolibriOS team 2004-2024. All rights reserved.
|
||||
* Distributed under terms of the GNU General Public License
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/kos_io.h>
|
||||
#include <sys/ksys.h>
|
||||
|
||||
int read_file(const char *path, void *buff,
|
||||
size_t offset, size_t count, size_t *reads)
|
||||
{
|
||||
int retval;
|
||||
int d0;
|
||||
__asm__ __volatile__(
|
||||
"pushl $0 \n\t"
|
||||
"pushl $0 \n\t"
|
||||
"movl %%eax, 1(%%esp) \n\t"
|
||||
"pushl %%ebx \n\t"
|
||||
"pushl %%edx \n\t"
|
||||
"pushl $0 \n\t"
|
||||
"pushl %%ecx \n\t"
|
||||
"pushl $0 \n\t"
|
||||
"movl %%esp, %%ebx \n\t"
|
||||
"mov $70, %%eax \n\t"
|
||||
"int $0x40 \n\t"
|
||||
"testl %%esi, %%esi \n\t"
|
||||
"jz 1f \n\t"
|
||||
"movl %%ebx, (%%esi) \n\t"
|
||||
"1:"
|
||||
"addl $28, %%esp \n\t"
|
||||
:"=a" (retval)
|
||||
:"a"(path),"b"(buff),"c"(offset),"d"(count),"S"(reads));
|
||||
return retval == 6 ? 0 : retval;
|
||||
};
|
||||
|
||||
ksys_file_status_t st = _ksys_file_read(path, offset, count, buff);
|
||||
*reads = st.rw_bytes;
|
||||
return st.status == KSYS_FS_ERR_EOF ? 0 : st.status;
|
||||
}
|
||||
|
Reference in New Issue
Block a user