Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9953 → Rev 9954

/contrib/sdk/sources/newlib/libc/Makefile
133,6 → 133,7
sys/unlink.c \
sys/write.c \
sys/io_alloc.S \
sys/ftruncate.c \
time/asctime.c \
time/asctime_r.c \
time/clock.c \
508,6 → 509,13
f_log10.S f_log10f.S f_logf.S f_tan.S f_tanf.S
 
 
POSIX_SRCS = opendir.c \
closedir.c \
readdir.c \
seekdir.c \
telldir.c \
rewinddir.c
 
STATIC_OBJS = $(patsubst %.S, %.o, $(patsubst %.c, %.o, $(STATIC_SRCS)))
 
LIBCRT_OBJS = $(patsubst %.S, %.o, $(patsubst %.c, %.o, $(LIBCRT_SRCS)))
531,6 → 539,7
MATH_OBJS = $(patsubst %.S, math/%.o, $(patsubst %.asm, math/%.o,\
$(patsubst %.c, math/%.o, $(MATH_SRCS))))
 
POSIX_OBJS = $(patsubst %.c, posix/%.o, $(POSIX_SRCS))
 
PRINTF_OBJS= stdio/vfprintf.o \
stdio/vfiprintf.o \
563,7 → 572,8
$(CORE_SRCS) \
$(STDIO_SRCS) \
$(STRING_SRCS) \
$(STDLIB_SRCS)
$(STDLIB_SRCS) \
$(POSIX_SRCS)
 
LIB_OBJS+= \
$(CORE_OBJS) \
572,7 → 582,7
$(STDIO_OBJS) \
$(PRINTF_OBJS) \
$(MATH_OBJS) \
$(DIRENT_OBJS)
$(POSIX_OBJS)
 
LIB_OBJS+= time/wcsftime.o
 
/contrib/sdk/sources/newlib/libc/Tupfile.lua
116,6 → 116,7
"sys/unlink.c",
"sys/write.c",
"sys/io_alloc.S",
"sys/ftruncate.c",
"time/asctime.c",
"time/asctime_r.c",
"time/clock.c",
453,6 → 454,14
"wscanf.c",
"wsetup.c"
}
POSIX_SRCS = {
"opendir.c",
"closedir.c",
"readdir.c",
"seekdir.c",
"telldir.c",
"rewinddir.c"
}
 
MATH_SRCS = {
"e_acos.c", "e_acosh.c", "e_asin.c", "e_atan2.c", "e_atanh.c", "e_cosh.c", "e_exp.c", "e_fmod.c",
505,6 → 514,7
LIB_SRCS += prepend("stdio/", STDIO_SRCS)
LIB_SRCS += prepend("string/", STRING_SRCS)
LIB_SRCS += prepend("stdlib/", STDLIB_SRCS)
LIB_SRCS += prepend("posix/", POSIX_SRCS)
LIB_SRCS += prepend("math/", MATH_SRCS)
 
ALL_OBJS = {}
/contrib/sdk/sources/newlib/libc/include/dirent.h
0,0 → 1,41
/*
* Copyright (C) KolibriOS team 2024. All rights reserved.
* Distributed under terms of the GNU General Public License
*/
 
#ifndef _DIRENT_H_
#define _DIRENT_H_
 
#include <sys/types.h>
#include <sys/cdefs.h>
#include <sys/ksys.h>
 
_BEGIN_STD_C
 
#define DT_UNKNOWN 0
#define DT_DIR 4
#define DT_REG 8
 
struct dirent {
ino_t d_ino;
unsigned d_type;
char d_name[KSYS_FNAME_UTF8_SIZE];
};
 
typedef struct {
char* path;
uint32_t pos;
struct dirent last_entry;
} DIR;
 
DIR* _DEFUN(opendir, (name), const char *name);
int _DEFUN(closedir, (dirp), register DIR *dirp);
void _DEFUN(seekdir, (dirp, loc), DIR *dirp _AND long loc);
void _DEFUN(rewinddir, (dirp), DIR *dirp);
long _DEFUN(telldir, (dirp), DIR *dirp);
 
struct dirent *_DEFUN(readdir, (dirp), register DIR *dirp);
 
_END_STD_C
 
#endif /* _DIRENT_H_ */
/contrib/sdk/sources/newlib/libc/include/memory.h
0,0 → 1,11
/*
* Copyright (C) KolibriOS team 2024. All rights reserved.
* Distributed under terms of the GNU General Public License
*/
 
#ifndef _MEMORY_H_
#define _MEMORY_H_
 
#include <string.h>
 
#endif // _MEMORY_H_
/contrib/sdk/sources/newlib/libc/include/sys/ksys.h
48,7 → 48,7
uint8_t sec;
uint8_t _zero;
};
} ksys_time_t;
} ksys_time_bcd_t;
 
