summaryrefslogtreecommitdiff
path: root/internal/time.h
blob: 8f8489922113986ace615ae95eeb02cb868a0c5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef INTERNAL_TIME_H /* -*- C -*- */
#define INTERNAL_TIME_H
/**
 * @file
 * @brief      Internal header for Time.
 * @author     \@shyouhei
 * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.
 *             Permission  is hereby  granted,  to  either redistribute  and/or
 *             modify this file, provided that  the conditions mentioned in the
 *             file COPYING are met.  Consult the file for details.
 */
#include "ruby/config.h"        /* for SIGNEDNESS_OF_TIME_T */
#include "internal/bits.h"      /* for SIGNED_INTEGER_MAX */
#include "ruby/ruby.h"          /* for VALUE */

#if SIGNEDNESS_OF_TIME_T < 0    /* signed */
# define TIMET_MAX SIGNED_INTEGER_MAX(time_t)
# define TIMET_MIN SIGNED_INTEGER_MIN(time_t)
#elif SIGNEDNESS_OF_TIME_T > 0  /* unsigned */
# define TIMET_MAX UNSIGNED_INTEGER_MAX(time_t)
# define TIMET_MIN ((time_t)0)
#endif

struct timeval; /* <- in <sys/time.h> or <winsock2.h> */

/* time.c */
struct timeval rb_time_timeval(VALUE);

RUBY_SYMBOL_EXPORT_BEGIN
/* time.c (export) */
void ruby_reset_leap_second_info(void);
void ruby_reset_timezone(void);
RUBY_SYMBOL_EXPORT_END

#endif /* INTERNAL_TIME_H */