| // Copyright 2019 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. |
| |
| //go:build faketime |
| // +build faketime |
| |
| package syscall |
| |
| import "unsafe" |
| |
| const faketime = true |
| |
| // When faketime is enabled, we redirect writes to FDs 1 and 2 through |
| // the runtime's write function, since that adds the framing that |
| // reports the emulated time. |
| |
| //go:linkname runtimeWrite runtime.write |
| func runtimeWrite(fd uintptr, p unsafe.Pointer, n int32) int32 |
| |
| func faketimeWrite(fd int, p []byte) int { |
| var pp *byte |
| if len(p) > 0 { |
| pp = &p[0] |
| } |
| return int(runtimeWrite(uintptr(fd), unsafe.Pointer(pp), int32(len(p)))) |
| } |