28 lines
696 B
Go
28 lines
696 B
Go
// 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))))
|
|
}
|