diff options
Diffstat (limited to 'vendor/github.com/twitchyliquid64/golang-asm/bio')
4 files changed, 0 insertions, 264 deletions
diff --git a/vendor/github.com/twitchyliquid64/golang-asm/bio/buf.go b/vendor/github.com/twitchyliquid64/golang-asm/bio/buf.go deleted file mode 100644 index c4c251490..000000000 --- a/vendor/github.com/twitchyliquid64/golang-asm/bio/buf.go +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright 2015 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. - -// Package bio implements common I/O abstractions used within the Go toolchain. -package bio - -import ( - "bufio" - "io" - "log" - "os" -) - -// Reader implements a seekable buffered io.Reader. -type Reader struct { - f *os.File - *bufio.Reader -} - -// Writer implements a seekable buffered io.Writer. -type Writer struct { - f *os.File - *bufio.Writer -} - -// Create creates the file named name and returns a Writer -// for that file. -func Create(name string) (*Writer, error) { - f, err := os.Create(name) - if err != nil { - return nil, err - } - return &Writer{f: f, Writer: bufio.NewWriter(f)}, nil -} - -// Open returns a Reader for the file named name. -func Open(name string) (*Reader, error) { - f, err := os.Open(name) - if err != nil { - return nil, err - } - return NewReader(f), nil -} - -// NewReader returns a Reader from an open file. -func NewReader(f *os.File) *Reader { - return &Reader{f: f, Reader: bufio.NewReader(f)} -} - -func (r *Reader) MustSeek(offset int64, whence int) int64 { - if whence == 1 { - offset -= int64(r.Buffered()) - } - off, err := r.f.Seek(offset, whence) - if err != nil { - log.Fatalf("seeking in output: %v", err) - } - r.Reset(r.f) - return off -} - -func (w *Writer) MustSeek(offset int64, whence int) int64 { - if err := w.Flush(); err != nil { - log.Fatalf("writing output: %v", err) - } - off, err := w.f.Seek(offset, whence) - if err != nil { - log.Fatalf("seeking in output: %v", err) - } - return off -} - -func (r *Reader) Offset() int64 { - off, err := r.f.Seek(0, 1) - if err != nil { - log.Fatalf("seeking in output [0, 1]: %v", err) - } - off -= int64(r.Buffered()) - return off -} - -func (w *Writer) Offset() int64 { - if err := w.Flush(); err != nil { - log.Fatalf("writing output: %v", err) - } - off, err := w.f.Seek(0, 1) - if err != nil { - log.Fatalf("seeking in output [0, 1]: %v", err) - } - return off -} - -func (r *Reader) Close() error { - return r.f.Close() -} - -func (w *Writer) Close() error { - err := w.Flush() - err1 := w.f.Close() - if err == nil { - err = err1 - } - return err -} - -func (r *Reader) File() *os.File { - return r.f -} - -func (w *Writer) File() *os.File { - return w.f -} - -// Slice reads the next length bytes of r into a slice. -// -// This slice may be backed by mmap'ed memory. Currently, this memory -// will never be unmapped. The second result reports whether the -// backing memory is read-only. -func (r *Reader) Slice(length uint64) ([]byte, bool, error) { - if length == 0 { - return []byte{}, false, nil - } - - data, ok := r.sliceOS(length) - if ok { - return data, true, nil - } - - data = make([]byte, length) - _, err := io.ReadFull(r, data) - if err != nil { - return nil, false, err - } - return data, false, nil -} - -// SliceRO returns a slice containing the next length bytes of r -// backed by a read-only mmap'd data. If the mmap cannot be -// established (limit exceeded, region too small, etc) a nil slice -// will be returned. If mmap succeeds, it will never be unmapped. -func (r *Reader) SliceRO(length uint64) []byte { - data, ok := r.sliceOS(length) - if ok { - return data - } - return nil -} diff --git a/vendor/github.com/twitchyliquid64/golang-asm/bio/buf_mmap.go b/vendor/github.com/twitchyliquid64/golang-asm/bio/buf_mmap.go deleted file mode 100644 index 4b43d74f2..000000000 --- a/vendor/github.com/twitchyliquid64/golang-asm/bio/buf_mmap.go +++ /dev/null @@ -1,62 +0,0 @@ -// 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 darwin dragonfly freebsd linux netbsd openbsd - -package bio - -import ( - "runtime" - "sync/atomic" - "syscall" -) - -// mmapLimit is the maximum number of mmaped regions to create before -// falling back to reading into a heap-allocated slice. This exists -// because some operating systems place a limit on the number of -// distinct mapped regions per process. As of this writing: -// -// Darwin unlimited -// DragonFly 1000000 (vm.max_proc_mmap) -// FreeBSD unlimited -// Linux 65530 (vm.max_map_count) // TODO: query /proc/sys/vm/max_map_count? -// NetBSD unlimited -// OpenBSD unlimited -var mmapLimit int32 = 1<<31 - 1 - -func init() { - // Linux is the only practically concerning OS. - if runtime.GOOS == "linux" { - mmapLimit = 30000 - } -} - -func (r *Reader) sliceOS(length uint64) ([]byte, bool) { - // For small slices, don't bother with the overhead of a - // mapping, especially since we have no way to unmap it. - const threshold = 16 << 10 - if length < threshold { - return nil, false - } - - // Have we reached the mmap limit? - if atomic.AddInt32(&mmapLimit, -1) < 0 { - atomic.AddInt32(&mmapLimit, 1) - return nil, false - } - - // Page-align the offset. - off := r.Offset() - align := syscall.Getpagesize() - aoff := off &^ int64(align-1) - - data, err := syscall.Mmap(int(r.f.Fd()), aoff, int(length+uint64(off-aoff)), syscall.PROT_READ, syscall.MAP_SHARED|syscall.MAP_FILE) - if err != nil { - return nil, false - } - - data = data[off-aoff:] - r.MustSeek(int64(length), 1) - return data, true -} diff --git a/vendor/github.com/twitchyliquid64/golang-asm/bio/buf_nommap.go b/vendor/github.com/twitchyliquid64/golang-asm/bio/buf_nommap.go deleted file mode 100644 index f43c67ac2..000000000 --- a/vendor/github.com/twitchyliquid64/golang-asm/bio/buf_nommap.go +++ /dev/null @@ -1,11 +0,0 @@ -// 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 !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd - -package bio - -func (r *Reader) sliceOS(length uint64) ([]byte, bool) { - return nil, false -} diff --git a/vendor/github.com/twitchyliquid64/golang-asm/bio/must.go b/vendor/github.com/twitchyliquid64/golang-asm/bio/must.go deleted file mode 100644 index 3604b2917..000000000 --- a/vendor/github.com/twitchyliquid64/golang-asm/bio/must.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2016 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. - -package bio - -import ( - "io" - "log" -) - -// MustClose closes Closer c and calls log.Fatal if it returns a non-nil error. -func MustClose(c io.Closer) { - if err := c.Close(); err != nil { - log.Fatal(err) - } -} - -// MustWriter returns a Writer that wraps the provided Writer, -// except that it calls log.Fatal instead of returning a non-nil error. -func MustWriter(w io.Writer) io.Writer { - return mustWriter{w} -} - -type mustWriter struct { - w io.Writer -} - -func (w mustWriter) Write(b []byte) (int, error) { - n, err := w.w.Write(b) - if err != nil { - log.Fatal(err) - } - return n, nil -} - -func (w mustWriter) WriteString(s string) (int, error) { - n, err := io.WriteString(w.w, s) - if err != nil { - log.Fatal(err) - } - return n, nil -} |