1 /*
2     This file is part of libmicrospdy
3     Copyright Copyright (C) 2012 Andrey Uzunov
4 
5     This program is free software: you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation, either version 3 of the License, or
8     (at your option) any later version.
9 
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14 
15     You should have received a copy of the GNU General Public License
16     along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18 
19 /**
20  * @file microspdy/internal.c
21  * @brief  internal functions and macros for the framing layer
22  * @author Andrey Uzunov
23  */
24 
25 #include "platform.h"
26 #include "structures.h"
27 
28 
29 unsigned long long
SPDYF_monotonic_time(void)30 SPDYF_monotonic_time (void)
31 {
32 #ifdef HAVE_CLOCK_GETTIME
33 #ifdef CLOCK_MONOTONIC
34   struct timespec ts;
35   if (0 == clock_gettime (CLOCK_MONOTONIC, &ts))
36     return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
37 #endif
38 #endif
39   return time (NULL) * 1000;
40 }
41