1// Copyright 2017 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Declarations for operating systems implementing time.now
6// indirectly, in terms of walltime and nanotime assembly.
7
8//go:build !faketime && !windows && !(linux && amd64)
9
10package runtime
11
12import _ "unsafe" // for go:linkname
13
14// time_now should be an internal detail,
15// but widely used packages access it using linkname.
16// Notable members of the hall of shame include:
17//   - gitee.com/quant1x/gox
18//   - github.com/phuslu/log
19//   - github.com/sethvargo/go-limiter
20//   - github.com/ulule/limiter/v3
21//
22// Do not remove or change the type signature.
23// See go.dev/issue/67401.
24//
25//go:linkname time_now time.now
26func time_now() (sec int64, nsec int32, mono int64) {
27	sec, nsec = walltime()
28	return sec, nsec, nanotime()
29}
30