typedef union {
uint32_t val;
58,7 → 58,7
uint8_t day;
uint8_t _zero;
};
} ksys_date_t;
} ksys_date_bcd_t;
 
typedef union {
uint32_t val;
93,6 → 93,7
};
union {
uint32_t flags;
uint32_t enc_name;
char* args;
};
};
113,19 → 114,47
uint32_t rw_bytes;
} ksys_file_status_t;
 
#define KSYS_FNAME_UTF8_SIZE 520
#define KSYS_FNAME_CP866_SIZE 264
 
typedef struct {
uint8_t sec;
uint8_t min;
uint8_t hour;
uint8_t _zero;
} ksys_ftime_t;
 
typedef struct {
uint8_t day;
uint8_t month;
uint16_t year;
} ksys_fdate_t;
 
typedef struct {
uint32_t attr;
uint32_t name_enc;
ksys_time_t ctime;
ksys_date_t cdate;
ksys_time_t atime;
ksys_date_t adate;
ksys_time_t mtime;
ksys_date_t mdate;
ksys_ftime_t ctime;
ksys_fdate_t cdate;
ksys_ftime_t atime;
ksys_fdate_t adate;
ksys_ftime_t mtime;
ksys_fdate_t mdate;
uint64_t size;
char name[0];
} ksys_file_info_t;
 
typedef struct {
uint32_t version;
uint32_t blocks;
uint32_t files;
uint8_t __reserved[20];
} ksys_dir_entry_header_t;
 
typedef struct {
ksys_dir_entry_header_t header;
ksys_file_info_t info;
} ksys_dir_entry_t;
 
#define KSYS_THREAD_INFO_SIZE 1024
 
typedef union {
424,15 → 453,15
 
/*==================== Function 3 - get system time. ===================*/
 
KOSAPI ksys_time_t _ksys_get_time(void)
KOSAPI ksys_time_bcd_t _ksys_get_time(void)
{
ksys_time_t c_time;
ksys_time_bcd_t bcd_time;
asm_inline(
"int $0x40"
: "=a"(c_time)
: "=a"(bcd_time)
: "a"(3)
: "memory");
return c_time;
return bcd_time;
}
 
/*=================== Function 4 - draw text string. ===================*/
866,14 → 895,14
 
/*=================== Function 29 - get system date. ===================*/
 
KOSAPI ksys_date_t _ksys_get_date(void)
KOSAPI ksys_date_bcd_t _ksys_get_date(void)
{
ksys_date_t val;
ksys_date_bcd_t bcd_date;
asm_inline(
"int $0x40"
: "=a"(val)
: "=a"(bcd_date)
: "a"(29));
return val;
return bcd_date;
}
 
/*===========+ Function 30 - work with the current folder.==============*/
1528,6 → 1557,20
return _ksys_file(&f);
}
 
KOSAPI ksys_file_status_t _ksys_file_read_dir(const char* name, uint32_t offset,
uint32_t enc, uint32_t blocks, void* buff)
{
ksys_file_t f;
f.func_num = KSYS_FILE_READ_DIR;
f.offset = offset;
f.enc_name = enc;
f.data_size = blocks;
f.data = buff;
f.zero = 0;
f.path_ptr = (char*)name;
return _ksys_file(&f);
}
 
