diff -r 000000000000 -r 6474c204b198 js/src/prmjtime.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/src/prmjtime.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * vim: set ts=8 sts=4 et sw=4 tw=99: + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef prmjtime_h +#define prmjtime_h + +#include +#include + +/* + * Broken down form of 64 bit time value. + */ +struct PRMJTime { + int32_t tm_usec; /* microseconds of second (0-999999) */ + int8_t tm_sec; /* seconds of minute (0-59) */ + int8_t tm_min; /* minutes of hour (0-59) */ + int8_t tm_hour; /* hour of day (0-23) */ + int8_t tm_mday; /* day of month (1-31) */ + int8_t tm_mon; /* month of year (0-11) */ + int8_t tm_wday; /* 0=sunday, 1=monday, ... */ + int32_t tm_year; /* absolute year, AD */ + int16_t tm_yday; /* day of year (0 to 365) */ + int8_t tm_isdst; /* non-zero if DST in effect */ +}; + +/* Some handy constants */ +#define PRMJ_USEC_PER_SEC 1000000L +#define PRMJ_USEC_PER_MSEC 1000L + +/* Return the current local time in micro-seconds */ +extern int64_t +PRMJ_Now(void); + +/* Release the resources associated with PRMJ_Now; don't call PRMJ_Now again */ +#if defined(JS_THREADSAFE) && defined(XP_WIN) +extern void +PRMJ_NowShutdown(void); +#else +#define PRMJ_NowShutdown() +#endif + +/* Format a time value into a buffer. Same semantics as strftime() */ +extern size_t +PRMJ_FormatTime(char *buf, int buflen, const char *fmt, PRMJTime *tm); + +#endif /* prmjtime_h */