Introduce the Date Port API
Replaced `gettimeofday`-related code with `jerry_port_get_current_time` and `jerry_port_get_time_zone` function calls. Moved old code to default port implementation. Removed `ENABLE_DATE_SYS_CALLS` as date syscalls should "just work". Fix DST adjustments: even if `gettimeofday` returns meaningful data in `tz_dsttime`, the value is just a flag (or, according to some sources, a tri-state value: >0 if DST applies, ==0 if DST does not apply, <0 if unknown). Hitherto, the field was simply added to/subtracted from a time value in milliseconds. To use it approximately correctly, the field's value should be multiplied by "millisecs/hour". JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
#ifndef JERRY_PORT_H
|
||||
#define JERRY_PORT_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -71,6 +73,34 @@ typedef enum
|
||||
*/
|
||||
void jerry_port_fatal (jerry_fatal_code_t code);
|
||||
|
||||
/*
|
||||
* Date Port API
|
||||
*/
|
||||
|
||||
/**
|
||||
* Jerry time zone structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
int offset; /**< minutes from west */
|
||||
int daylight_saving_time; /**< daylight saving time (1 - DST applies, 0 - not on DST) */
|
||||
} jerry_time_zone_t;
|
||||
|
||||
/**
|
||||
* Get timezone and daylight saving data
|
||||
*
|
||||
* @return true - if success
|
||||
* false - otherwise
|
||||
*/
|
||||
bool jerry_port_get_time_zone (jerry_time_zone_t *tz_p);
|
||||
|
||||
/**
|
||||
* Get system time
|
||||
*
|
||||
* @return milliseconds since Unix epoch
|
||||
*/
|
||||
uint64_t jerry_port_get_current_time (void);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user