newlib: update includes

git-svn-id: svn://kolibrios.org@1903 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2011-03-10 05:38:16 +00:00
parent 89a9a5e25c
commit bbfd2b2cf8
2 changed files with 97 additions and 1 deletions

View File

@ -150,7 +150,15 @@ extern int _execve_r _PARAMS ((struct _reent *, const char *, char *const *, cha
extern int _fcntl_r _PARAMS ((struct _reent *, int, int, int)); extern int _fcntl_r _PARAMS ((struct _reent *, int, int, int));
extern int _fork_r _PARAMS ((struct _reent *)); extern int _fork_r _PARAMS ((struct _reent *));
extern int _fstat_r _PARAMS ((struct _reent *, int, struct stat *)); extern int _fstat_r _PARAMS ((struct _reent *, int, struct stat *));
extern int _getpid_r _PARAMS ((struct _reent *)); static inline int _getpid_r (struct _reent *r)
{
int pid;
(void)r;
__asm__ __volatile__(
"movl %%fs:0, %0 \n\t"
:"=r"(pid));
return pid;
}
extern int _isatty_r _PARAMS ((struct _reent *, int)); extern int _isatty_r _PARAMS ((struct _reent *, int));
extern int _kill_r _PARAMS ((struct _reent *, int, int)); extern int _kill_r _PARAMS ((struct _reent *, int, int));
extern int _link_r _PARAMS ((struct _reent *, const char *, const char *)); extern int _link_r _PARAMS ((struct _reent *, const char *, const char *));

View File

@ -0,0 +1,88 @@
#ifndef __KOS_IO_H__
#define __KOS_IO_H__
#pragma pack(push, 1)
typedef struct
{
char sec;
char min;
char hour;
char rsv;
}detime_t;
typedef struct
{
char day;
char month;
short year;
}dedate_t;
typedef struct
{
unsigned attr;
unsigned flags;
union
{
detime_t ctime;
unsigned cr_time;
};
union
{
dedate_t cdate;
unsigned cr_date;
};
union
{
detime_t atime;
unsigned acc_time;
};
union
{
dedate_t adate;
unsigned acc_date;
};
union
{
detime_t mtime;
unsigned mod_time;
};
union
{
dedate_t mdate;
unsigned mod_date;
};
unsigned size;
unsigned size_high;
} fileinfo_t;
#pragma pack(pop)
int create_file(const char *path);
int get_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,
size_t offset, size_t count, size_t *writes);
int set_file_size(const char *path, unsigned size);
void *load_file(const char *path, size_t *len);
void __stdcall unpack(void* packed_data, void* unpacked_data);
static inline int user_free(void *mem)
{
int val;
__asm__ __volatile__(
"int $0x40"
:"=eax"(val)
:"a"(68),"b"(12),"c"(mem));
return val;
}
static inline void set_cwd(const char* cwd)
{
__asm__ __volatile__(
"int $0x40"
::"a"(30),"b"(1),"c"(cwd));
};
#endif