os,syscall: Stat_t timespec fields are Atimespec on darwin
This allows archive/tar to build and pass.
Этот коммит содержится в:
родитель
7706c41bf6
коммит
4716298044
2 изменённых файлов: 11 добавлений и 6 удалений
|
@ -12,7 +12,7 @@ import (
|
|||
func fillFileStatFromSys(fs *fileStat, name string) {
|
||||
fs.name = basename(name)
|
||||
fs.size = fs.sys.Size
|
||||
fs.modTime = timespecToTime(fs.sys.Mtim)
|
||||
fs.modTime = timespecToTime(fs.sys.Mtimespec)
|
||||
fs.mode = FileMode(fs.sys.Mode & 0777)
|
||||
switch fs.sys.Mode & syscall.S_IFMT {
|
||||
case syscall.S_IFBLK, syscall.S_IFWHT:
|
||||
|
@ -47,5 +47,5 @@ func timespecToTime(ts syscall.Timespec) time.Time {
|
|||
|
||||
// For testing.
|
||||
func atime(fi FileInfo) time.Time {
|
||||
return timespecToTime(fi.Sys().(*syscall.Stat_t).Atim)
|
||||
return timespecToTime(fi.Sys().(*syscall.Stat_t).Atimespec)
|
||||
}
|
||||
|
|
|
@ -147,6 +147,11 @@ type Timespec struct {
|
|||
Nsec int64
|
||||
}
|
||||
|
||||
// Unix returns the time stored in ts as seconds plus nanoseconds.
|
||||
func (ts *Timespec) Unix() (sec int64, nsec int64) {
|
||||
return int64(ts.Sec), int64(ts.Nsec)
|
||||
}
|
||||
|
||||
// Source: upstream ztypes_darwin_amd64.go
|
||||
type Dirent struct {
|
||||
Ino uint64
|
||||
|
@ -168,10 +173,10 @@ type Stat_t struct {
|
|||
Gid uint32
|
||||
Rdev int32
|
||||
Pad_cgo_0 [4]byte
|
||||
Atim Timespec
|
||||
Mtim Timespec
|
||||
Ctim Timespec
|
||||
Btim Timespec
|
||||
Atimespec Timespec
|
||||
Mtimespec Timespec
|
||||
Ctimespec Timespec
|
||||
Btimespec Timespec
|
||||
Size int64
|
||||
Blocks int64
|
||||
Blksize int32
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче