runtime: abort stack scan in cases that we cannot unwind the stack
[gcc.git] / libgo / go / os / types_plan9.go
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