| // 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; | |
| } |