diff options
Diffstat (limited to 'pkg/sentry/devices/memdev/null.go')
-rw-r--r-- | pkg/sentry/devices/memdev/null.go | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/pkg/sentry/devices/memdev/null.go b/pkg/sentry/devices/memdev/null.go deleted file mode 100644 index 33d060d02..000000000 --- a/pkg/sentry/devices/memdev/null.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2020 The gVisor Authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package memdev - -import ( - "io" - - "gvisor.dev/gvisor/pkg/context" - "gvisor.dev/gvisor/pkg/sentry/vfs" - "gvisor.dev/gvisor/pkg/usermem" -) - -const nullDevMinor = 3 - -// nullDevice implements vfs.Device for /dev/null. -type nullDevice struct{} - -// Open implements vfs.Device.Open. -func (nullDevice) Open(ctx context.Context, mnt *vfs.Mount, vfsd *vfs.Dentry, opts vfs.OpenOptions) (*vfs.FileDescription, error) { - fd := &nullFD{} - if err := fd.vfsfd.Init(fd, opts.Flags, mnt, vfsd, &vfs.FileDescriptionOptions{ - UseDentryMetadata: true, - }); err != nil { - return nil, err - } - return &fd.vfsfd, nil -} - -// nullFD implements vfs.FileDescriptionImpl for /dev/null. -type nullFD struct { - vfsfd vfs.FileDescription - vfs.FileDescriptionDefaultImpl - vfs.DentryMetadataFileDescriptionImpl -} - -// Release implements vfs.FileDescriptionImpl.Release. -func (fd *nullFD) Release() { - // noop -} - -// PRead implements vfs.FileDescriptionImpl.PRead. -func (fd *nullFD) PRead(ctx context.Context, dst usermem.IOSequence, offset int64, opts vfs.ReadOptions) (int64, error) { - return 0, io.EOF -} - -// Read implements vfs.FileDescriptionImpl.Read. -func (fd *nullFD) Read(ctx context.Context, dst usermem.IOSequence, opts vfs.ReadOptions) (int64, error) { - return 0, io.EOF -} - -// PWrite implements vfs.FileDescriptionImpl.PWrite. -func (fd *nullFD) PWrite(ctx context.Context, src usermem.IOSequence, offset int64, opts vfs.WriteOptions) (int64, error) { - return src.NumBytes(), nil -} - -// Write implements vfs.FileDescriptionImpl.Write. -func (fd *nullFD) Write(ctx context.Context, src usermem.IOSequence, opts vfs.WriteOptions) (int64, error) { - return src.NumBytes(), nil -} - -// Seek implements vfs.FileDescriptionImpl.Seek. -func (fd *nullFD) Seek(ctx context.Context, offset int64, whence int32) (int64, error) { - return 0, nil -} |