1 /****************************************************************************** 2 * 3 * Copyright 2015 Google, Inc. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19 #pragma once 20 21 #include <stdint.h> 22 23 typedef uint64_t period_ms_t; 24 25 // Get the OS boot time in milliseconds. 26 // 27 // NOTE: The return value will rollover every 49.7 days, 28 // hence it cannot be used for absolute time comparison. 29 // Relative time comparison using 32-bits integers such 30 // as (t2_u32 - t1_u32 < delta_u32) should work as expected as long 31 // as there is no multiple rollover between t2_u32 and t1_u32. 32 // 33 // TODO: This function's return type should be modified to |period_ms_t|. 34 // Be careful: some of the code that is using it assumes the return type 35 // is uint32_t. 36 uint32_t time_get_os_boottime_ms(void); 37 38 // Get the OS boot time in microseconds. 39 uint64_t time_get_os_boottime_us(void); 40 41 // Get the current wall clock time in microseconds. 42 uint64_t time_gettimeofday_us(void); 43