Home | History | Annotate | Download | only in os
      1 // Copyright 2009 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.
      4 
      5 package os
      6 
      7 import (
      8 	"syscall"
      9 	"time"
     10 )
     11 
     12 // A fileStat is the implementation of FileInfo returned by Stat and Lstat.
     13 type fileStat struct {
     14 	name    string
     15 	size    int64
     16 	mode    FileMode
     17 	modTime time.Time
     18 	sys     interface{}
     19 }
     20 
     21 func (fs *fileStat) Size() int64        { return fs.size }
     22 func (fs *fileStat) Mode() FileMode     { return fs.mode }
     23 func (fs *fileStat) ModTime() time.Time { return fs.modTime }
     24 func (fs *fileStat) Sys() interface{}   { return fs.sys }
     25 
     26 func sameFile(fs1, fs2 *fileStat) bool {
     27 	a := fs1.sys.(*syscall.Dir)
     28 	b := fs2.sys.(*syscall.Dir)
     29 	return a.Qid.Path == b.Qid.Path && a.Type == b.Type && a.Dev == b.Dev
     30 }
     31 
     32 const badFd = -1
     33