github.com/MerlinKodo/gvisor@v0.0.0-20231110090155-957f62ecf90e/pkg/sentry/fsimpl/kernfs/kernfs_state_autogen.go (about) 1 // automatically generated by stateify. 2 3 package kernfs 4 5 import ( 6 "github.com/MerlinKodo/gvisor/pkg/state" 7 ) 8 9 func (l *dentryList) StateTypeName() string { 10 return "pkg/sentry/fsimpl/kernfs.dentryList" 11 } 12 13 func (l *dentryList) StateFields() []string { 14 return []string{ 15 "head", 16 "tail", 17 } 18 } 19 20 func (l *dentryList) beforeSave() {} 21 22 // +checklocksignore 23 func (l *dentryList) StateSave(stateSinkObject state.Sink) { 24 l.beforeSave() 25 stateSinkObject.Save(0, &l.head) 26 stateSinkObject.Save(1, &l.tail) 27 } 28 29 func (l *dentryList) afterLoad() {} 30 31 // +checklocksignore 32 func (l *dentryList) StateLoad(stateSourceObject state.Source) { 33 stateSourceObject.Load(0, &l.head) 34 stateSourceObject.Load(1, &l.tail) 35 } 36 37 func (e *dentryEntry) StateTypeName() string { 38 return "pkg/sentry/fsimpl/kernfs.dentryEntry" 39 } 40 41 func (e *dentryEntry) StateFields() []string { 42 return []string{ 43 "next", 44 "prev", 45 } 46 } 47 48 func (e *dentryEntry) beforeSave() {} 49 50 // +checklocksignore 51 func (e *dentryEntry) StateSave(stateSinkObject state.Sink) { 52 e.beforeSave() 53 stateSinkObject.Save(0, &e.next) 54 stateSinkObject.Save(1, &e.prev) 55 } 56 57 func (e *dentryEntry) afterLoad() {} 58 59 // +checklocksignore 60 func (e *dentryEntry) StateLoad(stateSourceObject state.Source) { 61 stateSourceObject.Load(0, &e.next) 62 stateSourceObject.Load(1, &e.prev) 63 } 64 65 func (f *DynamicBytesFile) StateTypeName() string { 66 return "pkg/sentry/fsimpl/kernfs.DynamicBytesFile" 67 } 68 69 func (f *DynamicBytesFile) StateFields() []string { 70 return []string{ 71 "InodeAttrs", 72 "InodeNoStatFS", 73 "InodeNoopRefCount", 74 "InodeNotAnonymous", 75 "InodeNotDirectory", 76 "InodeNotSymlink", 77 "InodeWatches", 78 "locks", 79 "data", 80 } 81 } 82 83 func (f *DynamicBytesFile) beforeSave() {} 84 85 // +checklocksignore 86 func (f *DynamicBytesFile) StateSave(stateSinkObject state.Sink) { 87 f.beforeSave() 88 stateSinkObject.Save(0, &f.InodeAttrs) 89 stateSinkObject.Save(1, &f.InodeNoStatFS) 90 stateSinkObject.Save(2, &f.InodeNoopRefCount) 91 stateSinkObject.Save(3, &f.InodeNotAnonymous) 92 stateSinkObject.Save(4, &f.InodeNotDirectory) 93 stateSinkObject.Save(5, &f.InodeNotSymlink) 94 stateSinkObject.Save(6, &f.InodeWatches) 95 stateSinkObject.Save(7, &f.locks) 96 stateSinkObject.Save(8, &f.data) 97 } 98 99 func (f *DynamicBytesFile) afterLoad() {} 100 101 // +checklocksignore 102 func (f *DynamicBytesFile) StateLoad(stateSourceObject state.Source) { 103 stateSourceObject.Load(0, &f.InodeAttrs) 104 stateSourceObject.Load(1, &f.InodeNoStatFS) 105 stateSourceObject.Load(2, &f.InodeNoopRefCount) 106 stateSourceObject.Load(3, &f.InodeNotAnonymous) 107 stateSourceObject.Load(4, &f.InodeNotDirectory) 108 stateSourceObject.Load(5, &f.InodeNotSymlink) 109 stateSourceObject.Load(6, &f.InodeWatches) 110 stateSourceObject.Load(7, &f.locks) 111 stateSourceObject.Load(8, &f.data) 112 } 113 114 func (fd *DynamicBytesFD) StateTypeName() string { 115 return "pkg/sentry/fsimpl/kernfs.DynamicBytesFD" 116 } 117 118 func (fd *DynamicBytesFD) StateFields() []string { 119 return []string{ 120 "FileDescriptionDefaultImpl", 121 "DynamicBytesFileDescriptionImpl", 122 "LockFD", 123 "vfsfd", 124 "inode", 125 } 126 } 127 128 func (fd *DynamicBytesFD) beforeSave() {} 129 130 // +checklocksignore 131 func (fd *DynamicBytesFD) StateSave(stateSinkObject state.Sink) { 132 fd.beforeSave() 133 stateSinkObject.Save(0, &fd.FileDescriptionDefaultImpl) 134 stateSinkObject.Save(1, &fd.DynamicBytesFileDescriptionImpl) 135 stateSinkObject.Save(2, &fd.LockFD) 136 stateSinkObject.Save(3, &fd.vfsfd) 137 stateSinkObject.Save(4, &fd.inode) 138 } 139 140 func (fd *DynamicBytesFD) afterLoad() {} 141 142 // +checklocksignore 143 func (fd *DynamicBytesFD) StateLoad(stateSourceObject state.Source) { 144 stateSourceObject.Load(0, &fd.FileDescriptionDefaultImpl) 145 stateSourceObject.Load(1, &fd.DynamicBytesFileDescriptionImpl) 146 stateSourceObject.Load(2, &fd.LockFD) 147 stateSourceObject.Load(3, &fd.vfsfd) 148 stateSourceObject.Load(4, &fd.inode) 149 } 150 151 func (s *SeekEndConfig) StateTypeName() string { 152 return "pkg/sentry/fsimpl/kernfs.SeekEndConfig" 153 } 154 155 func (s *SeekEndConfig) StateFields() []string { 156 return nil 157 } 158 159 func (g *GenericDirectoryFDOptions) StateTypeName() string { 160 return "pkg/sentry/fsimpl/kernfs.GenericDirectoryFDOptions" 161 } 162 163 func (g *GenericDirectoryFDOptions) StateFields() []string { 164 return []string{ 165 "SeekEnd", 166 } 167 } 168 169 func (g *GenericDirectoryFDOptions) beforeSave() {} 170 171 // +checklocksignore 172 func (g *GenericDirectoryFDOptions) StateSave(stateSinkObject state.Sink) { 173 g.beforeSave() 174 stateSinkObject.Save(0, &g.SeekEnd) 175 } 176 177 func (g *GenericDirectoryFDOptions) afterLoad() {} 178 179 // +checklocksignore 180 func (g *GenericDirectoryFDOptions) StateLoad(stateSourceObject state.Source) { 181 stateSourceObject.Load(0, &g.SeekEnd) 182 } 183 184 func (fd *GenericDirectoryFD) StateTypeName() string { 185 return "pkg/sentry/fsimpl/kernfs.GenericDirectoryFD" 186 } 187 188 func (fd *GenericDirectoryFD) StateFields() []string { 189 return []string{ 190 "FileDescriptionDefaultImpl", 191 "DirectoryFileDescriptionDefaultImpl", 192 "LockFD", 193 "seekEnd", 194 "vfsfd", 195 "children", 196 "off", 197 } 198 } 199 200 func (fd *GenericDirectoryFD) beforeSave() {} 201 202 // +checklocksignore 203 func (fd *GenericDirectoryFD) StateSave(stateSinkObject state.Sink) { 204 fd.beforeSave() 205 stateSinkObject.Save(0, &fd.FileDescriptionDefaultImpl) 206 stateSinkObject.Save(1, &fd.DirectoryFileDescriptionDefaultImpl) 207 stateSinkObject.Save(2, &fd.LockFD) 208 stateSinkObject.Save(3, &fd.seekEnd) 209 stateSinkObject.Save(4, &fd.vfsfd) 210 stateSinkObject.Save(5, &fd.children) 211 stateSinkObject.Save(6, &fd.off) 212 } 213 214 func (fd *GenericDirectoryFD) afterLoad() {} 215 216 // +checklocksignore 217 func (fd *GenericDirectoryFD) StateLoad(stateSourceObject state.Source) { 218 stateSourceObject.Load(0, &fd.FileDescriptionDefaultImpl) 219 stateSourceObject.Load(1, &fd.DirectoryFileDescriptionDefaultImpl) 220 stateSourceObject.Load(2, &fd.LockFD) 221 stateSourceObject.Load(3, &fd.seekEnd) 222 stateSourceObject.Load(4, &fd.vfsfd) 223 stateSourceObject.Load(5, &fd.children) 224 stateSourceObject.Load(6, &fd.off) 225 } 226 227 func (i *InodeNoopRefCount) StateTypeName() string { 228 return "pkg/sentry/fsimpl/kernfs.InodeNoopRefCount" 229 } 230 231 func (i *InodeNoopRefCount) StateFields() []string { 232 return []string{ 233 "InodeTemporary", 234 } 235 } 236 237 func (i *InodeNoopRefCount) beforeSave() {} 238 239 // +checklocksignore 240 func (i *InodeNoopRefCount) StateSave(stateSinkObject state.Sink) { 241 i.beforeSave() 242 stateSinkObject.Save(0, &i.InodeTemporary) 243 } 244 245 func (i *InodeNoopRefCount) afterLoad() {} 246 247 // +checklocksignore 248 func (i *InodeNoopRefCount) StateLoad(stateSourceObject state.Source) { 249 stateSourceObject.Load(0, &i.InodeTemporary) 250 } 251 252 func (i *InodeDirectoryNoNewChildren) StateTypeName() string { 253 return "pkg/sentry/fsimpl/kernfs.InodeDirectoryNoNewChildren" 254 } 255 256 func (i *InodeDirectoryNoNewChildren) StateFields() []string { 257 return []string{} 258 } 259 260 func (i *InodeDirectoryNoNewChildren) beforeSave() {} 261 262 // +checklocksignore 263 func (i *InodeDirectoryNoNewChildren) StateSave(stateSinkObject state.Sink) { 264 i.beforeSave() 265 } 266 267 func (i *InodeDirectoryNoNewChildren) afterLoad() {} 268 269 // +checklocksignore 270 func (i *InodeDirectoryNoNewChildren) StateLoad(stateSourceObject state.Source) { 271 } 272 273 func (i *InodeNotDirectory) StateTypeName() string { 274 return "pkg/sentry/fsimpl/kernfs.InodeNotDirectory" 275 } 276 277 func (i *InodeNotDirectory) StateFields() []string { 278 return []string{ 279 "InodeAlwaysValid", 280 } 281 } 282 283 func (i *InodeNotDirectory) beforeSave() {} 284 285 // +checklocksignore 286 func (i *InodeNotDirectory) StateSave(stateSinkObject state.Sink) { 287 i.beforeSave() 288 stateSinkObject.Save(0, &i.InodeAlwaysValid) 289 } 290 291 func (i *InodeNotDirectory) afterLoad() {} 292 293 // +checklocksignore 294 func (i *InodeNotDirectory) StateLoad(stateSourceObject state.Source) { 295 stateSourceObject.Load(0, &i.InodeAlwaysValid) 296 } 297 298 func (i *InodeNotSymlink) StateTypeName() string { 299 return "pkg/sentry/fsimpl/kernfs.InodeNotSymlink" 300 } 301 302 func (i *InodeNotSymlink) StateFields() []string { 303 return []string{} 304 } 305 306 func (i *InodeNotSymlink) beforeSave() {} 307 308 // +checklocksignore 309 func (i *InodeNotSymlink) StateSave(stateSinkObject state.Sink) { 310 i.beforeSave() 311 } 312 313 func (i *InodeNotSymlink) afterLoad() {} 314 315 // +checklocksignore 316 func (i *InodeNotSymlink) StateLoad(stateSourceObject state.Source) { 317 } 318 319 func (a *InodeAttrs) StateTypeName() string { 320 return "pkg/sentry/fsimpl/kernfs.InodeAttrs" 321 } 322 323 func (a *InodeAttrs) StateFields() []string { 324 return []string{ 325 "devMajor", 326 "devMinor", 327 "ino", 328 "mode", 329 "uid", 330 "gid", 331 "nlink", 332 "blockSize", 333 "atime", 334 "mtime", 335 "ctime", 336 } 337 } 338 339 func (a *InodeAttrs) beforeSave() {} 340 341 // +checklocksignore 342 func (a *InodeAttrs) StateSave(stateSinkObject state.Sink) { 343 a.beforeSave() 344 stateSinkObject.Save(0, &a.devMajor) 345 stateSinkObject.Save(1, &a.devMinor) 346 stateSinkObject.Save(2, &a.ino) 347 stateSinkObject.Save(3, &a.mode) 348 stateSinkObject.Save(4, &a.uid) 349 stateSinkObject.Save(5, &a.gid) 350 stateSinkObject.Save(6, &a.nlink) 351 stateSinkObject.Save(7, &a.blockSize) 352 stateSinkObject.Save(8, &a.atime) 353 stateSinkObject.Save(9, &a.mtime) 354 stateSinkObject.Save(10, &a.ctime) 355 } 356 357 func (a *InodeAttrs) afterLoad() {} 358 359 // +checklocksignore 360 func (a *InodeAttrs) StateLoad(stateSourceObject state.Source) { 361 stateSourceObject.Load(0, &a.devMajor) 362 stateSourceObject.Load(1, &a.devMinor) 363 stateSourceObject.Load(2, &a.ino) 364 stateSourceObject.Load(3, &a.mode) 365 stateSourceObject.Load(4, &a.uid) 366 stateSourceObject.Load(5, &a.gid) 367 stateSourceObject.Load(6, &a.nlink) 368 stateSourceObject.Load(7, &a.blockSize) 369 stateSourceObject.Load(8, &a.atime) 370 stateSourceObject.Load(9, &a.mtime) 371 stateSourceObject.Load(10, &a.ctime) 372 } 373 374 func (s *slot) StateTypeName() string { 375 return "pkg/sentry/fsimpl/kernfs.slot" 376 } 377 378 func (s *slot) StateFields() []string { 379 return []string{ 380 "name", 381 "inode", 382 "static", 383 "slotEntry", 384 } 385 } 386 387 func (s *slot) beforeSave() {} 388 389 // +checklocksignore 390 func (s *slot) StateSave(stateSinkObject state.Sink) { 391 s.beforeSave() 392 stateSinkObject.Save(0, &s.name) 393 stateSinkObject.Save(1, &s.inode) 394 stateSinkObject.Save(2, &s.static) 395 stateSinkObject.Save(3, &s.slotEntry) 396 } 397 398 func (s *slot) afterLoad() {} 399 400 // +checklocksignore 401 func (s *slot) StateLoad(stateSourceObject state.Source) { 402 stateSourceObject.Load(0, &s.name) 403 stateSourceObject.Load(1, &s.inode) 404 stateSourceObject.Load(2, &s.static) 405 stateSourceObject.Load(3, &s.slotEntry) 406 } 407 408 func (o *OrderedChildrenOptions) StateTypeName() string { 409 return "pkg/sentry/fsimpl/kernfs.OrderedChildrenOptions" 410 } 411 412 func (o *OrderedChildrenOptions) StateFields() []string { 413 return []string{ 414 "Writable", 415 } 416 } 417 418 func (o *OrderedChildrenOptions) beforeSave() {} 419 420 // +checklocksignore 421 func (o *OrderedChildrenOptions) StateSave(stateSinkObject state.Sink) { 422 o.beforeSave() 423 stateSinkObject.Save(0, &o.Writable) 424 } 425 426 func (o *OrderedChildrenOptions) afterLoad() {} 427 428 // +checklocksignore 429 func (o *OrderedChildrenOptions) StateLoad(stateSourceObject state.Source) { 430 stateSourceObject.Load(0, &o.Writable) 431 } 432 433 func (o *OrderedChildren) StateTypeName() string { 434 return "pkg/sentry/fsimpl/kernfs.OrderedChildren" 435 } 436 437 func (o *OrderedChildren) StateFields() []string { 438 return []string{ 439 "writable", 440 "order", 441 "set", 442 } 443 } 444 445 func (o *OrderedChildren) beforeSave() {} 446 447 // +checklocksignore 448 func (o *OrderedChildren) StateSave(stateSinkObject state.Sink) { 449 o.beforeSave() 450 stateSinkObject.Save(0, &o.writable) 451 stateSinkObject.Save(1, &o.order) 452 stateSinkObject.Save(2, &o.set) 453 } 454 455 func (o *OrderedChildren) afterLoad() {} 456 457 // +checklocksignore 458 func (o *OrderedChildren) StateLoad(stateSourceObject state.Source) { 459 stateSourceObject.Load(0, &o.writable) 460 stateSourceObject.Load(1, &o.order) 461 stateSourceObject.Load(2, &o.set) 462 } 463 464 func (i *InodeSymlink) StateTypeName() string { 465 return "pkg/sentry/fsimpl/kernfs.InodeSymlink" 466 } 467 468 func (i *InodeSymlink) StateFields() []string { 469 return []string{ 470 "InodeNotDirectory", 471 } 472 } 473 474 func (i *InodeSymlink) beforeSave() {} 475 476 // +checklocksignore 477 func (i *InodeSymlink) StateSave(stateSinkObject state.Sink) { 478 i.beforeSave() 479 stateSinkObject.Save(0, &i.InodeNotDirectory) 480 } 481 482 func (i *InodeSymlink) afterLoad() {} 483 484 // +checklocksignore 485 func (i *InodeSymlink) StateLoad(stateSourceObject state.Source) { 486 stateSourceObject.Load(0, &i.InodeNotDirectory) 487 } 488 489 func (s *StaticDirectory) StateTypeName() string { 490 return "pkg/sentry/fsimpl/kernfs.StaticDirectory" 491 } 492 493 func (s *StaticDirectory) StateFields() []string { 494 return []string{ 495 "InodeAlwaysValid", 496 "InodeAttrs", 497 "InodeDirectoryNoNewChildren", 498 "InodeNoStatFS", 499 "InodeNotAnonymous", 500 "InodeNotSymlink", 501 "InodeTemporary", 502 "InodeWatches", 503 "OrderedChildren", 504 "StaticDirectoryRefs", 505 "locks", 506 "fdOpts", 507 } 508 } 509 510 func (s *StaticDirectory) beforeSave() {} 511 512 // +checklocksignore 513 func (s *StaticDirectory) StateSave(stateSinkObject state.Sink) { 514 s.beforeSave() 515 stateSinkObject.Save(0, &s.InodeAlwaysValid) 516 stateSinkObject.Save(1, &s.InodeAttrs) 517 stateSinkObject.Save(2, &s.InodeDirectoryNoNewChildren) 518 stateSinkObject.Save(3, &s.InodeNoStatFS) 519 stateSinkObject.Save(4, &s.InodeNotAnonymous) 520 stateSinkObject.Save(5, &s.InodeNotSymlink) 521 stateSinkObject.Save(6, &s.InodeTemporary) 522 stateSinkObject.Save(7, &s.InodeWatches) 523 stateSinkObject.Save(8, &s.OrderedChildren) 524 stateSinkObject.Save(9, &s.StaticDirectoryRefs) 525 stateSinkObject.Save(10, &s.locks) 526 stateSinkObject.Save(11, &s.fdOpts) 527 } 528 529 func (s *StaticDirectory) afterLoad() {} 530 531 // +checklocksignore 532 func (s *StaticDirectory) StateLoad(stateSourceObject state.Source) { 533 stateSourceObject.Load(0, &s.InodeAlwaysValid) 534 stateSourceObject.Load(1, &s.InodeAttrs) 535 stateSourceObject.Load(2, &s.InodeDirectoryNoNewChildren) 536 stateSourceObject.Load(3, &s.InodeNoStatFS) 537 stateSourceObject.Load(4, &s.InodeNotAnonymous) 538 stateSourceObject.Load(5, &s.InodeNotSymlink) 539 stateSourceObject.Load(6, &s.InodeTemporary) 540 stateSourceObject.Load(7, &s.InodeWatches) 541 stateSourceObject.Load(8, &s.OrderedChildren) 542 stateSourceObject.Load(9, &s.StaticDirectoryRefs) 543 stateSourceObject.Load(10, &s.locks) 544 stateSourceObject.Load(11, &s.fdOpts) 545 } 546 547 func (i *InodeAlwaysValid) StateTypeName() string { 548 return "pkg/sentry/fsimpl/kernfs.InodeAlwaysValid" 549 } 550 551 func (i *InodeAlwaysValid) StateFields() []string { 552 return []string{} 553 } 554 555 func (i *InodeAlwaysValid) beforeSave() {} 556 557 // +checklocksignore 558 func (i *InodeAlwaysValid) StateSave(stateSinkObject state.Sink) { 559 i.beforeSave() 560 } 561 562 func (i *InodeAlwaysValid) afterLoad() {} 563 564 // +checklocksignore 565 func (i *InodeAlwaysValid) StateLoad(stateSourceObject state.Source) { 566 } 567 568 func (i *InodeTemporary) StateTypeName() string { 569 return "pkg/sentry/fsimpl/kernfs.InodeTemporary" 570 } 571 572 func (i *InodeTemporary) StateFields() []string { 573 return []string{} 574 } 575 576 func (i *InodeTemporary) beforeSave() {} 577 578 // +checklocksignore 579 func (i *InodeTemporary) StateSave(stateSinkObject state.Sink) { 580 i.beforeSave() 581 } 582 583 func (i *InodeTemporary) afterLoad() {} 584 585 // +checklocksignore 586 func (i *InodeTemporary) StateLoad(stateSourceObject state.Source) { 587 } 588 589 func (i *InodeNoStatFS) StateTypeName() string { 590 return "pkg/sentry/fsimpl/kernfs.InodeNoStatFS" 591 } 592 593 func (i *InodeNoStatFS) StateFields() []string { 594 return []string{} 595 } 596 597 func (i *InodeNoStatFS) beforeSave() {} 598 599 // +checklocksignore 600 func (i *InodeNoStatFS) StateSave(stateSinkObject state.Sink) { 601 i.beforeSave() 602 } 603 604 func (i *InodeNoStatFS) afterLoad() {} 605 606 // +checklocksignore 607 func (i *InodeNoStatFS) StateLoad(stateSourceObject state.Source) { 608 } 609 610 func (i *InodeWatches) StateTypeName() string { 611 return "pkg/sentry/fsimpl/kernfs.InodeWatches" 612 } 613 614 func (i *InodeWatches) StateFields() []string { 615 return []string{ 616 "watches", 617 } 618 } 619 620 func (i *InodeWatches) beforeSave() {} 621 622 // +checklocksignore 623 func (i *InodeWatches) StateSave(stateSinkObject state.Sink) { 624 i.beforeSave() 625 stateSinkObject.Save(0, &i.watches) 626 } 627 628 func (i *InodeWatches) afterLoad() {} 629 630 // +checklocksignore 631 func (i *InodeWatches) StateLoad(stateSourceObject state.Source) { 632 stateSourceObject.Load(0, &i.watches) 633 } 634 635 func (i *InodeAnonymous) StateTypeName() string { 636 return "pkg/sentry/fsimpl/kernfs.InodeAnonymous" 637 } 638 639 func (i *InodeAnonymous) StateFields() []string { 640 return []string{} 641 } 642 643 func (i *InodeAnonymous) beforeSave() {} 644 645 // +checklocksignore 646 func (i *InodeAnonymous) StateSave(stateSinkObject state.Sink) { 647 i.beforeSave() 648 } 649 650 func (i *InodeAnonymous) afterLoad() {} 651 652 // +checklocksignore 653 func (i *InodeAnonymous) StateLoad(stateSourceObject state.Source) { 654 } 655 656 func (i *InodeNotAnonymous) StateTypeName() string { 657 return "pkg/sentry/fsimpl/kernfs.InodeNotAnonymous" 658 } 659 660 func (i *InodeNotAnonymous) StateFields() []string { 661 return []string{} 662 } 663 664 func (i *InodeNotAnonymous) beforeSave() {} 665 666 // +checklocksignore 667 func (i *InodeNotAnonymous) StateSave(stateSinkObject state.Sink) { 668 i.beforeSave() 669 } 670 671 func (i *InodeNotAnonymous) afterLoad() {} 672 673 // +checklocksignore 674 func (i *InodeNotAnonymous) StateLoad(stateSourceObject state.Source) { 675 } 676 677 func (fs *Filesystem) StateTypeName() string { 678 return "pkg/sentry/fsimpl/kernfs.Filesystem" 679 } 680 681 func (fs *Filesystem) StateFields() []string { 682 return []string{ 683 "vfsfs", 684 "deferredDecRefs", 685 "nextInoMinusOne", 686 "cachedDentries", 687 "cachedDentriesLen", 688 "MaxCachedDentries", 689 "root", 690 } 691 } 692 693 func (fs *Filesystem) beforeSave() {} 694 695 // +checklocksignore 696 func (fs *Filesystem) StateSave(stateSinkObject state.Sink) { 697 fs.beforeSave() 698 stateSinkObject.Save(0, &fs.vfsfs) 699 stateSinkObject.Save(1, &fs.deferredDecRefs) 700 stateSinkObject.Save(2, &fs.nextInoMinusOne) 701 stateSinkObject.Save(3, &fs.cachedDentries) 702 stateSinkObject.Save(4, &fs.cachedDentriesLen) 703 stateSinkObject.Save(5, &fs.MaxCachedDentries) 704 stateSinkObject.Save(6, &fs.root) 705 } 706 707 func (fs *Filesystem) afterLoad() {} 708 709 // +checklocksignore 710 func (fs *Filesystem) StateLoad(stateSourceObject state.Source) { 711 stateSourceObject.Load(0, &fs.vfsfs) 712 stateSourceObject.Load(1, &fs.deferredDecRefs) 713 stateSourceObject.Load(2, &fs.nextInoMinusOne) 714 stateSourceObject.Load(3, &fs.cachedDentries) 715 stateSourceObject.Load(4, &fs.cachedDentriesLen) 716 stateSourceObject.Load(5, &fs.MaxCachedDentries) 717 stateSourceObject.Load(6, &fs.root) 718 } 719 720 func (d *Dentry) StateTypeName() string { 721 return "pkg/sentry/fsimpl/kernfs.Dentry" 722 } 723 724 func (d *Dentry) StateFields() []string { 725 return []string{ 726 "vfsd", 727 "refs", 728 "fs", 729 "flags", 730 "parent", 731 "name", 732 "cached", 733 "dentryEntry", 734 "children", 735 "inode", 736 "deleted", 737 } 738 } 739 740 func (d *Dentry) beforeSave() {} 741 742 // +checklocksignore 743 func (d *Dentry) StateSave(stateSinkObject state.Sink) { 744 d.beforeSave() 745 stateSinkObject.Save(0, &d.vfsd) 746 stateSinkObject.Save(1, &d.refs) 747 stateSinkObject.Save(2, &d.fs) 748 stateSinkObject.Save(3, &d.flags) 749 stateSinkObject.Save(4, &d.parent) 750 stateSinkObject.Save(5, &d.name) 751 stateSinkObject.Save(6, &d.cached) 752 stateSinkObject.Save(7, &d.dentryEntry) 753 stateSinkObject.Save(8, &d.children) 754 stateSinkObject.Save(9, &d.inode) 755 stateSinkObject.Save(10, &d.deleted) 756 } 757 758 // +checklocksignore 759 func (d *Dentry) StateLoad(stateSourceObject state.Source) { 760 stateSourceObject.Load(0, &d.vfsd) 761 stateSourceObject.Load(1, &d.refs) 762 stateSourceObject.Load(2, &d.fs) 763 stateSourceObject.Load(3, &d.flags) 764 stateSourceObject.Load(4, &d.parent) 765 stateSourceObject.Load(5, &d.name) 766 stateSourceObject.Load(6, &d.cached) 767 stateSourceObject.Load(7, &d.dentryEntry) 768 stateSourceObject.Load(8, &d.children) 769 stateSourceObject.Load(9, &d.inode) 770 stateSourceObject.Load(10, &d.deleted) 771 stateSourceObject.AfterLoad(d.afterLoad) 772 } 773 774 func (i *inodePlatformFile) StateTypeName() string { 775 return "pkg/sentry/fsimpl/kernfs.inodePlatformFile" 776 } 777 778 func (i *inodePlatformFile) StateFields() []string { 779 return []string{ 780 "hostFD", 781 "fdRefs", 782 "fileMapper", 783 } 784 } 785 786 func (i *inodePlatformFile) beforeSave() {} 787 788 // +checklocksignore 789 func (i *inodePlatformFile) StateSave(stateSinkObject state.Sink) { 790 i.beforeSave() 791 stateSinkObject.Save(0, &i.hostFD) 792 stateSinkObject.Save(1, &i.fdRefs) 793 stateSinkObject.Save(2, &i.fileMapper) 794 } 795 796 // +checklocksignore 797 func (i *inodePlatformFile) StateLoad(stateSourceObject state.Source) { 798 stateSourceObject.Load(0, &i.hostFD) 799 stateSourceObject.Load(1, &i.fdRefs) 800 stateSourceObject.Load(2, &i.fileMapper) 801 stateSourceObject.AfterLoad(i.afterLoad) 802 } 803 804 func (i *CachedMappable) StateTypeName() string { 805 return "pkg/sentry/fsimpl/kernfs.CachedMappable" 806 } 807 808 func (i *CachedMappable) StateFields() []string { 809 return []string{ 810 "mappings", 811 "pf", 812 } 813 } 814 815 func (i *CachedMappable) beforeSave() {} 816 817 // +checklocksignore 818 func (i *CachedMappable) StateSave(stateSinkObject state.Sink) { 819 i.beforeSave() 820 stateSinkObject.Save(0, &i.mappings) 821 stateSinkObject.Save(1, &i.pf) 822 } 823 824 func (i *CachedMappable) afterLoad() {} 825 826 // +checklocksignore 827 func (i *CachedMappable) StateLoad(stateSourceObject state.Source) { 828 stateSourceObject.Load(0, &i.mappings) 829 stateSourceObject.Load(1, &i.pf) 830 } 831 832 func (l *slotList) StateTypeName() string { 833 return "pkg/sentry/fsimpl/kernfs.slotList" 834 } 835 836 func (l *slotList) StateFields() []string { 837 return []string{ 838 "head", 839 "tail", 840 } 841 } 842 843 func (l *slotList) beforeSave() {} 844 845 // +checklocksignore 846 func (l *slotList) StateSave(stateSinkObject state.Sink) { 847 l.beforeSave() 848 stateSinkObject.Save(0, &l.head) 849 stateSinkObject.Save(1, &l.tail) 850 } 851 852 func (l *slotList) afterLoad() {} 853 854 // +checklocksignore 855 func (l *slotList) StateLoad(stateSourceObject state.Source) { 856 stateSourceObject.Load(0, &l.head) 857 stateSourceObject.Load(1, &l.tail) 858 } 859 860 func (e *slotEntry) StateTypeName() string { 861 return "pkg/sentry/fsimpl/kernfs.slotEntry" 862 } 863 864 func (e *slotEntry) StateFields() []string { 865 return []string{ 866 "next", 867 "prev", 868 } 869 } 870 871 func (e *slotEntry) beforeSave() {} 872 873 // +checklocksignore 874 func (e *slotEntry) StateSave(stateSinkObject state.Sink) { 875 e.beforeSave() 876 stateSinkObject.Save(0, &e.next) 877 stateSinkObject.Save(1, &e.prev) 878 } 879 880 func (e *slotEntry) afterLoad() {} 881 882 // +checklocksignore 883 func (e *slotEntry) StateLoad(stateSourceObject state.Source) { 884 stateSourceObject.Load(0, &e.next) 885 stateSourceObject.Load(1, &e.prev) 886 } 887 888 func (r *StaticDirectoryRefs) StateTypeName() string { 889 return "pkg/sentry/fsimpl/kernfs.StaticDirectoryRefs" 890 } 891 892 func (r *StaticDirectoryRefs) StateFields() []string { 893 return []string{ 894 "refCount", 895 } 896 } 897 898 func (r *StaticDirectoryRefs) beforeSave() {} 899 900 // +checklocksignore 901 func (r *StaticDirectoryRefs) StateSave(stateSinkObject state.Sink) { 902 r.beforeSave() 903 stateSinkObject.Save(0, &r.refCount) 904 } 905 906 // +checklocksignore 907 func (r *StaticDirectoryRefs) StateLoad(stateSourceObject state.Source) { 908 stateSourceObject.Load(0, &r.refCount) 909 stateSourceObject.AfterLoad(r.afterLoad) 910 } 911 912 func (s *StaticSymlink) StateTypeName() string { 913 return "pkg/sentry/fsimpl/kernfs.StaticSymlink" 914 } 915 916 func (s *StaticSymlink) StateFields() []string { 917 return []string{ 918 "InodeAttrs", 919 "InodeNoopRefCount", 920 "InodeNotAnonymous", 921 "InodeSymlink", 922 "InodeNoStatFS", 923 "InodeWatches", 924 "target", 925 } 926 } 927 928 func (s *StaticSymlink) beforeSave() {} 929 930 // +checklocksignore 931 func (s *StaticSymlink) StateSave(stateSinkObject state.Sink) { 932 s.beforeSave() 933 stateSinkObject.Save(0, &s.InodeAttrs) 934 stateSinkObject.Save(1, &s.InodeNoopRefCount) 935 stateSinkObject.Save(2, &s.InodeNotAnonymous) 936 stateSinkObject.Save(3, &s.InodeSymlink) 937 stateSinkObject.Save(4, &s.InodeNoStatFS) 938 stateSinkObject.Save(5, &s.InodeWatches) 939 stateSinkObject.Save(6, &s.target) 940 } 941 942 func (s *StaticSymlink) afterLoad() {} 943 944 // +checklocksignore 945 func (s *StaticSymlink) StateLoad(stateSourceObject state.Source) { 946 stateSourceObject.Load(0, &s.InodeAttrs) 947 stateSourceObject.Load(1, &s.InodeNoopRefCount) 948 stateSourceObject.Load(2, &s.InodeNotAnonymous) 949 stateSourceObject.Load(3, &s.InodeSymlink) 950 stateSourceObject.Load(4, &s.InodeNoStatFS) 951 stateSourceObject.Load(5, &s.InodeWatches) 952 stateSourceObject.Load(6, &s.target) 953 } 954 955 func (dir *syntheticDirectory) StateTypeName() string { 956 return "pkg/sentry/fsimpl/kernfs.syntheticDirectory" 957 } 958 959 func (dir *syntheticDirectory) StateFields() []string { 960 return []string{ 961 "InodeAlwaysValid", 962 "InodeAttrs", 963 "InodeNoStatFS", 964 "InodeNotAnonymous", 965 "InodeNotSymlink", 966 "InodeWatches", 967 "OrderedChildren", 968 "syntheticDirectoryRefs", 969 "locks", 970 } 971 } 972 973 func (dir *syntheticDirectory) beforeSave() {} 974 975 // +checklocksignore 976 func (dir *syntheticDirectory) StateSave(stateSinkObject state.Sink) { 977 dir.beforeSave() 978 stateSinkObject.Save(0, &dir.InodeAlwaysValid) 979 stateSinkObject.Save(1, &dir.InodeAttrs) 980 stateSinkObject.Save(2, &dir.InodeNoStatFS) 981 stateSinkObject.Save(3, &dir.InodeNotAnonymous) 982 stateSinkObject.Save(4, &dir.InodeNotSymlink) 983 stateSinkObject.Save(5, &dir.InodeWatches) 984 stateSinkObject.Save(6, &dir.OrderedChildren) 985 stateSinkObject.Save(7, &dir.syntheticDirectoryRefs) 986 stateSinkObject.Save(8, &dir.locks) 987 } 988 989 func (dir *syntheticDirectory) afterLoad() {} 990 991 // +checklocksignore 992 func (dir *syntheticDirectory) StateLoad(stateSourceObject state.Source) { 993 stateSourceObject.Load(0, &dir.InodeAlwaysValid) 994 stateSourceObject.Load(1, &dir.InodeAttrs) 995 stateSourceObject.Load(2, &dir.InodeNoStatFS) 996 stateSourceObject.Load(3, &dir.InodeNotAnonymous) 997 stateSourceObject.Load(4, &dir.InodeNotSymlink) 998 stateSourceObject.Load(5, &dir.InodeWatches) 999 stateSourceObject.Load(6, &dir.OrderedChildren) 1000 stateSourceObject.Load(7, &dir.syntheticDirectoryRefs) 1001 stateSourceObject.Load(8, &dir.locks) 1002 } 1003 1004 func (r *syntheticDirectoryRefs) StateTypeName() string { 1005 return "pkg/sentry/fsimpl/kernfs.syntheticDirectoryRefs" 1006 } 1007 1008 func (r *syntheticDirectoryRefs) StateFields() []string { 1009 return []string{ 1010 "refCount", 1011 } 1012 } 1013 1014 func (r *syntheticDirectoryRefs) beforeSave() {} 1015 1016 // +checklocksignore 1017 func (r *syntheticDirectoryRefs) StateSave(stateSinkObject state.Sink) { 1018 r.beforeSave() 1019 stateSinkObject.Save(0, &r.refCount) 1020 } 1021 1022 // +checklocksignore 1023 func (r *syntheticDirectoryRefs) StateLoad(stateSourceObject state.Source) { 1024 stateSourceObject.Load(0, &r.refCount) 1025 stateSourceObject.AfterLoad(r.afterLoad) 1026 } 1027 1028 func init() { 1029 state.Register((*dentryList)(nil)) 1030 state.Register((*dentryEntry)(nil)) 1031 state.Register((*DynamicBytesFile)(nil)) 1032 state.Register((*DynamicBytesFD)(nil)) 1033 state.Register((*SeekEndConfig)(nil)) 1034 state.Register((*GenericDirectoryFDOptions)(nil)) 1035 state.Register((*GenericDirectoryFD)(nil)) 1036 state.Register((*InodeNoopRefCount)(nil)) 1037 state.Register((*InodeDirectoryNoNewChildren)(nil)) 1038 state.Register((*InodeNotDirectory)(nil)) 1039 state.Register((*InodeNotSymlink)(nil)) 1040 state.Register((*InodeAttrs)(nil)) 1041 state.Register((*slot)(nil)) 1042 state.Register((*OrderedChildrenOptions)(nil)) 1043 state.Register((*OrderedChildren)(nil)) 1044 state.Register((*InodeSymlink)(nil)) 1045 state.Register((*StaticDirectory)(nil)) 1046 state.Register((*InodeAlwaysValid)(nil)) 1047 state.Register((*InodeTemporary)(nil)) 1048 state.Register((*InodeNoStatFS)(nil)) 1049 state.Register((*InodeWatches)(nil)) 1050 state.Register((*InodeAnonymous)(nil)) 1051 state.Register((*InodeNotAnonymous)(nil)) 1052 state.Register((*Filesystem)(nil)) 1053 state.Register((*Dentry)(nil)) 1054 state.Register((*inodePlatformFile)(nil)) 1055 state.Register((*CachedMappable)(nil)) 1056 state.Register((*slotList)(nil)) 1057 state.Register((*slotEntry)(nil)) 1058 state.Register((*StaticDirectoryRefs)(nil)) 1059 state.Register((*StaticSymlink)(nil)) 1060 state.Register((*syntheticDirectory)(nil)) 1061 state.Register((*syntheticDirectoryRefs)(nil)) 1062 }