mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Added stubs for gmtime(3), localtime(3) and utime(3).
This commit is contained in:
parent
45981431de
commit
622e0176e3
2 changed files with 54 additions and 0 deletions
|
@ -44,9 +44,22 @@ struct tm
|
||||||
int tm_isdst;
|
int tm_isdst;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct utimbuf
|
||||||
|
{
|
||||||
|
time_t actime;
|
||||||
|
time_t modtime;
|
||||||
|
};
|
||||||
|
|
||||||
clock_t clock(void);
|
clock_t clock(void);
|
||||||
time_t time(time_t* t);
|
time_t time(time_t* t);
|
||||||
char* ctime(const time_t* timep);
|
char* ctime(const time_t* timep);
|
||||||
|
struct tm* localtime_r(const time_t* timer, struct tm* ret);
|
||||||
|
struct tm* gmtime_r(const time_t* timer, struct tm* ret);
|
||||||
|
#if !defined(_SORTIX_SOURCE)
|
||||||
|
struct tm* localtime(const time_t* timer);
|
||||||
|
struct tm* gmtime(const time_t* timer);
|
||||||
|
#endif
|
||||||
|
int utime(const char* filepath, const struct utimbuf* times);
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
|
|
|
@ -64,9 +64,50 @@ namespace Maxsi
|
||||||
return t ? *t = result : result;
|
return t ? *t = result : result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" struct tm* localtime_r(const time_t* timer, struct tm* ret)
|
||||||
|
{
|
||||||
|
time_t time = *timer;
|
||||||
|
ret->tm_sec = time % 60; // No leap seconds.
|
||||||
|
ret->tm_min = (time / 60) % 60;
|
||||||
|
ret->tm_hour = (time / 60 / 60) % 24;
|
||||||
|
ret->tm_mday = 0;
|
||||||
|
ret->tm_mon = 0;
|
||||||
|
ret->tm_year = 0;
|
||||||
|
ret->tm_wday = 0;
|
||||||
|
ret->tm_isdst = 0;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" struct tm* gmtime_r(const time_t* timer, struct tm* ret)
|
||||||
|
{
|
||||||
|
return localtime_r(timer, ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Who the hell designed the below two functions? I vote that
|
||||||
|
// these be removed from Sortix soon - although that'd require fixing
|
||||||
|
// a lot of applications..
|
||||||
|
|
||||||
|
extern "C" struct tm* localtime(const time_t* timer)
|
||||||
|
{
|
||||||
|
static struct tm hack_localtime_ret;
|
||||||
|
return localtime_r(timer, &hack_localtime_ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" struct tm* gmtime(const time_t* timer)
|
||||||
|
{
|
||||||
|
static struct tm hack_gmtime_ret;
|
||||||
|
return gmtime_r(timer, &hack_gmtime_ret);
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" char* ctime(const time_t* /*timep*/)
|
extern "C" char* ctime(const time_t* /*timep*/)
|
||||||
{
|
{
|
||||||
return (char*) "ctime(3) is not implemented";
|
return (char*) "ctime(3) is not implemented";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" int utime(const char* filepath, const struct utimbuf* times)
|
||||||
|
{
|
||||||
|
// TODO: Sure, I did that! There is no kernel support for this yet.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue