Move memory related implementation to nds32-memory-manipulation.c module.
[official-gcc.git] / libgo / go / syscall / libcall_posix_utimesnano.go
blobe0751f5467d46abe9b7f61386975472fce3618f5
1 // Copyright 2012 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.
5 // General POSIX version of UtimesNano.
7 package syscall
9 import "unsafe"
11 func UtimesNano(path string, ts []Timespec) error {
12 // TODO: The BSDs can do utimensat with SYS_UTIMENSAT but it
13 // isn't supported by darwin so this uses utimes instead
14 if len(ts) != 2 {
15 return EINVAL
17 // Not as efficient as it could be because Timespec and
18 // Timeval have different types in the different OSes
19 tv := [2]Timeval{
20 NsecToTimeval(TimespecToNsec(ts[0])),
21 NsecToTimeval(TimespecToNsec(ts[1])),
23 return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))