// automatically generated by stateify. package vfs import ( "gvisor.dev/gvisor/pkg/state" ) func (a *anonFilesystemType) StateTypeName() string { return "pkg/sentry/vfs.anonFilesystemType" } func (a *anonFilesystemType) StateFields() []string { return []string{} } func (a *anonFilesystemType) beforeSave() {} func (a *anonFilesystemType) StateSave(stateSinkObject state.Sink) { a.beforeSave() } func (a *anonFilesystemType) afterLoad() {} func (a *anonFilesystemType) StateLoad(stateSourceObject state.Source) { } func (fs *anonFilesystem) StateTypeName() string { return "pkg/sentry/vfs.anonFilesystem" } func (fs *anonFilesystem) StateFields() []string { return []string{ "vfsfs", "devMinor", } } func (fs *anonFilesystem) beforeSave() {} func (fs *anonFilesystem) StateSave(stateSinkObject state.Sink) { fs.beforeSave() stateSinkObject.Save(0, &fs.vfsfs) stateSinkObject.Save(1, &fs.devMinor) } func (fs *anonFilesystem) afterLoad() {} func (fs *anonFilesystem) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &fs.vfsfs) stateSourceObject.Load(1, &fs.devMinor) } func (d *anonDentry) StateTypeName() string { return "pkg/sentry/vfs.anonDentry" } func (d *anonDentry) StateFields() []string { return []string{ "vfsd", "name", } } func (d *anonDentry) beforeSave() {} func (d *anonDentry) StateSave(stateSinkObject state.Sink) { d.beforeSave() stateSinkObject.Save(0, &d.vfsd) stateSinkObject.Save(1, &d.name) } func (d *anonDentry) afterLoad() {} func (d *anonDentry) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &d.vfsd) stateSourceObject.Load(1, &d.name) } func (d *Dentry) StateTypeName() string { return "pkg/sentry/vfs.Dentry" } func (d *Dentry) StateFields() []string { return []string{ "dead", "mounts", "impl", } } func (d *Dentry) beforeSave() {} func (d *Dentry) StateSave(stateSinkObject state.Sink) { d.beforeSave() stateSinkObject.Save(0, &d.dead) stateSinkObject.Save(1, &d.mounts) stateSinkObject.Save(2, &d.impl) } func (d *Dentry) afterLoad() {} func (d *Dentry) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &d.dead) stateSourceObject.Load(1, &d.mounts) stateSourceObject.Load(2, &d.impl) } func (kind *DeviceKind) StateTypeName() string { return "pkg/sentry/vfs.DeviceKind" } func (kind *DeviceKind) StateFields() []string { return nil } func (d *devTuple) StateTypeName() string { return "pkg/sentry/vfs.devTuple" } func (d *devTuple) StateFields() []string { return []string{ "kind", "major", "minor", } } func (d *devTuple) beforeSave() {} func (d *devTuple) StateSave(stateSinkObject state.Sink) { d.beforeSave() stateSinkObject.Save(0, &d.kind) stateSinkObject.Save(1, &d.major) stateSinkObject.Save(2, &d.minor) } func (d *devTuple) afterLoad() {} func (d *devTuple) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &d.kind) stateSourceObject.Load(1, &d.major) stateSourceObject.Load(2, &d.minor) } func (r *registeredDevice) StateTypeName() string { return "pkg/sentry/vfs.registeredDevice" } func (r *registeredDevice) StateFields() []string { return []string{ "dev", "opts", } } func (r *registeredDevice) beforeSave() {} func (r *registeredDevice) StateSave(stateSinkObject state.Sink) { r.beforeSave() stateSinkObject.Save(0, &r.dev) stateSinkObject.Save(1, &r.opts) } func (r *registeredDevice) afterLoad() {} func (r *registeredDevice) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &r.dev) stateSourceObject.Load(1, &r.opts) } func (r *RegisterDeviceOptions) StateTypeName() string { return "pkg/sentry/vfs.RegisterDeviceOptions" } func (r *RegisterDeviceOptions) StateFields() []string { return []string{ "GroupName", } } func (r *RegisterDeviceOptions) beforeSave() {} func (r *RegisterDeviceOptions) StateSave(stateSinkObject state.Sink) { r.beforeSave() stateSinkObject.Save(0, &r.GroupName) } func (r *RegisterDeviceOptions) afterLoad() {} func (r *RegisterDeviceOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &r.GroupName) } func (ep *EpollInstance) StateTypeName() string { return "pkg/sentry/vfs.EpollInstance" } func (ep *EpollInstance) StateFields() []string { return []string{ "vfsfd", "FileDescriptionDefaultImpl", "DentryMetadataFileDescriptionImpl", "NoLockFD", "q", "interest", "ready", } } func (ep *EpollInstance) beforeSave() {} func (ep *EpollInstance) StateSave(stateSinkObject state.Sink) { ep.beforeSave() stateSinkObject.Save(0, &ep.vfsfd) stateSinkObject.Save(1, &ep.FileDescriptionDefaultImpl) stateSinkObject.Save(2, &ep.DentryMetadataFileDescriptionImpl) stateSinkObject.Save(3, &ep.NoLockFD) stateSinkObject.Save(4, &ep.q) stateSinkObject.Save(5, &ep.interest) stateSinkObject.Save(6, &ep.ready) } func (ep *EpollInstance) afterLoad() {} func (ep *EpollInstance) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &ep.vfsfd) stateSourceObject.Load(1, &ep.FileDescriptionDefaultImpl) stateSourceObject.Load(2, &ep.DentryMetadataFileDescriptionImpl) stateSourceObject.Load(3, &ep.NoLockFD) stateSourceObject.Load(4, &ep.q) stateSourceObject.Load(5, &ep.interest) stateSourceObject.Load(6, &ep.ready) } func (e *epollInterestKey) StateTypeName() string { return "pkg/sentry/vfs.epollInterestKey" } func (e *epollInterestKey) StateFields() []string { return []string{ "file", "num", } } func (e *epollInterestKey) beforeSave() {} func (e *epollInterestKey) StateSave(stateSinkObject state.Sink) { e.beforeSave() stateSinkObject.Save(0, &e.file) stateSinkObject.Save(1, &e.num) } func (e *epollInterestKey) afterLoad() {} func (e *epollInterestKey) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &e.file) stateSourceObject.Load(1, &e.num) } func (epi *epollInterest) StateTypeName() string { return "pkg/sentry/vfs.epollInterest" } func (epi *epollInterest) StateFields() []string { return []string{ "epoll", "key", "waiter", "mask", "ready", "epollInterestEntry", "userData", } } func (epi *epollInterest) beforeSave() {} func (epi *epollInterest) StateSave(stateSinkObject state.Sink) { epi.beforeSave() stateSinkObject.Save(0, &epi.epoll) stateSinkObject.Save(1, &epi.key) stateSinkObject.Save(2, &epi.waiter) stateSinkObject.Save(3, &epi.mask) stateSinkObject.Save(4, &epi.ready) stateSinkObject.Save(5, &epi.epollInterestEntry) stateSinkObject.Save(6, &epi.userData) } func (epi *epollInterest) StateLoad(stateSourceObject state.Source) { stateSourceObject.LoadWait(0, &epi.epoll) stateSourceObject.Load(1, &epi.key) stateSourceObject.Load(2, &epi.waiter) stateSourceObject.Load(3, &epi.mask) stateSourceObject.Load(4, &epi.ready) stateSourceObject.Load(5, &epi.epollInterestEntry) stateSourceObject.Load(6, &epi.userData) stateSourceObject.AfterLoad(epi.afterLoad) } func (l *epollInterestList) StateTypeName() string { return "pkg/sentry/vfs.epollInterestList" } func (l *epollInterestList) StateFields() []string { return []string{ "head", "tail", } } func (l *epollInterestList) beforeSave() {} func (l *epollInterestList) StateSave(stateSinkObject state.Sink) { l.beforeSave() stateSinkObject.Save(0, &l.head) stateSinkObject.Save(1, &l.tail) } func (l *epollInterestList) afterLoad() {} func (l *epollInterestList) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &l.head) stateSourceObject.Load(1, &l.tail) } func (e *epollInterestEntry) StateTypeName() string { return "pkg/sentry/vfs.epollInterestEntry" } func (e *epollInterestEntry) StateFields() []string { return []string{ "next", "prev", } } func (e *epollInterestEntry) beforeSave() {} func (e *epollInterestEntry) StateSave(stateSinkObject state.Sink) { e.beforeSave() stateSinkObject.Save(0, &e.next) stateSinkObject.Save(1, &e.prev) } func (e *epollInterestEntry) afterLoad() {} func (e *epollInterestEntry) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &e.next) stateSourceObject.Load(1, &e.prev) } func (l *eventList) StateTypeName() string { return "pkg/sentry/vfs.eventList" } func (l *eventList) StateFields() []string { return []string{ "head", "tail", } } func (l *eventList) beforeSave() {} func (l *eventList) StateSave(stateSinkObject state.Sink) { l.beforeSave() stateSinkObject.Save(0, &l.head) stateSinkObject.Save(1, &l.tail) } func (l *eventList) afterLoad() {} func (l *eventList) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &l.head) stateSourceObject.Load(1, &l.tail) } func (e *eventEntry) StateTypeName() string { return "pkg/sentry/vfs.eventEntry" } func (e *eventEntry) StateFields() []string { return []string{ "next", "prev", } } func (e *eventEntry) beforeSave() {} func (e *eventEntry) StateSave(stateSinkObject state.Sink) { e.beforeSave() stateSinkObject.Save(0, &e.next) stateSinkObject.Save(1, &e.prev) } func (e *eventEntry) afterLoad() {} func (e *eventEntry) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &e.next) stateSourceObject.Load(1, &e.prev) } func (fd *FileDescription) StateTypeName() string { return "pkg/sentry/vfs.FileDescription" } func (fd *FileDescription) StateFields() []string { return []string{ "FileDescriptionRefs", "statusFlags", "asyncHandler", "epolls", "vd", "opts", "readable", "writable", "usedLockBSD", "impl", } } func (fd *FileDescription) beforeSave() {} func (fd *FileDescription) StateSave(stateSinkObject state.Sink) { fd.beforeSave() stateSinkObject.Save(0, &fd.FileDescriptionRefs) stateSinkObject.Save(1, &fd.statusFlags) stateSinkObject.Save(2, &fd.asyncHandler) stateSinkObject.Save(3, &fd.epolls) stateSinkObject.Save(4, &fd.vd) stateSinkObject.Save(5, &fd.opts) stateSinkObject.Save(6, &fd.readable) stateSinkObject.Save(7, &fd.writable) stateSinkObject.Save(8, &fd.usedLockBSD) stateSinkObject.Save(9, &fd.impl) } func (fd *FileDescription) afterLoad() {} func (fd *FileDescription) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &fd.FileDescriptionRefs) stateSourceObject.Load(1, &fd.statusFlags) stateSourceObject.Load(2, &fd.asyncHandler) stateSourceObject.Load(3, &fd.epolls) stateSourceObject.Load(4, &fd.vd) stateSourceObject.Load(5, &fd.opts) stateSourceObject.Load(6, &fd.readable) stateSourceObject.Load(7, &fd.writable) stateSourceObject.Load(8, &fd.usedLockBSD) stateSourceObject.Load(9, &fd.impl) } func (f *FileDescriptionOptions) StateTypeName() string { return "pkg/sentry/vfs.FileDescriptionOptions" } func (f *FileDescriptionOptions) StateFields() []string { return []string{ "AllowDirectIO", "DenyPRead", "DenyPWrite", "UseDentryMetadata", } } func (f *FileDescriptionOptions) beforeSave() {} func (f *FileDescriptionOptions) StateSave(stateSinkObject state.Sink) { f.beforeSave() stateSinkObject.Save(0, &f.AllowDirectIO) stateSinkObject.Save(1, &f.DenyPRead) stateSinkObject.Save(2, &f.DenyPWrite) stateSinkObject.Save(3, &f.UseDentryMetadata) } func (f *FileDescriptionOptions) afterLoad() {} func (f *FileDescriptionOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &f.AllowDirectIO) stateSourceObject.Load(1, &f.DenyPRead) stateSourceObject.Load(2, &f.DenyPWrite) stateSourceObject.Load(3, &f.UseDentryMetadata) } func (d *Dirent) StateTypeName() string { return "pkg/sentry/vfs.Dirent" } func (d *Dirent) StateFields() []string { return []string{ "Name", "Type", "Ino", "NextOff", } } func (d *Dirent) beforeSave() {} func (d *Dirent) StateSave(stateSinkObject state.Sink) { d.beforeSave() stateSinkObject.Save(0, &d.Name) stateSinkObject.Save(1, &d.Type) stateSinkObject.Save(2, &d.Ino) stateSinkObject.Save(3, &d.NextOff) } func (d *Dirent) afterLoad() {} func (d *Dirent) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &d.Name) stateSourceObject.Load(1, &d.Type) stateSourceObject.Load(2, &d.Ino) stateSourceObject.Load(3, &d.NextOff) } func (f *FileDescriptionDefaultImpl) StateTypeName() string { return "pkg/sentry/vfs.FileDescriptionDefaultImpl" } func (f *FileDescriptionDefaultImpl) StateFields() []string { return []string{} } func (f *FileDescriptionDefaultImpl) beforeSave() {} func (f *FileDescriptionDefaultImpl) StateSave(stateSinkObject state.Sink) { f.beforeSave() } func (f *FileDescriptionDefaultImpl) afterLoad() {} func (f *FileDescriptionDefaultImpl) StateLoad(stateSourceObject state.Source) { } func (d *DirectoryFileDescriptionDefaultImpl) StateTypeName() string { return "pkg/sentry/vfs.DirectoryFileDescriptionDefaultImpl" } func (d *DirectoryFileDescriptionDefaultImpl) StateFields() []string { return []string{} } func (d *DirectoryFileDescriptionDefaultImpl) beforeSave() {} func (d *DirectoryFileDescriptionDefaultImpl) StateSave(stateSinkObject state.Sink) { d.beforeSave() } func (d *DirectoryFileDescriptionDefaultImpl) afterLoad() {} func (d *DirectoryFileDescriptionDefaultImpl) StateLoad(stateSourceObject state.Source) { } func (d *DentryMetadataFileDescriptionImpl) StateTypeName() string { return "pkg/sentry/vfs.DentryMetadataFileDescriptionImpl" } func (d *DentryMetadataFileDescriptionImpl) StateFields() []string { return []string{} } func (d *DentryMetadataFileDescriptionImpl) beforeSave() {} func (d *DentryMetadataFileDescriptionImpl) StateSave(stateSinkObject state.Sink) { d.beforeSave() } func (d *DentryMetadataFileDescriptionImpl) afterLoad() {} func (d *DentryMetadataFileDescriptionImpl) StateLoad(stateSourceObject state.Source) { } func (s *StaticData) StateTypeName() string { return "pkg/sentry/vfs.StaticData" } func (s *StaticData) StateFields() []string { return []string{ "Data", } } func (s *StaticData) beforeSave() {} func (s *StaticData) StateSave(stateSinkObject state.Sink) { s.beforeSave() stateSinkObject.Save(0, &s.Data) } func (s *StaticData) afterLoad() {} func (s *StaticData) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &s.Data) } func (fd *DynamicBytesFileDescriptionImpl) StateTypeName() string { return "pkg/sentry/vfs.DynamicBytesFileDescriptionImpl" } func (fd *DynamicBytesFileDescriptionImpl) StateFields() []string { return []string{ "data", "buf", "off", "lastRead", } } func (fd *DynamicBytesFileDescriptionImpl) beforeSave() {} func (fd *DynamicBytesFileDescriptionImpl) StateSave(stateSinkObject state.Sink) { fd.beforeSave() var bufValue []byte = fd.saveBuf() stateSinkObject.SaveValue(1, bufValue) stateSinkObject.Save(0, &fd.data) stateSinkObject.Save(2, &fd.off) stateSinkObject.Save(3, &fd.lastRead) } func (fd *DynamicBytesFileDescriptionImpl) afterLoad() {} func (fd *DynamicBytesFileDescriptionImpl) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &fd.data) stateSourceObject.Load(2, &fd.off) stateSourceObject.Load(3, &fd.lastRead) stateSourceObject.LoadValue(1, new([]byte), func(y interface{}) { fd.loadBuf(y.([]byte)) }) } func (fd *LockFD) StateTypeName() string { return "pkg/sentry/vfs.LockFD" } func (fd *LockFD) StateFields() []string { return []string{ "locks", } } func (fd *LockFD) beforeSave() {} func (fd *LockFD) StateSave(stateSinkObject state.Sink) { fd.beforeSave() stateSinkObject.Save(0, &fd.locks) } func (fd *LockFD) afterLoad() {} func (fd *LockFD) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &fd.locks) } func (n *NoLockFD) StateTypeName() string { return "pkg/sentry/vfs.NoLockFD" } func (n *NoLockFD) StateFields() []string { return []string{} } func (n *NoLockFD) beforeSave() {} func (n *NoLockFD) StateSave(stateSinkObject state.Sink) { n.beforeSave() } func (n *NoLockFD) afterLoad() {} func (n *NoLockFD) StateLoad(stateSourceObject state.Source) { } func (r *FileDescriptionRefs) StateTypeName() string { return "pkg/sentry/vfs.FileDescriptionRefs" } func (r *FileDescriptionRefs) StateFields() []string { return []string{ "refCount", } } func (r *FileDescriptionRefs) beforeSave() {} func (r *FileDescriptionRefs) StateSave(stateSinkObject state.Sink) { r.beforeSave() stateSinkObject.Save(0, &r.refCount) } func (r *FileDescriptionRefs) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &r.refCount) stateSourceObject.AfterLoad(r.afterLoad) } func (fs *Filesystem) StateTypeName() string { return "pkg/sentry/vfs.Filesystem" } func (fs *Filesystem) StateFields() []string { return []string{ "FilesystemRefs", "vfs", "fsType", "impl", } } func (fs *Filesystem) beforeSave() {} func (fs *Filesystem) StateSave(stateSinkObject state.Sink) { fs.beforeSave() stateSinkObject.Save(0, &fs.FilesystemRefs) stateSinkObject.Save(1, &fs.vfs) stateSinkObject.Save(2, &fs.fsType) stateSinkObject.Save(3, &fs.impl) } func (fs *Filesystem) afterLoad() {} func (fs *Filesystem) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &fs.FilesystemRefs) stateSourceObject.Load(1, &fs.vfs) stateSourceObject.Load(2, &fs.fsType) stateSourceObject.Load(3, &fs.impl) } func (p *PrependPathAtVFSRootError) StateTypeName() string { return "pkg/sentry/vfs.PrependPathAtVFSRootError" } func (p *PrependPathAtVFSRootError) StateFields() []string { return []string{} } func (p *PrependPathAtVFSRootError) beforeSave() {} func (p *PrependPathAtVFSRootError) StateSave(stateSinkObject state.Sink) { p.beforeSave() } func (p *PrependPathAtVFSRootError) afterLoad() {} func (p *PrependPathAtVFSRootError) StateLoad(stateSourceObject state.Source) { } func (p *PrependPathAtNonMountRootError) StateTypeName() string { return "pkg/sentry/vfs.PrependPathAtNonMountRootError" } func (p *PrependPathAtNonMountRootError) StateFields() []string { return []string{} } func (p *PrependPathAtNonMountRootError) beforeSave() {} func (p *PrependPathAtNonMountRootError) StateSave(stateSinkObject state.Sink) { p.beforeSave() } func (p *PrependPathAtNonMountRootError) afterLoad() {} func (p *PrependPathAtNonMountRootError) StateLoad(stateSourceObject state.Source) { } func (p *PrependPathSyntheticError) StateTypeName() string { return "pkg/sentry/vfs.PrependPathSyntheticError" } func (p *PrependPathSyntheticError) StateFields() []string { return []string{} } func (p *PrependPathSyntheticError) beforeSave() {} func (p *PrependPathSyntheticError) StateSave(stateSinkObject state.Sink) { p.beforeSave() } func (p *PrependPathSyntheticError) afterLoad() {} func (p *PrependPathSyntheticError) StateLoad(stateSourceObject state.Source) { } func (r *FilesystemRefs) StateTypeName() string { return "pkg/sentry/vfs.FilesystemRefs" } func (r *FilesystemRefs) StateFields() []string { return []string{ "refCount", } } func (r *FilesystemRefs) beforeSave() {} func (r *FilesystemRefs) StateSave(stateSinkObject state.Sink) { r.beforeSave() stateSinkObject.Save(0, &r.refCount) } func (r *FilesystemRefs) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &r.refCount) stateSourceObject.AfterLoad(r.afterLoad) } func (r *registeredFilesystemType) StateTypeName() string { return "pkg/sentry/vfs.registeredFilesystemType" } func (r *registeredFilesystemType) StateFields() []string { return []string{ "fsType", "opts", } } func (r *registeredFilesystemType) beforeSave() {} func (r *registeredFilesystemType) StateSave(stateSinkObject state.Sink) { r.beforeSave() stateSinkObject.Save(0, &r.fsType) stateSinkObject.Save(1, &r.opts) } func (r *registeredFilesystemType) afterLoad() {} func (r *registeredFilesystemType) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &r.fsType) stateSourceObject.Load(1, &r.opts) } func (r *RegisterFilesystemTypeOptions) StateTypeName() string { return "pkg/sentry/vfs.RegisterFilesystemTypeOptions" } func (r *RegisterFilesystemTypeOptions) StateFields() []string { return []string{ "AllowUserMount", "AllowUserList", "RequiresDevice", } } func (r *RegisterFilesystemTypeOptions) beforeSave() {} func (r *RegisterFilesystemTypeOptions) StateSave(stateSinkObject state.Sink) { r.beforeSave() stateSinkObject.Save(0, &r.AllowUserMount) stateSinkObject.Save(1, &r.AllowUserList) stateSinkObject.Save(2, &r.RequiresDevice) } func (r *RegisterFilesystemTypeOptions) afterLoad() {} func (r *RegisterFilesystemTypeOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &r.AllowUserMount) stateSourceObject.Load(1, &r.AllowUserList) stateSourceObject.Load(2, &r.RequiresDevice) } func (e *EventType) StateTypeName() string { return "pkg/sentry/vfs.EventType" } func (e *EventType) StateFields() []string { return nil } func (i *Inotify) StateTypeName() string { return "pkg/sentry/vfs.Inotify" } func (i *Inotify) StateFields() []string { return []string{ "vfsfd", "FileDescriptionDefaultImpl", "DentryMetadataFileDescriptionImpl", "NoLockFD", "id", "queue", "events", "scratch", "nextWatchMinusOne", "watches", } } func (i *Inotify) beforeSave() {} func (i *Inotify) StateSave(stateSinkObject state.Sink) { i.beforeSave() stateSinkObject.Save(0, &i.vfsfd) stateSinkObject.Save(1, &i.FileDescriptionDefaultImpl) stateSinkObject.Save(2, &i.DentryMetadataFileDescriptionImpl) stateSinkObject.Save(3, &i.NoLockFD) stateSinkObject.Save(4, &i.id) stateSinkObject.Save(5, &i.queue) stateSinkObject.Save(6, &i.events) stateSinkObject.Save(7, &i.scratch) stateSinkObject.Save(8, &i.nextWatchMinusOne) stateSinkObject.Save(9, &i.watches) } func (i *Inotify) afterLoad() {} func (i *Inotify) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &i.vfsfd) stateSourceObject.Load(1, &i.FileDescriptionDefaultImpl) stateSourceObject.Load(2, &i.DentryMetadataFileDescriptionImpl) stateSourceObject.Load(3, &i.NoLockFD) stateSourceObject.Load(4, &i.id) stateSourceObject.Load(5, &i.queue) stateSourceObject.Load(6, &i.events) stateSourceObject.Load(7, &i.scratch) stateSourceObject.Load(8, &i.nextWatchMinusOne) stateSourceObject.Load(9, &i.watches) } func (w *Watches) StateTypeName() string { return "pkg/sentry/vfs.Watches" } func (w *Watches) StateFields() []string { return []string{ "ws", } } func (w *Watches) beforeSave() {} func (w *Watches) StateSave(stateSinkObject state.Sink) { w.beforeSave() stateSinkObject.Save(0, &w.ws) } func (w *Watches) afterLoad() {} func (w *Watches) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &w.ws) } func (w *Watch) StateTypeName() string { return "pkg/sentry/vfs.Watch" } func (w *Watch) StateFields() []string { return []string{ "owner", "wd", "target", "mask", "expired", } } func (w *Watch) beforeSave() {} func (w *Watch) StateSave(stateSinkObject state.Sink) { w.beforeSave() stateSinkObject.Save(0, &w.owner) stateSinkObject.Save(1, &w.wd) stateSinkObject.Save(2, &w.target) stateSinkObject.Save(3, &w.mask) stateSinkObject.Save(4, &w.expired) } func (w *Watch) afterLoad() {} func (w *Watch) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &w.owner) stateSourceObject.Load(1, &w.wd) stateSourceObject.Load(2, &w.target) stateSourceObject.Load(3, &w.mask) stateSourceObject.Load(4, &w.expired) } func (e *Event) StateTypeName() string { return "pkg/sentry/vfs.Event" } func (e *Event) StateFields() []string { return []string{ "eventEntry", "wd", "mask", "cookie", "len", "name", } } func (e *Event) beforeSave() {} func (e *Event) StateSave(stateSinkObject state.Sink) { e.beforeSave() stateSinkObject.Save(0, &e.eventEntry) stateSinkObject.Save(1, &e.wd) stateSinkObject.Save(2, &e.mask) stateSinkObject.Save(3, &e.cookie) stateSinkObject.Save(4, &e.len) stateSinkObject.Save(5, &e.name) } func (e *Event) afterLoad() {} func (e *Event) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &e.eventEntry) stateSourceObject.Load(1, &e.wd) stateSourceObject.Load(2, &e.mask) stateSourceObject.Load(3, &e.cookie) stateSourceObject.Load(4, &e.len) stateSourceObject.Load(5, &e.name) } func (fl *FileLocks) StateTypeName() string { return "pkg/sentry/vfs.FileLocks" } func (fl *FileLocks) StateFields() []string { return []string{ "bsd", "posix", } } func (fl *FileLocks) beforeSave() {} func (fl *FileLocks) StateSave(stateSinkObject state.Sink) { fl.beforeSave() stateSinkObject.Save(0, &fl.bsd) stateSinkObject.Save(1, &fl.posix) } func (fl *FileLocks) afterLoad() {} func (fl *FileLocks) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &fl.bsd) stateSourceObject.Load(1, &fl.posix) } func (mnt *Mount) StateTypeName() string { return "pkg/sentry/vfs.Mount" } func (mnt *Mount) StateFields() []string { return []string{ "vfs", "fs", "root", "ID", "Flags", "key", "ns", "refs", "children", "umounted", "writers", } } func (mnt *Mount) beforeSave() {} func (mnt *Mount) StateSave(stateSinkObject state.Sink) { mnt.beforeSave() var keyValue VirtualDentry = mnt.saveKey() stateSinkObject.SaveValue(5, keyValue) stateSinkObject.Save(0, &mnt.vfs) stateSinkObject.Save(1, &mnt.fs) stateSinkObject.Save(2, &mnt.root) stateSinkObject.Save(3, &mnt.ID) stateSinkObject.Save(4, &mnt.Flags) stateSinkObject.Save(6, &mnt.ns) stateSinkObject.Save(7, &mnt.refs) stateSinkObject.Save(8, &mnt.children) stateSinkObject.Save(9, &mnt.umounted) stateSinkObject.Save(10, &mnt.writers) } func (mnt *Mount) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &mnt.vfs) stateSourceObject.Load(1, &mnt.fs) stateSourceObject.Load(2, &mnt.root) stateSourceObject.Load(3, &mnt.ID) stateSourceObject.Load(4, &mnt.Flags) stateSourceObject.Load(6, &mnt.ns) stateSourceObject.Load(7, &mnt.refs) stateSourceObject.Load(8, &mnt.children) stateSourceObject.Load(9, &mnt.umounted) stateSourceObject.Load(10, &mnt.writers) stateSourceObject.LoadValue(5, new(VirtualDentry), func(y interface{}) { mnt.loadKey(y.(VirtualDentry)) }) stateSourceObject.AfterLoad(mnt.afterLoad) } func (mntns *MountNamespace) StateTypeName() string { return "pkg/sentry/vfs.MountNamespace" } func (mntns *MountNamespace) StateFields() []string { return []string{ "MountNamespaceRefs", "Owner", "root", "mountpoints", } } func (mntns *MountNamespace) beforeSave() {} func (mntns *MountNamespace) StateSave(stateSinkObject state.Sink) { mntns.beforeSave() stateSinkObject.Save(0, &mntns.MountNamespaceRefs) stateSinkObject.Save(1, &mntns.Owner) stateSinkObject.Save(2, &mntns.root) stateSinkObject.Save(3, &mntns.mountpoints) } func (mntns *MountNamespace) afterLoad() {} func (mntns *MountNamespace) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &mntns.MountNamespaceRefs) stateSourceObject.Load(1, &mntns.Owner) stateSourceObject.Load(2, &mntns.root) stateSourceObject.Load(3, &mntns.mountpoints) } func (u *umountRecursiveOptions) StateTypeName() string { return "pkg/sentry/vfs.umountRecursiveOptions" } func (u *umountRecursiveOptions) StateFields() []string { return []string{ "eager", "disconnectHierarchy", } } func (u *umountRecursiveOptions) beforeSave() {} func (u *umountRecursiveOptions) StateSave(stateSinkObject state.Sink) { u.beforeSave() stateSinkObject.Save(0, &u.eager) stateSinkObject.Save(1, &u.disconnectHierarchy) } func (u *umountRecursiveOptions) afterLoad() {} func (u *umountRecursiveOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &u.eager) stateSourceObject.Load(1, &u.disconnectHierarchy) } func (r *MountNamespaceRefs) StateTypeName() string { return "pkg/sentry/vfs.MountNamespaceRefs" } func (r *MountNamespaceRefs) StateFields() []string { return []string{ "refCount", } } func (r *MountNamespaceRefs) beforeSave() {} func (r *MountNamespaceRefs) StateSave(stateSinkObject state.Sink) { r.beforeSave() stateSinkObject.Save(0, &r.refCount) } func (r *MountNamespaceRefs) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &r.refCount) stateSourceObject.AfterLoad(r.afterLoad) } func (g *GetDentryOptions) StateTypeName() string { return "pkg/sentry/vfs.GetDentryOptions" } func (g *GetDentryOptions) StateFields() []string { return []string{ "CheckSearchable", } } func (g *GetDentryOptions) beforeSave() {} func (g *GetDentryOptions) StateSave(stateSinkObject state.Sink) { g.beforeSave() stateSinkObject.Save(0, &g.CheckSearchable) } func (g *GetDentryOptions) afterLoad() {} func (g *GetDentryOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &g.CheckSearchable) } func (m *MkdirOptions) StateTypeName() string { return "pkg/sentry/vfs.MkdirOptions" } func (m *MkdirOptions) StateFields() []string { return []string{ "Mode", "ForSyntheticMountpoint", } } func (m *MkdirOptions) beforeSave() {} func (m *MkdirOptions) StateSave(stateSinkObject state.Sink) { m.beforeSave() stateSinkObject.Save(0, &m.Mode) stateSinkObject.Save(1, &m.ForSyntheticMountpoint) } func (m *MkdirOptions) afterLoad() {} func (m *MkdirOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &m.Mode) stateSourceObject.Load(1, &m.ForSyntheticMountpoint) } func (m *MknodOptions) StateTypeName() string { return "pkg/sentry/vfs.MknodOptions" } func (m *MknodOptions) StateFields() []string { return []string{ "Mode", "DevMajor", "DevMinor", "Endpoint", } } func (m *MknodOptions) beforeSave() {} func (m *MknodOptions) StateSave(stateSinkObject state.Sink) { m.beforeSave() stateSinkObject.Save(0, &m.Mode) stateSinkObject.Save(1, &m.DevMajor) stateSinkObject.Save(2, &m.DevMinor) stateSinkObject.Save(3, &m.Endpoint) } func (m *MknodOptions) afterLoad() {} func (m *MknodOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &m.Mode) stateSourceObject.Load(1, &m.DevMajor) stateSourceObject.Load(2, &m.DevMinor) stateSourceObject.Load(3, &m.Endpoint) } func (m *MountFlags) StateTypeName() string { return "pkg/sentry/vfs.MountFlags" } func (m *MountFlags) StateFields() []string { return []string{ "NoExec", "NoATime", "NoDev", "NoSUID", } } func (m *MountFlags) beforeSave() {} func (m *MountFlags) StateSave(stateSinkObject state.Sink) { m.beforeSave() stateSinkObject.Save(0, &m.NoExec) stateSinkObject.Save(1, &m.NoATime) stateSinkObject.Save(2, &m.NoDev) stateSinkObject.Save(3, &m.NoSUID) } func (m *MountFlags) afterLoad() {} func (m *MountFlags) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &m.NoExec) stateSourceObject.Load(1, &m.NoATime) stateSourceObject.Load(2, &m.NoDev) stateSourceObject.Load(3, &m.NoSUID) } func (m *MountOptions) StateTypeName() string { return "pkg/sentry/vfs.MountOptions" } func (m *MountOptions) StateFields() []string { return []string{ "Flags", "ReadOnly", "GetFilesystemOptions", "InternalMount", } } func (m *MountOptions) beforeSave() {} func (m *MountOptions) StateSave(stateSinkObject state.Sink) { m.beforeSave() stateSinkObject.Save(0, &m.Flags) stateSinkObject.Save(1, &m.ReadOnly) stateSinkObject.Save(2, &m.GetFilesystemOptions) stateSinkObject.Save(3, &m.InternalMount) } func (m *MountOptions) afterLoad() {} func (m *MountOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &m.Flags) stateSourceObject.Load(1, &m.ReadOnly) stateSourceObject.Load(2, &m.GetFilesystemOptions) stateSourceObject.Load(3, &m.InternalMount) } func (o *OpenOptions) StateTypeName() string { return "pkg/sentry/vfs.OpenOptions" } func (o *OpenOptions) StateFields() []string { return []string{ "Flags", "Mode", "FileExec", } } func (o *OpenOptions) beforeSave() {} func (o *OpenOptions) StateSave(stateSinkObject state.Sink) { o.beforeSave() stateSinkObject.Save(0, &o.Flags) stateSinkObject.Save(1, &o.Mode) stateSinkObject.Save(2, &o.FileExec) } func (o *OpenOptions) afterLoad() {} func (o *OpenOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &o.Flags) stateSourceObject.Load(1, &o.Mode) stateSourceObject.Load(2, &o.FileExec) } func (r *ReadOptions) StateTypeName() string { return "pkg/sentry/vfs.ReadOptions" } func (r *ReadOptions) StateFields() []string { return []string{ "Flags", } } func (r *ReadOptions) beforeSave() {} func (r *ReadOptions) StateSave(stateSinkObject state.Sink) { r.beforeSave() stateSinkObject.Save(0, &r.Flags) } func (r *ReadOptions) afterLoad() {} func (r *ReadOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &r.Flags) } func (r *RenameOptions) StateTypeName() string { return "pkg/sentry/vfs.RenameOptions" } func (r *RenameOptions) StateFields() []string { return []string{ "Flags", "MustBeDir", } } func (r *RenameOptions) beforeSave() {} func (r *RenameOptions) StateSave(stateSinkObject state.Sink) { r.beforeSave() stateSinkObject.Save(0, &r.Flags) stateSinkObject.Save(1, &r.MustBeDir) } func (r *RenameOptions) afterLoad() {} func (r *RenameOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &r.Flags) stateSourceObject.Load(1, &r.MustBeDir) } func (s *SetStatOptions) StateTypeName() string { return "pkg/sentry/vfs.SetStatOptions" } func (s *SetStatOptions) StateFields() []string { return []string{ "Stat", "NeedWritePerm", } } func (s *SetStatOptions) beforeSave() {} func (s *SetStatOptions) StateSave(stateSinkObject state.Sink) { s.beforeSave() stateSinkObject.Save(0, &s.Stat) stateSinkObject.Save(1, &s.NeedWritePerm) } func (s *SetStatOptions) afterLoad() {} func (s *SetStatOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &s.Stat) stateSourceObject.Load(1, &s.NeedWritePerm) } func (b *BoundEndpointOptions) StateTypeName() string { return "pkg/sentry/vfs.BoundEndpointOptions" } func (b *BoundEndpointOptions) StateFields() []string { return []string{ "Addr", } } func (b *BoundEndpointOptions) beforeSave() {} func (b *BoundEndpointOptions) StateSave(stateSinkObject state.Sink) { b.beforeSave() stateSinkObject.Save(0, &b.Addr) } func (b *BoundEndpointOptions) afterLoad() {} func (b *BoundEndpointOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &b.Addr) } func (g *GetXattrOptions) StateTypeName() string { return "pkg/sentry/vfs.GetXattrOptions" } func (g *GetXattrOptions) StateFields() []string { return []string{ "Name", "Size", } } func (g *GetXattrOptions) beforeSave() {} func (g *GetXattrOptions) StateSave(stateSinkObject state.Sink) { g.beforeSave() stateSinkObject.Save(0, &g.Name) stateSinkObject.Save(1, &g.Size) } func (g *GetXattrOptions) afterLoad() {} func (g *GetXattrOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &g.Name) stateSourceObject.Load(1, &g.Size) } func (s *SetXattrOptions) StateTypeName() string { return "pkg/sentry/vfs.SetXattrOptions" } func (s *SetXattrOptions) StateFields() []string { return []string{ "Name", "Value", "Flags", } } func (s *SetXattrOptions) beforeSave() {} func (s *SetXattrOptions) StateSave(stateSinkObject state.Sink) { s.beforeSave() stateSinkObject.Save(0, &s.Name) stateSinkObject.Save(1, &s.Value) stateSinkObject.Save(2, &s.Flags) } func (s *SetXattrOptions) afterLoad() {} func (s *SetXattrOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &s.Name) stateSourceObject.Load(1, &s.Value) stateSourceObject.Load(2, &s.Flags) } func (s *StatOptions) StateTypeName() string { return "pkg/sentry/vfs.StatOptions" } func (s *StatOptions) StateFields() []string { return []string{ "Mask", "Sync", } } func (s *StatOptions) beforeSave() {} func (s *StatOptions) StateSave(stateSinkObject state.Sink) { s.beforeSave() stateSinkObject.Save(0, &s.Mask) stateSinkObject.Save(1, &s.Sync) } func (s *StatOptions) afterLoad() {} func (s *StatOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &s.Mask) stateSourceObject.Load(1, &s.Sync) } func (u *UmountOptions) StateTypeName() string { return "pkg/sentry/vfs.UmountOptions" } func (u *UmountOptions) StateFields() []string { return []string{ "Flags", } } func (u *UmountOptions) beforeSave() {} func (u *UmountOptions) StateSave(stateSinkObject state.Sink) { u.beforeSave() stateSinkObject.Save(0, &u.Flags) } func (u *UmountOptions) afterLoad() {} func (u *UmountOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &u.Flags) } func (w *WriteOptions) StateTypeName() string { return "pkg/sentry/vfs.WriteOptions" } func (w *WriteOptions) StateFields() []string { return []string{ "Flags", } } func (w *WriteOptions) beforeSave() {} func (w *WriteOptions) StateSave(stateSinkObject state.Sink) { w.beforeSave() stateSinkObject.Save(0, &w.Flags) } func (w *WriteOptions) afterLoad() {} func (w *WriteOptions) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &w.Flags) } func (a *AccessTypes) StateTypeName() string { return "pkg/sentry/vfs.AccessTypes" } func (a *AccessTypes) StateFields() []string { return nil } func (rp *ResolvingPath) StateTypeName() string { return "pkg/sentry/vfs.ResolvingPath" } func (rp *ResolvingPath) StateFields() []string { return []string{ "vfs", "root", "mount", "start", "pit", "flags", "mustBeDir", "mustBeDirOrig", "symlinks", "symlinksOrig", "curPart", "numOrigParts", "creds", "nextMount", "nextStart", "absSymlinkTarget", "parts", "origParts", } } func (rp *ResolvingPath) beforeSave() {} func (rp *ResolvingPath) StateSave(stateSinkObject state.Sink) { rp.beforeSave() stateSinkObject.Save(0, &rp.vfs) stateSinkObject.Save(1, &rp.root) stateSinkObject.Save(2, &rp.mount) stateSinkObject.Save(3, &rp.start) stateSinkObject.Save(4, &rp.pit) stateSinkObject.Save(5, &rp.flags) stateSinkObject.Save(6, &rp.mustBeDir) stateSinkObject.Save(7, &rp.mustBeDirOrig) stateSinkObject.Save(8, &rp.symlinks) stateSinkObject.Save(9, &rp.symlinksOrig) stateSinkObject.Save(10, &rp.curPart) stateSinkObject.Save(11, &rp.numOrigParts) stateSinkObject.Save(12, &rp.creds) stateSinkObject.Save(13, &rp.nextMount) stateSinkObject.Save(14, &rp.nextStart) stateSinkObject.Save(15, &rp.absSymlinkTarget) stateSinkObject.Save(16, &rp.parts) stateSinkObject.Save(17, &rp.origParts) } func (rp *ResolvingPath) afterLoad() {} func (rp *ResolvingPath) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &rp.vfs) stateSourceObject.Load(1, &rp.root) stateSourceObject.Load(2, &rp.mount) stateSourceObject.Load(3, &rp.start) stateSourceObject.Load(4, &rp.pit) stateSourceObject.Load(5, &rp.flags) stateSourceObject.Load(6, &rp.mustBeDir) stateSourceObject.Load(7, &rp.mustBeDirOrig) stateSourceObject.Load(8, &rp.symlinks) stateSourceObject.Load(9, &rp.symlinksOrig) stateSourceObject.Load(10, &rp.curPart) stateSourceObject.Load(11, &rp.numOrigParts) stateSourceObject.Load(12, &rp.creds) stateSourceObject.Load(13, &rp.nextMount) stateSourceObject.Load(14, &rp.nextStart) stateSourceObject.Load(15, &rp.absSymlinkTarget) stateSourceObject.Load(16, &rp.parts) stateSourceObject.Load(17, &rp.origParts) } func (r *resolveMountRootOrJumpError) StateTypeName() string { return "pkg/sentry/vfs.resolveMountRootOrJumpError" } func (r *resolveMountRootOrJumpError) StateFields() []string { return []string{} } func (r *resolveMountRootOrJumpError) beforeSave() {} func (r *resolveMountRootOrJumpError) StateSave(stateSinkObject state.Sink) { r.beforeSave() } func (r *resolveMountRootOrJumpError) afterLoad() {} func (r *resolveMountRootOrJumpError) StateLoad(stateSourceObject state.Source) { } func (r *resolveMountPointError) StateTypeName() string { return "pkg/sentry/vfs.resolveMountPointError" } func (r *resolveMountPointError) StateFields() []string { return []string{} } func (r *resolveMountPointError) beforeSave() {} func (r *resolveMountPointError) StateSave(stateSinkObject state.Sink) { r.beforeSave() } func (r *resolveMountPointError) afterLoad() {} func (r *resolveMountPointError) StateLoad(stateSourceObject state.Source) { } func (r *resolveAbsSymlinkError) StateTypeName() string { return "pkg/sentry/vfs.resolveAbsSymlinkError" } func (r *resolveAbsSymlinkError) StateFields() []string { return []string{} } func (r *resolveAbsSymlinkError) beforeSave() {} func (r *resolveAbsSymlinkError) StateSave(stateSinkObject state.Sink) { r.beforeSave() } func (r *resolveAbsSymlinkError) afterLoad() {} func (r *resolveAbsSymlinkError) StateLoad(stateSourceObject state.Source) { } func (vfs *VirtualFilesystem) StateTypeName() string { return "pkg/sentry/vfs.VirtualFilesystem" } func (vfs *VirtualFilesystem) StateFields() []string { return []string{ "mounts", "mountpoints", "lastMountID", "anonMount", "devices", "anonBlockDevMinorNext", "anonBlockDevMinor", "fsTypes", "filesystems", } } func (vfs *VirtualFilesystem) beforeSave() {} func (vfs *VirtualFilesystem) StateSave(stateSinkObject state.Sink) { vfs.beforeSave() var mountsValue []*Mount = vfs.saveMounts() stateSinkObject.SaveValue(0, mountsValue) stateSinkObject.Save(1, &vfs.mountpoints) stateSinkObject.Save(2, &vfs.lastMountID) stateSinkObject.Save(3, &vfs.anonMount) stateSinkObject.Save(4, &vfs.devices) stateSinkObject.Save(5, &vfs.anonBlockDevMinorNext) stateSinkObject.Save(6, &vfs.anonBlockDevMinor) stateSinkObject.Save(7, &vfs.fsTypes) stateSinkObject.Save(8, &vfs.filesystems) } func (vfs *VirtualFilesystem) afterLoad() {} func (vfs *VirtualFilesystem) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(1, &vfs.mountpoints) stateSourceObject.Load(2, &vfs.lastMountID) stateSourceObject.Load(3, &vfs.anonMount) stateSourceObject.Load(4, &vfs.devices) stateSourceObject.Load(5, &vfs.anonBlockDevMinorNext) stateSourceObject.Load(6, &vfs.anonBlockDevMinor) stateSourceObject.Load(7, &vfs.fsTypes) stateSourceObject.Load(8, &vfs.filesystems) stateSourceObject.LoadValue(0, new([]*Mount), func(y interface{}) { vfs.loadMounts(y.([]*Mount)) }) } func (p *PathOperation) StateTypeName() string { return "pkg/sentry/vfs.PathOperation" } func (p *PathOperation) StateFields() []string { return []string{ "Root", "Start", "Path", "FollowFinalSymlink", } } func (p *PathOperation) beforeSave() {} func (p *PathOperation) StateSave(stateSinkObject state.Sink) { p.beforeSave() stateSinkObject.Save(0, &p.Root) stateSinkObject.Save(1, &p.Start) stateSinkObject.Save(2, &p.Path) stateSinkObject.Save(3, &p.FollowFinalSymlink) } func (p *PathOperation) afterLoad() {} func (p *PathOperation) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &p.Root) stateSourceObject.Load(1, &p.Start) stateSourceObject.Load(2, &p.Path) stateSourceObject.Load(3, &p.FollowFinalSymlink) } func (vd *VirtualDentry) StateTypeName() string { return "pkg/sentry/vfs.VirtualDentry" } func (vd *VirtualDentry) StateFields() []string { return []string{ "mount", "dentry", } } func (vd *VirtualDentry) beforeSave() {} func (vd *VirtualDentry) StateSave(stateSinkObject state.Sink) { vd.beforeSave() stateSinkObject.Save(0, &vd.mount) stateSinkObject.Save(1, &vd.dentry) } func (vd *VirtualDentry) afterLoad() {} func (vd *VirtualDentry) StateLoad(stateSourceObject state.Source) { stateSourceObject.Load(0, &vd.mount) stateSourceObject.Load(1, &vd.dentry) } func init() { state.Register((*anonFilesystemType)(nil)) state.Register((*anonFilesystem)(nil)) state.Register((*anonDentry)(nil)) state.Register((*Dentry)(nil)) state.Register((*DeviceKind)(nil)) state.Register((*devTuple)(nil)) state.Register((*registeredDevice)(nil)) state.Register((*RegisterDeviceOptions)(nil)) state.Register((*EpollInstance)(nil)) state.Register((*epollInterestKey)(nil)) state.Register((*epollInterest)(nil)) state.Register((*epollInterestList)(nil)) state.Register((*epollInterestEntry)(nil)) state.Register((*eventList)(nil)) state.Register((*eventEntry)(nil)) state.Register((*FileDescription)(nil)) state.Register((*FileDescriptionOptions)(nil)) state.Register((*Dirent)(nil)) state.Register((*FileDescriptionDefaultImpl)(nil)) state.Register((*DirectoryFileDescriptionDefaultImpl)(nil)) state.Register((*DentryMetadataFileDescriptionImpl)(nil)) state.Register((*StaticData)(nil)) state.Register((*DynamicBytesFileDescriptionImpl)(nil)) state.Register((*LockFD)(nil)) state.Register((*NoLockFD)(nil)) state.Register((*FileDescriptionRefs)(nil)) state.Register((*Filesystem)(nil)) state.Register((*PrependPathAtVFSRootError)(nil)) state.Register((*PrependPathAtNonMountRootError)(nil)) state.Register((*PrependPathSyntheticError)(nil)) state.Register((*FilesystemRefs)(nil)) state.Register((*registeredFilesystemType)(nil)) state.Register((*RegisterFilesystemTypeOptions)(nil)) state.Register((*EventType)(nil)) state.Register((*Inotify)(nil)) state.Register((*Watches)(nil)) state.Register((*Watch)(nil)) state.Register((*Event)(nil)) state.Register((*FileLocks)(nil)) state.Register((*Mount)(nil)) state.Register((*MountNamespace)(nil)) state.Register((*umountRecursiveOptions)(nil)) state.Register((*MountNamespaceRefs)(nil)) state.Register((*GetDentryOptions)(nil)) state.Register((*MkdirOptions)(nil)) state.Register((*MknodOptions)(nil)) state.Register((*MountFlags)(nil)) state.Register((*MountOptions)(nil)) state.Register((*OpenOptions)(nil)) state.Register((*ReadOptions)(nil)) state.Register((*RenameOptions)(nil)) state.Register((*SetStatOptions)(nil)) state.Register((*BoundEndpointOptions)(nil)) state.Register((*GetXattrOptions)(nil)) state.Register((*SetXattrOptions)(nil)) state.Register((*StatOptions)(nil)) state.Register((*UmountOptions)(nil)) state.Register((*WriteOptions)(nil)) state.Register((*AccessTypes)(nil)) state.Register((*ResolvingPath)(nil)) state.Register((*resolveMountRootOrJumpError)(nil)) state.Register((*resolveMountPointError)(nil)) state.Register((*resolveAbsSymlinkError)(nil)) state.Register((*VirtualFilesystem)(nil)) state.Register((*PathOperation)(nil)) state.Register((*VirtualDentry)(nil)) }