// 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.

// +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))))
}
