newlib: add clock_gettime()

git-svn-id: svn://kolibrios.org@6109 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge)
2016-01-29 08:10:00 +00:00
parent c64bf3d60e
commit ac054a24fe
9 changed files with 89 additions and 60 deletions

View File

@@ -23,7 +23,7 @@
#define __STRINGIFY(a) #a
/* 8-bit types */
#define __PRI8(x) __INT8 __STRINGIFY(x)
#define __PRI8(x) __STRINGIFY(x)
#define __PRI8LEAST(x) __LEAST8 __STRINGIFY(x)
#define __PRI8FAST(x) __FAST8 __STRINGIFY(x)
@@ -150,8 +150,8 @@
#define SCNxFAST16 __SCN16FAST(x)
/* 32-bit types */
#define __PRI32(x) __INT32 __STRINGIFY(x)
#define __SCN32(x) __INT32 __STRINGIFY(x)
#define __PRI32(x) __STRINGIFY(I32##x)
#define __SCN32(x) __STRINGIFY(I32##x)
#define __PRI32LEAST(x) __LEAST32 __STRINGIFY(x)
#define __SCN32LEAST(x) __LEAST32 __STRINGIFY(x)
#define __PRI32FAST(x) __FAST32 __STRINGIFY(x)
@@ -200,15 +200,14 @@
/* 64-bit types */
#define __PRI64(x) __INT64 __STRINGIFY(x)
#define __SCN64(x) __INT64 __STRINGIFY(x)
#define __PRI64(x) __STRINGIFY(I64##x)
#define __SCN64(x) __STRINGIFY(I64##x)
#define __PRI64LEAST(x) __LEAST64 __STRINGIFY(x)
#define __SCN64LEAST(x) __LEAST64 __STRINGIFY(x)
#define __PRI64FAST(x) __FAST64 __STRINGIFY(x)
#define __SCN64FAST(x) __FAST64 __STRINGIFY(x)
#if __int64_t_defined
#define PRId64 __PRI64(d)
#define PRIi64 __PRI64(i)
#define PRIo64 __PRI64(o)
@@ -221,7 +220,6 @@
#define SCNo64 __SCN64(o)
#define SCNu64 __SCN64(u)
#define SCNx64 __SCN64(x)
#endif
#if __int_least64_t_defined
#define PRIdLEAST64 __PRI64LEAST(d)
@@ -254,16 +252,8 @@
#endif
/* max-bit types */
#if __have_long64
#define __PRIMAX(x) __STRINGIFY(l##x)
#define __SCNMAX(x) __STRINGIFY(l##x)
#elif __have_longlong64
#define __PRIMAX(x) __STRINGIFY(ll##x)
#define __SCNMAX(x) __STRINGIFY(ll##x)
#else
#define __PRIMAX(x) __STRINGIFY(x)
#define __SCNMAX(x) __STRINGIFY(x)
#endif
#define __PRIMAX(x) __STRINGIFY(I64##x)
#define __SCNMAX(x) __STRINGIFY(I64##x)
#define PRIdMAX __PRIMAX(d)
#define PRIiMAX __PRIMAX(i)
@@ -280,11 +270,11 @@
/* ptr types */
#if defined (_INTPTR_EQ_LONGLONG)
# define __PRIPTR(x) __STRINGIFY(ll##x)
# define __SCNPTR(x) __STRINGIFY(ll##x)
# define __PRIPTR(x) __STRINGIFY(I64##x)
# define __SCNPTR(x) __STRINGIFY(I64##x)
#elif defined (_INTPTR_EQ_LONG)
# define __PRIPTR(x) __STRINGIFY(l##x)
# define __SCNPTR(x) __STRINGIFY(l##x)
# define __PRIPTR(x) __STRINGIFY(I32##x)
# define __SCNPTR(x) __STRINGIFY(I32##x)
#else
# define __PRIPTR(x) __STRINGIFY(x)
# define __SCNPTR(x) __STRINGIFY(x)

View File

