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 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