| // Copyright 2011 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| #include <stddef.h> |
| #include <stdint.h> |
| #include <sys/time.h> |
| |
| #include "runtime.h" |
| |
| // Return current time. This is the implementation of runtime.walltime(). |
| |
| struct walltime_ret |
| { |
| int64_t sec; |
| int32_t nsec; |
| }; |
| |
| struct walltime_ret now(void) __asm__ (GOSYM_PREFIX "runtime.walltime") |
| __attribute__ ((no_split_stack)); |
| |
| struct walltime_ret |
| now(void) |
| { |
| struct timespec ts; |
| struct walltime_ret ret; |
| |
| clock_gettime (CLOCK_REALTIME, &ts); |
| ret.sec = ts.tv_sec; |
| ret.nsec = ts.tv_nsec; |
| return ret; |
| } |