/*===================== Function 70, subfunction 2 =====================*/
/*============ Create/rewrite file with long names support. ============*/
 
1574,6 → 1617,15
 
/*========== Function 70, subfunction 5 - get information on file/folder. =====*/
 
enum KSYS_FILE_ATTR {
KSYS_FILE_ATTR_RO = 0x1,
KSYS_FILE_ATTR_HIDDEN = 0x2,
KSYS_FILE_ATTR_SYS = 0x4,
KSYS_FILE_ATTR_VOL_LABEL = 0x8,
KSYS_FILE_ATTR_DIR = 0x10,
KSYS_FILE_ATTR_ARCHIVE = 0x20
};
 
KOSAPI int _ksys_file_info(const char* name, ksys_file_info_t* info)
{
ksys_file_t f;
1624,6 → 1676,8
return _ksys_file(&f).status;
}
 
#define _ksys_rmdir(x) _ksys_file_delete(x)
 
/*============= Function 70, subfunction 9 - create folder. =============*/
 
KOSAPI int _ksys_mkdir(const char* path)
/contrib/sdk/sources/newlib/libc/include/sys/unistd.h
10,10 → 10,11
#define __need_ptrdiff_t
#include <sys/cdefs.h>
#include <sys/types.h>
#include <sys/ksys.h>
#include <sys/_types.h>
#include <stddef.h>
 
extern char **environ;
//extern char **environ;
 
void _EXFUN(_exit, (int __status ) _ATTRIBUTE ((__noreturn__)));
 
165,7 → 166,7
int _EXFUN(rresvport, (int *__alport));
int _EXFUN(revoke, (char *__path));
#endif
int _EXFUN(rmdir, (const char *__path ));
#define rmdir(__path) _ksys_rmdir(__path)
#if __BSD_VISIBLE
int _EXFUN(ruserok, (const char *rhost, int superuser, const char *ruser, const char *luser));
#endif
244,11 → 245,12
 
#if defined(__CYGWIN__) || defined(__rtems__) || defined(__aarch64__) || defined (__arm__) || defined(__sh__) || defined(__SPU__)
#if !defined(__INSIDE_CYGWIN__)
int _EXFUN(ftruncate, (int __fd, off_t __length));
int _EXFUN(truncate, (const char *, off_t __length));
#endif
#endif
 
int _EXFUN(ftruncate, (int __fd, off_t __length));
 
#if defined(__CYGWIN__) || defined(__rtems__)
int _EXFUN(getdtablesize, (void));
int _EXFUN(setdtablesize, (int));
/contrib/sdk/sources/newlib/libc/sys/ftruncate.c
0,0 → 1,24
 
#include <errno.h>
#include <sys/types.h>
#include <sys/ksys.h>
#include "glue.h"
#include "io.h"
 
int
_DEFUN (ftruncate, (fd, len),
int fd _AND
off_t len)
{
__io_handle *ioh;
if ((fd < 0) || (fd >=64))
{
errno = EBADF;
return (-1);
}
ioh = &__io_tab[fd];
if (_ksys_file_set_size(ioh->name, len))
return (-1);
 
return 0;
}
/contrib/sdk/sources/newlib/libc/sys/stat.c
27,7 → 27,6
const char *path _AND
struct stat *buf)
{
 
ksys_file_info_t info;
struct tm time;
 
41,11 → 40,11
 
buf->st_size = info.size;
 
if (info.attr & 0x10)
if (info.attr & (KSYS_FILE_ATTR_DIR | KSYS_FILE_ATTR_VOL_LABEL))
buf->st_mode = S_IFDIR;
else
{
if (info.attr & 0x07)
if (info.attr & (KSYS_FILE_ATTR_SYS | KSYS_FILE_ATTR_HIDDEN | KSYS_FILE_ATTR_RO))
buf->st_mode = S_IFREG|S_IRUSR|S_IXUSR;
else
buf->st_mode = S_IFREG|S_IRUSR|S_IWUSR|S_IXUSR;