@@ -25,7 +25,7 @@ static inline int mutex_init(mutex_t *mutex)
mutex->lock = 0;
asm volatile(
__asm__ volatile(
"int $0x40\t"
:"=a"(handle)
:"a"(77),"b"(FUTEX_INIT),"c"(mutex));
@@ -38,7 +38,7 @@ static inline int mutex_destroy(mutex_t *mutex)
{
int retval;
asm volatile(
__asm__ volatile(
"int $0x40\t"
:"=a"(retval)
:"a"(77),"b"(FUTEX_DESTROY),"c"(mutex->handle));
@@ -55,7 +55,7 @@ static inline void mutex_lock(mutex_t *mutex)
while (exchange_acquire (&mutex->lock, 2) != 0)
{
asm volatile(
__asm__ volatile(
"int $0x40\t\n"
:"=a"(tmp)
:"a"(77),"b"(FUTEX_WAIT),
@@ -72,7 +72,7 @@ static inline int mutex_lock_timeout(mutex_t *mutex, int timeout)
while (exchange_acquire (&mutex->lock, 2) != 0)
{
asm volatile(
__asm__ __volatile__(
"int $0x40\t"
:"=a"(tmp)
:"a"(77),"b"(FUTEX_WAIT),
@@ -99,7 +99,7 @@ static inline void mutex_unlock(mutex_t *mutex)
if (prev != 1)
{
asm volatile(
__asm__ volatile(
"int $0x40\t"
:"=a"(prev)
:"a"(77),"b"(FUTEX_WAKE),

View File

@@ -80,37 +80,37 @@ extern "C"
typedef unsigned int SNDBUF;
int _stdcall InitSound(int *version);
int __stdcall InitSound(int *version);
int _stdcall CreateBuffer(unsigned int format,int size,SNDBUF *buf);
int _stdcall DestroyBuffer(SNDBUF hBuff);
int __stdcall CreateBuffer(unsigned int format,int size,SNDBUF *buf);
int __stdcall DestroyBuffer(SNDBUF hBuff);
int _stdcall SetFormat(SNDBUF hBuff, unsigned int format);
int _stdcall GetFormat(SNDBUF hBuff, unsigned int *format);
int __stdcall SetFormat(SNDBUF hBuff, unsigned int format);
int __stdcall GetFormat(SNDBUF hBuff, unsigned int *format);
int _stdcall ResetBuffer(SNDBUF hBuff, unsigned int flags);
int _stdcall SetBufferPos(SNDBUF hBuff, int offset);
int _stdcall GetBufferPos(SNDBUF hBuff, int *offset);
int _stdcall GetBufferSize(SNDBUF hBuff, int *size);
int _stdcall GetBufferFree(SNDBUF hBuff, int *free);
int __stdcall ResetBuffer(SNDBUF hBuff, unsigned int flags);
int __stdcall SetBufferPos(SNDBUF hBuff, int offset);
int __stdcall GetBufferPos(SNDBUF hBuff, int *offset);
int __stdcall GetBufferSize(SNDBUF hBuff, int *size);
int __stdcall GetBufferFree(SNDBUF hBuff, int *free);
int _stdcall SetBuffer(SNDBUF hBuff,void* buff,
int __stdcall SetBuffer(SNDBUF hBuff,void* buff,
int offs, int size);
int _stdcall WaveOut(SNDBUF hBuff,void *buff, int size);
int _stdcall PlayBuffer(SNDBUF hBuff,unsigned int flags);
int _stdcall StopBuffer(SNDBUF hBuff);
int __stdcall WaveOut(SNDBUF hBuff,void *buff, int size);
int __stdcall PlayBuffer(SNDBUF hBuff,unsigned int flags);
int __stdcall StopBuffer(SNDBUF hBuff);
int _stdcall SetVolume(SNDBUF hBuff, int left, int right);
int _stdcall GetVolume(SNDBUF hBuff, int *left, int *right);
int _stdcall SetPan(SNDBUF hBuff, int pan);
int _stdcall GetPan(SNDBUF hBuff, int *pan);
int __stdcall SetVolume(SNDBUF hBuff, int left, int right);
int __stdcall GetVolume(SNDBUF hBuff, int *left, int *right);
int __stdcall SetPan(SNDBUF hBuff, int pan);
int __stdcall GetPan(SNDBUF hBuff, int *pan);
int _stdcall GetMasterVol(int* vol);
int _stdcall SetMasterVol(int vol);
int __stdcall GetMasterVol(int* vol);
int __stdcall SetMasterVol(int vol);
int _stdcall SetTimeBase(SNDBUF hBuff, double base);
int _stdcall GetTimeStamp(SNDBUF hBuff, double *stamp);
int _stdcall GetDevTime(int *stamp);
int __stdcall SetTimeBase(SNDBUF hBuff, double base);
int __stdcall GetTimeStamp(SNDBUF hBuff, double *stamp);
int __stdcall GetDevTime(int *stamp);
typedef struct
@@ -133,7 +133,7 @@ typedef struct
} WAVEHEADER;
unsigned int _stdcall test_wav(WAVEHEADER *hdr);
unsigned int __stdcall test_wav(WAVEHEADER *hdr);
#ifdef __cplusplus
} /* extern "C" */

View File

@@ -655,6 +655,8 @@
#define __GNU_VISIBLE 1
#endif
#define __GNU_VISIBLE 1
/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */
#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1
#undef _POSIX_C_SOURCE /* Probably illegal, but beyond caring now. */

View File

@@ -25,7 +25,7 @@
extern "C" {
#endif
/* Macros to determine that newlib is being used. Put in this header to
/* Macros to determine that newlib is being used. Put in this header to
* be similar to where glibc stores its version of these macros.
*/
#define __NEWLIB__ 2
@@ -140,7 +140,7 @@ extern "C" {
#define _POSIX_REGEXP 1
#define _POSIX_SAVED_IDS 1
#define _POSIX_SEMAPHORES 200112L
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
#define _POSIX_SHELL 1
/* #define _POSIX_SPAWN -1 */
#define _POSIX_SPIN_LOCKS 200112L
@@ -217,7 +217,7 @@ extern "C" {
* Allow for _XOPEN_SOURCE to be empty (from the earliest form of it, before it
* was required to have specific values).
*/
#if !defined(_POSIX_C_SOURCE) && defined(_XOPEN_SOURCE)
#if !defined(_POSIX_C_SOURCE) && defined(_XOPEN_SOURCE)
#if (_XOPEN_SOURCE - 0) == 700 /* POSIX.1-2008 */
#define _POSIX_C_SOURCE 200809L
#elif (_XOPEN_SOURCE - 0) == 600 /* POSIX.1-2001 or 2004 */
@@ -229,6 +229,8 @@ extern "C" {
#endif
#endif
#define _POSIX_MONOTONIC_CLOCK 200112L
#ifdef __cplusplus
}
#endif

View File

@@ -144,8 +144,6 @@ struct stat
#define UTIME_OMIT -1L
#endif
int _EXFUN(chmod,( const char *__path, mode_t __mode ));
int _EXFUN(fchmod,(int __fd, mode_t __mode));
int _EXFUN(fstat,( int __fd, struct stat *__sbuf ));
int _EXFUN(mkdir,( const char *_path, mode_t __mode ));
int _EXFUN(mkfifo,( const char *__path, mode_t __mode ));