27 lines
677 B
Go
27 lines
677 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
|
||
|
|
||
|
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))))
|
||
|
}
|