From 01700771dd76c0defc48ecc8440b2152a8e51925 Mon Sep 17 00:00:00 2001 From: siemargl Date: Wed, 30 Nov 2016 22:22:54 +0000 Subject: [PATCH] add set_fileinfo() git-svn-id: svn://kolibrios.org@6777 a494cfbc-eb01-0410-851d-a64ba20cac60 --- contrib/sdk/sources/newlib/libc/Makefile.ebox | 6 ++--- .../sources/newlib/libc/include/sys/kos_io.h | 1 + contrib/sdk/sources/newlib/libc/sys/finfo.c | 22 +++++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/contrib/sdk/sources/newlib/libc/Makefile.ebox b/contrib/sdk/sources/newlib/libc/Makefile.ebox index 81a83682cb..142c464ed3 100644 --- a/contrib/sdk/sources/newlib/libc/Makefile.ebox +++ b/contrib/sdk/sources/newlib/libc/Makefile.ebox @@ -394,9 +394,9 @@ shared: $(NAME).dll libapp.a libdll.a $(NAME).dll: $(LIB_OBJS) $(SRC_DEP) Makefile $(LD) $(LDFLAGS) $(LIBPATH) -o $@ $(LIB_OBJS) -lgcc --version-script libc.ver - #sed -e "s/ @[^ ]*//" libc.orig.def > libc.def - #sed -f cmd2.sed libc.def > mem - #sed -f newlib.sed mem > libc.inc +#sed -e "s/ @[^ ]*//" libc.orig.def > libc.def +#sed -f cmd2.sed libc.def > mem +#sed -f newlib.sed mem > libc.inc install: libc.dll libc.dll.a libapp.a libdll.a mv -f libc.dll $(SDK_DIR)/bin diff --git a/contrib/sdk/sources/newlib/libc/include/sys/kos_io.h b/contrib/sdk/sources/newlib/libc/include/sys/kos_io.h index 6ece4a1bb0..d17b8a8f21 100644 --- a/contrib/sdk/sources/newlib/libc/include/sys/kos_io.h +++ b/contrib/sdk/sources/newlib/libc/include/sys/kos_io.h @@ -64,6 +64,7 @@ typedef struct int create_file(const char *path); int get_fileinfo(const char *path, fileinfo_t *info); +int set_fileinfo(const char *path, fileinfo_t *info); int read_file(const char *path, void *buff, size_t offset, size_t count, size_t *reads); int write_file(const char *path,const void *buff, diff --git a/contrib/sdk/sources/newlib/libc/sys/finfo.c b/contrib/sdk/sources/newlib/libc/sys/finfo.c index c114554fb7..77cf30b777 100644 --- a/contrib/sdk/sources/newlib/libc/sys/finfo.c +++ b/contrib/sdk/sources/newlib/libc/sys/finfo.c @@ -24,3 +24,25 @@ int get_fileinfo(const char *path, fileinfo_t *info) return retval; }; + +int set_fileinfo(const char *path, fileinfo_t *info) +{ + int retval; + + __asm__ __volatile__ ( + "pushl $0 \n\t" + "pushl $0 \n\t" + "movl %1, 1(%%esp) \n\t" + "pushl %%ebx \n\t" + "pushl $0 \n\t" + "pushl $0 \n\t" + "pushl $0 \n\t" + "pushl $6 \n\t" + "movl %%esp, %%ebx \n\t" + "movl $70, %%eax \n\t" + "int $0x40 \n\t" + "addl $28, %%esp \n\t" + :"=a" (retval) + :"r" (path), "b" (info)); + return retval; +};