github.com/metacubex/gvisor@v0.0.0-20240320004321-933faba989ec/pkg/sentry/fsimpl/fuse/fuse_state_autogen.go (about) 1 // automatically generated by stateify. 2 3 package fuse 4 5 import ( 6 "context" 7 8 "github.com/metacubex/gvisor/pkg/state" 9 ) 10 11 func (conn *connection) StateTypeName() string { 12 return "pkg/sentry/fsimpl/fuse.connection" 13 } 14 15 func (conn *connection) StateFields() []string { 16 return []string{ 17 "fd", 18 "attributeVersion", 19 "initialized", 20 "initializedChan", 21 "connected", 22 "connInitError", 23 "connInitSuccess", 24 "aborted", 25 "numWaiting", 26 "asyncNum", 27 "asyncCongestionThreshold", 28 "asyncNumMax", 29 "maxRead", 30 "maxWrite", 31 "maxPages", 32 "maxActiveRequests", 33 "minor", 34 "atomicOTrunc", 35 "asyncRead", 36 "writebackCache", 37 "bigWrites", 38 "dontMask", 39 "noOpen", 40 } 41 } 42 43 func (conn *connection) beforeSave() {} 44 45 // +checklocksignore 46 func (conn *connection) StateSave(stateSinkObject state.Sink) { 47 conn.beforeSave() 48 var initializedChanValue bool 49 initializedChanValue = conn.saveInitializedChan() 50 stateSinkObject.SaveValue(3, initializedChanValue) 51 stateSinkObject.Save(0, &conn.fd) 52 stateSinkObject.Save(1, &conn.attributeVersion) 53 stateSinkObject.Save(2, &conn.initialized) 54 stateSinkObject.Save(4, &conn.connected) 55 stateSinkObject.Save(5, &conn.connInitError) 56 stateSinkObject.Save(6, &conn.connInitSuccess) 57 stateSinkObject.Save(7, &conn.aborted) 58 stateSinkObject.Save(8, &conn.numWaiting) 59 stateSinkObject.Save(9, &conn.asyncNum) 60 stateSinkObject.Save(10, &conn.asyncCongestionThreshold) 61 stateSinkObject.Save(11, &conn.asyncNumMax) 62 stateSinkObject.Save(12, &conn.maxRead) 63 stateSinkObject.Save(13, &conn.maxWrite) 64 stateSinkObject.Save(14, &conn.maxPages) 65 stateSinkObject.Save(15, &conn.maxActiveRequests) 66 stateSinkObject.Save(16, &conn.minor) 67 stateSinkObject.Save(17, &conn.atomicOTrunc) 68 stateSinkObject.Save(18, &conn.asyncRead) 69 stateSinkObject.Save(19, &conn.writebackCache) 70 stateSinkObject.Save(20, &conn.bigWrites) 71 stateSinkObject.Save(21, &conn.dontMask) 72 stateSinkObject.Save(22, &conn.noOpen) 73 } 74 75 func (conn *connection) afterLoad(context.Context) {} 76 77 // +checklocksignore 78 func (conn *connection) StateLoad(ctx context.Context, stateSourceObject state.Source) { 79 stateSourceObject.Load(0, &conn.fd) 80 stateSourceObject.Load(1, &conn.attributeVersion) 81 stateSourceObject.Load(2, &conn.initialized) 82 stateSourceObject.Load(4, &conn.connected) 83 stateSourceObject.Load(5, &conn.connInitError) 84 stateSourceObject.Load(6, &conn.connInitSuccess) 85 stateSourceObject.Load(7, &conn.aborted) 86 stateSourceObject.Load(8, &conn.numWaiting) 87 stateSourceObject.Load(9, &conn.asyncNum) 88 stateSourceObject.Load(10, &conn.asyncCongestionThreshold) 89 stateSourceObject.Load(11, &conn.asyncNumMax) 90 stateSourceObject.Load(12, &conn.maxRead) 91 stateSourceObject.Load(13, &conn.maxWrite) 92 stateSourceObject.Load(14, &conn.maxPages) 93 stateSourceObject.Load(15, &conn.maxActiveRequests) 94 stateSourceObject.Load(16, &conn.minor) 95 stateSourceObject.Load(17, &conn.atomicOTrunc) 96 stateSourceObject.Load(18, &conn.asyncRead) 97 stateSourceObject.Load(19, &conn.writebackCache) 98 stateSourceObject.Load(20, &conn.bigWrites) 99 stateSourceObject.Load(21, &conn.dontMask) 100 stateSourceObject.Load(22, &conn.noOpen) 101 stateSourceObject.LoadValue(3, new(bool), func(y any) { conn.loadInitializedChan(ctx, y.(bool)) }) 102 } 103 104 func (f *fuseDevice) StateTypeName() string { 105 return "pkg/sentry/fsimpl/fuse.fuseDevice" 106 } 107 108 func (f *fuseDevice) StateFields() []string { 109 return []string{} 110 } 111 112 func (f *fuseDevice) beforeSave() {} 113 114 // +checklocksignore 115 func (f *fuseDevice) StateSave(stateSinkObject state.Sink) { 116 f.beforeSave() 117 } 118 119 func (f *fuseDevice) afterLoad(context.Context) {} 120 121 // +checklocksignore 122 func (f *fuseDevice) StateLoad(ctx context.Context, stateSourceObject state.Source) { 123 } 124 125 func (fd *DeviceFD) StateTypeName() string { 126 return "pkg/sentry/fsimpl/fuse.DeviceFD" 127 } 128 129 func (fd *DeviceFD) StateFields() []string { 130 return []string{ 131 "vfsfd", 132 "FileDescriptionDefaultImpl", 133 "DentryMetadataFileDescriptionImpl", 134 "NoLockFD", 135 "waitQueue", 136 "fullQueueCh", 137 "nextOpID", 138 "queue", 139 "numActiveRequests", 140 "completions", 141 "writeBuf", 142 "conn", 143 } 144 } 145 146 func (fd *DeviceFD) beforeSave() {} 147 148 // +checklocksignore 149 func (fd *DeviceFD) StateSave(stateSinkObject state.Sink) { 150 fd.beforeSave() 151 var fullQueueChValue int 152 fullQueueChValue = fd.saveFullQueueCh() 153 stateSinkObject.SaveValue(5, fullQueueChValue) 154 stateSinkObject.Save(0, &fd.vfsfd) 155 stateSinkObject.Save(1, &fd.FileDescriptionDefaultImpl) 156 stateSinkObject.Save(2, &fd.DentryMetadataFileDescriptionImpl) 157 stateSinkObject.Save(3, &fd.NoLockFD) 158 stateSinkObject.Save(4, &fd.waitQueue) 159 stateSinkObject.Save(6, &fd.nextOpID) 160 stateSinkObject.Save(7, &fd.queue) 161 stateSinkObject.Save(8, &fd.numActiveRequests) 162 stateSinkObject.Save(9, &fd.completions) 163 stateSinkObject.Save(10, &fd.writeBuf) 164 stateSinkObject.Save(11, &fd.conn) 165 } 166 167 func (fd *DeviceFD) afterLoad(context.Context) {} 168 169 // +checklocksignore 170 func (fd *DeviceFD) StateLoad(ctx context.Context, stateSourceObject state.Source) { 171 stateSourceObject.Load(0, &fd.vfsfd) 172 stateSourceObject.Load(1, &fd.FileDescriptionDefaultImpl) 173 stateSourceObject.Load(2, &fd.DentryMetadataFileDescriptionImpl) 174 stateSourceObject.Load(3, &fd.NoLockFD) 175 stateSourceObject.Load(4, &fd.waitQueue) 176 stateSourceObject.Load(6, &fd.nextOpID) 177 stateSourceObject.Load(7, &fd.queue) 178 stateSourceObject.Load(8, &fd.numActiveRequests) 179 stateSourceObject.Load(9, &fd.completions) 180 stateSourceObject.Load(10, &fd.writeBuf) 181 stateSourceObject.Load(11, &fd.conn) 182 stateSourceObject.LoadValue(5, new(int), func(y any) { fd.loadFullQueueCh(ctx, y.(int)) }) 183 } 184 185 func (dir *directoryFD) StateTypeName() string { 186 return "pkg/sentry/fsimpl/fuse.directoryFD" 187 } 188 189 func (dir *directoryFD) StateFields() []string { 190 return []string{ 191 "fileDescription", 192 } 193 } 194 195 func (dir *directoryFD) beforeSave() {} 196 197 // +checklocksignore 198 func (dir *directoryFD) StateSave(stateSinkObject state.Sink) { 199 dir.beforeSave() 200 stateSinkObject.Save(0, &dir.fileDescription) 201 } 202 203 func (dir *directoryFD) afterLoad(context.Context) {} 204 205 // +checklocksignore 206 func (dir *directoryFD) StateLoad(ctx context.Context, stateSourceObject state.Source) { 207 stateSourceObject.Load(0, &dir.fileDescription) 208 } 209 210 func (fd *fileDescription) StateTypeName() string { 211 return "pkg/sentry/fsimpl/fuse.fileDescription" 212 } 213 214 func (fd *fileDescription) StateFields() []string { 215 return []string{ 216 "vfsfd", 217 "FileDescriptionDefaultImpl", 218 "DentryMetadataFileDescriptionImpl", 219 "LockFD", 220 "Fh", 221 "Nonseekable", 222 "DirectIO", 223 "OpenFlag", 224 "off", 225 } 226 } 227 228 func (fd *fileDescription) beforeSave() {} 229 230 // +checklocksignore 231 func (fd *fileDescription) StateSave(stateSinkObject state.Sink) { 232 fd.beforeSave() 233 stateSinkObject.Save(0, &fd.vfsfd) 234 stateSinkObject.Save(1, &fd.FileDescriptionDefaultImpl) 235 stateSinkObject.Save(2, &fd.DentryMetadataFileDescriptionImpl) 236 stateSinkObject.Save(3, &fd.LockFD) 237 stateSinkObject.Save(4, &fd.Fh) 238 stateSinkObject.Save(5, &fd.Nonseekable) 239 stateSinkObject.Save(6, &fd.DirectIO) 240 stateSinkObject.Save(7, &fd.OpenFlag) 241 stateSinkObject.Save(8, &fd.off) 242 } 243 244 func (fd *fileDescription) afterLoad(context.Context) {} 245 246 // +checklocksignore 247 func (fd *fileDescription) StateLoad(ctx context.Context, stateSourceObject state.Source) { 248 stateSourceObject.Load(0, &fd.vfsfd) 249 stateSourceObject.Load(1, &fd.FileDescriptionDefaultImpl) 250 stateSourceObject.Load(2, &fd.DentryMetadataFileDescriptionImpl) 251 stateSourceObject.Load(3, &fd.LockFD) 252 stateSourceObject.Load(4, &fd.Fh) 253 stateSourceObject.Load(5, &fd.Nonseekable) 254 stateSourceObject.Load(6, &fd.DirectIO) 255 stateSourceObject.Load(7, &fd.OpenFlag) 256 stateSourceObject.Load(8, &fd.off) 257 } 258 259 func (fsType *FilesystemType) StateTypeName() string { 260 return "pkg/sentry/fsimpl/fuse.FilesystemType" 261 } 262 263 func (fsType *FilesystemType) StateFields() []string { 264 return []string{} 265 } 266 267 func (fsType *FilesystemType) beforeSave() {} 268 269 // +checklocksignore 270 func (fsType *FilesystemType) StateSave(stateSinkObject state.Sink) { 271 fsType.beforeSave() 272 } 273 274 func (fsType *FilesystemType) afterLoad(context.Context) {} 275 276 // +checklocksignore 277 func (fsType *FilesystemType) StateLoad(ctx context.Context, stateSourceObject state.Source) { 278 } 279 280 func (f *filesystemOptions) StateTypeName() string { 281 return "pkg/sentry/fsimpl/fuse.filesystemOptions" 282 } 283 284 func (f *filesystemOptions) StateFields() []string { 285 return []string{ 286 "mopts", 287 "uid", 288 "gid", 289 "rootMode", 290 "maxActiveRequests", 291 "maxRead", 292 "defaultPermissions", 293 "allowOther", 294 } 295 } 296 297 func (f *filesystemOptions) beforeSave() {} 298 299 // +checklocksignore 300 func (f *filesystemOptions) StateSave(stateSinkObject state.Sink) { 301 f.beforeSave() 302 stateSinkObject.Save(0, &f.mopts) 303 stateSinkObject.Save(1, &f.uid) 304 stateSinkObject.Save(2, &f.gid) 305 stateSinkObject.Save(3, &f.rootMode) 306 stateSinkObject.Save(4, &f.maxActiveRequests) 307 stateSinkObject.Save(5, &f.maxRead) 308 stateSinkObject.Save(6, &f.defaultPermissions) 309 stateSinkObject.Save(7, &f.allowOther) 310 } 311 312 func (f *filesystemOptions) afterLoad(context.Context) {} 313 314 // +checklocksignore 315 func (f *filesystemOptions) StateLoad(ctx context.Context, stateSourceObject state.Source) { 316 stateSourceObject.Load(0, &f.mopts) 317 stateSourceObject.Load(1, &f.uid) 318 stateSourceObject.Load(2, &f.gid) 319 stateSourceObject.Load(3, &f.rootMode) 320 stateSourceObject.Load(4, &f.maxActiveRequests) 321 stateSourceObject.Load(5, &f.maxRead) 322 stateSourceObject.Load(6, &f.defaultPermissions) 323 stateSourceObject.Load(7, &f.allowOther) 324 } 325 326 func (fs *filesystem) StateTypeName() string { 327 return "pkg/sentry/fsimpl/fuse.filesystem" 328 } 329 330 func (fs *filesystem) StateFields() []string { 331 return []string{ 332 "Filesystem", 333 "devMinor", 334 "conn", 335 "opts", 336 "clock", 337 } 338 } 339 340 func (fs *filesystem) beforeSave() {} 341 342 // +checklocksignore 343 func (fs *filesystem) StateSave(stateSinkObject state.Sink) { 344 fs.beforeSave() 345 stateSinkObject.Save(0, &fs.Filesystem) 346 stateSinkObject.Save(1, &fs.devMinor) 347 stateSinkObject.Save(2, &fs.conn) 348 stateSinkObject.Save(3, &fs.opts) 349 stateSinkObject.Save(4, &fs.clock) 350 } 351 352 func (fs *filesystem) afterLoad(context.Context) {} 353 354 // +checklocksignore 355 func (fs *filesystem) StateLoad(ctx context.Context, stateSourceObject state.Source) { 356 stateSourceObject.Load(0, &fs.Filesystem) 357 stateSourceObject.Load(1, &fs.devMinor) 358 stateSourceObject.Load(2, &fs.conn) 359 stateSourceObject.Load(3, &fs.opts) 360 stateSourceObject.Load(4, &fs.clock) 361 } 362 363 func (f *fileHandle) StateTypeName() string { 364 return "pkg/sentry/fsimpl/fuse.fileHandle" 365 } 366 367 func (f *fileHandle) StateFields() []string { 368 return []string{ 369 "new", 370 "handle", 371 "flags", 372 } 373 } 374 375 func (f *fileHandle) beforeSave() {} 376 377 // +checklocksignore 378 func (f *fileHandle) StateSave(stateSinkObject state.Sink) { 379 f.beforeSave() 380 stateSinkObject.Save(0, &f.new) 381 stateSinkObject.Save(1, &f.handle) 382 stateSinkObject.Save(2, &f.flags) 383 } 384 385 func (f *fileHandle) afterLoad(context.Context) {} 386 387 // +checklocksignore 388 func (f *fileHandle) StateLoad(ctx context.Context, stateSourceObject state.Source) { 389 stateSourceObject.Load(0, &f.new) 390 stateSourceObject.Load(1, &f.handle) 391 stateSourceObject.Load(2, &f.flags) 392 } 393 394 func (i *inode) StateTypeName() string { 395 return "pkg/sentry/fsimpl/fuse.inode" 396 } 397 398 func (i *inode) StateFields() []string { 399 return []string{ 400 "inodeRefs", 401 "InodeAlwaysValid", 402 "InodeNotAnonymous", 403 "InodeNotSymlink", 404 "InodeWatches", 405 "OrderedChildren", 406 "CachedMappable", 407 "fs", 408 "nodeID", 409 "attrVersion", 410 "attrTime", 411 "link", 412 "fh", 413 "locks", 414 "watches", 415 "ino", 416 "uid", 417 "gid", 418 "mode", 419 "atime", 420 "mtime", 421 "ctime", 422 "size", 423 "nlink", 424 "blockSize", 425 } 426 } 427 428 func (i *inode) beforeSave() {} 429 430 // +checklocksignore 431 func (i *inode) StateSave(stateSinkObject state.Sink) { 432 i.beforeSave() 433 stateSinkObject.Save(0, &i.inodeRefs) 434 stateSinkObject.Save(1, &i.InodeAlwaysValid) 435 stateSinkObject.Save(2, &i.InodeNotAnonymous) 436 stateSinkObject.Save(3, &i.InodeNotSymlink) 437 stateSinkObject.Save(4, &i.InodeWatches) 438 stateSinkObject.Save(5, &i.OrderedChildren) 439 stateSinkObject.Save(6, &i.CachedMappable) 440 stateSinkObject.Save(7, &i.fs) 441 stateSinkObject.Save(8, &i.nodeID) 442 stateSinkObject.Save(9, &i.attrVersion) 443 stateSinkObject.Save(10, &i.attrTime) 444 stateSinkObject.Save(11, &i.link) 445 stateSinkObject.Save(12, &i.fh) 446 stateSinkObject.Save(13, &i.locks) 447 stateSinkObject.Save(14, &i.watches) 448 stateSinkObject.Save(15, &i.ino) 449 stateSinkObject.Save(16, &i.uid) 450 stateSinkObject.Save(17, &i.gid) 451 stateSinkObject.Save(18, &i.mode) 452 stateSinkObject.Save(19, &i.atime) 453 stateSinkObject.Save(20, &i.mtime) 454 stateSinkObject.Save(21, &i.ctime) 455 stateSinkObject.Save(22, &i.size) 456 stateSinkObject.Save(23, &i.nlink) 457 stateSinkObject.Save(24, &i.blockSize) 458 } 459 460 func (i *inode) afterLoad(context.Context) {} 461 462 // +checklocksignore 463 func (i *inode) StateLoad(ctx context.Context, stateSourceObject state.Source) { 464 stateSourceObject.Load(0, &i.inodeRefs) 465 stateSourceObject.Load(1, &i.InodeAlwaysValid) 466 stateSourceObject.Load(2, &i.InodeNotAnonymous) 467 stateSourceObject.Load(3, &i.InodeNotSymlink) 468 stateSourceObject.Load(4, &i.InodeWatches) 469 stateSourceObject.Load(5, &i.OrderedChildren) 470 stateSourceObject.Load(6, &i.CachedMappable) 471 stateSourceObject.Load(7, &i.fs) 472 stateSourceObject.Load(8, &i.nodeID) 473 stateSourceObject.Load(9, &i.attrVersion) 474 stateSourceObject.Load(10, &i.attrTime) 475 stateSourceObject.Load(11, &i.link) 476 stateSourceObject.Load(12, &i.fh) 477 stateSourceObject.Load(13, &i.locks) 478 stateSourceObject.Load(14, &i.watches) 479 stateSourceObject.Load(15, &i.ino) 480 stateSourceObject.Load(16, &i.uid) 481 stateSourceObject.Load(17, &i.gid) 482 stateSourceObject.Load(18, &i.mode) 483 stateSourceObject.Load(19, &i.atime) 484 stateSourceObject.Load(20, &i.mtime) 485 stateSourceObject.Load(21, &i.ctime) 486 stateSourceObject.Load(22, &i.size) 487 stateSourceObject.Load(23, &i.nlink) 488 stateSourceObject.Load(24, &i.blockSize) 489 } 490 491 func (r *inodeRefs) StateTypeName() string { 492 return "pkg/sentry/fsimpl/fuse.inodeRefs" 493 } 494 495 func (r *inodeRefs) StateFields() []string { 496 return []string{ 497 "refCount", 498 } 499 } 500 501 func (r *inodeRefs) beforeSave() {} 502 503 // +checklocksignore 504 func (r *inodeRefs) StateSave(stateSinkObject state.Sink) { 505 r.beforeSave() 506 stateSinkObject.Save(0, &r.refCount) 507 } 508 509 // +checklocksignore 510 func (r *inodeRefs) StateLoad(ctx context.Context, stateSourceObject state.Source) { 511 stateSourceObject.Load(0, &r.refCount) 512 stateSourceObject.AfterLoad(func() { r.afterLoad(ctx) }) 513 } 514 515 func (fd *regularFileFD) StateTypeName() string { 516 return "pkg/sentry/fsimpl/fuse.regularFileFD" 517 } 518 519 func (fd *regularFileFD) StateFields() []string { 520 return []string{ 521 "fileDescription", 522 "off", 523 "mappings", 524 "data", 525 } 526 } 527 528 func (fd *regularFileFD) beforeSave() {} 529 530 // +checklocksignore 531 func (fd *regularFileFD) StateSave(stateSinkObject state.Sink) { 532 fd.beforeSave() 533 stateSinkObject.Save(0, &fd.fileDescription) 534 stateSinkObject.Save(1, &fd.off) 535 stateSinkObject.Save(2, &fd.mappings) 536 stateSinkObject.Save(3, &fd.data) 537 } 538 539 func (fd *regularFileFD) afterLoad(context.Context) {} 540 541 // +checklocksignore 542 func (fd *regularFileFD) StateLoad(ctx context.Context, stateSourceObject state.Source) { 543 stateSourceObject.Load(0, &fd.fileDescription) 544 stateSourceObject.Load(1, &fd.off) 545 stateSourceObject.Load(2, &fd.mappings) 546 stateSourceObject.Load(3, &fd.data) 547 } 548 549 func (l *requestList) StateTypeName() string { 550 return "pkg/sentry/fsimpl/fuse.requestList" 551 } 552 553 func (l *requestList) StateFields() []string { 554 return []string{ 555 "head", 556 "tail", 557 } 558 } 559 560 func (l *requestList) beforeSave() {} 561 562 // +checklocksignore 563 func (l *requestList) StateSave(stateSinkObject state.Sink) { 564 l.beforeSave() 565 stateSinkObject.Save(0, &l.head) 566 stateSinkObject.Save(1, &l.tail) 567 } 568 569 func (l *requestList) afterLoad(context.Context) {} 570 571 // +checklocksignore 572 func (l *requestList) StateLoad(ctx context.Context, stateSourceObject state.Source) { 573 stateSourceObject.Load(0, &l.head) 574 stateSourceObject.Load(1, &l.tail) 575 } 576 577 func (e *requestEntry) StateTypeName() string { 578 return "pkg/sentry/fsimpl/fuse.requestEntry" 579 } 580 581 func (e *requestEntry) StateFields() []string { 582 return []string{ 583 "next", 584 "prev", 585 } 586 } 587 588 func (e *requestEntry) beforeSave() {} 589 590 // +checklocksignore 591 func (e *requestEntry) StateSave(stateSinkObject state.Sink) { 592 e.beforeSave() 593 stateSinkObject.Save(0, &e.next) 594 stateSinkObject.Save(1, &e.prev) 595 } 596 597 func (e *requestEntry) afterLoad(context.Context) {} 598 599 // +checklocksignore 600 func (e *requestEntry) StateLoad(ctx context.Context, stateSourceObject state.Source) { 601 stateSourceObject.Load(0, &e.next) 602 stateSourceObject.Load(1, &e.prev) 603 } 604 605 func (r *Request) StateTypeName() string { 606 return "pkg/sentry/fsimpl/fuse.Request" 607 } 608 609 func (r *Request) StateFields() []string { 610 return []string{ 611 "requestEntry", 612 "id", 613 "hdr", 614 "data", 615 "async", 616 "noReply", 617 } 618 } 619 620 func (r *Request) beforeSave() {} 621 622 // +checklocksignore 623 func (r *Request) StateSave(stateSinkObject state.Sink) { 624 r.beforeSave() 625 stateSinkObject.Save(0, &r.requestEntry) 626 stateSinkObject.Save(1, &r.id) 627 stateSinkObject.Save(2, &r.hdr) 628 stateSinkObject.Save(3, &r.data) 629 stateSinkObject.Save(4, &r.async) 630 stateSinkObject.Save(5, &r.noReply) 631 } 632 633 func (r *Request) afterLoad(context.Context) {} 634 635 // +checklocksignore 636 func (r *Request) StateLoad(ctx context.Context, stateSourceObject state.Source) { 637 stateSourceObject.Load(0, &r.requestEntry) 638 stateSourceObject.Load(1, &r.id) 639 stateSourceObject.Load(2, &r.hdr) 640 stateSourceObject.Load(3, &r.data) 641 stateSourceObject.Load(4, &r.async) 642 stateSourceObject.Load(5, &r.noReply) 643 } 644 645 func (fRes *futureResponse) StateTypeName() string { 646 return "pkg/sentry/fsimpl/fuse.futureResponse" 647 } 648 649 func (fRes *futureResponse) StateFields() []string { 650 return []string{ 651 "opcode", 652 "hdr", 653 "data", 654 "async", 655 } 656 } 657 658 func (fRes *futureResponse) beforeSave() {} 659 660 // +checklocksignore 661 func (fRes *futureResponse) StateSave(stateSinkObject state.Sink) { 662 fRes.beforeSave() 663 stateSinkObject.Save(0, &fRes.opcode) 664 stateSinkObject.Save(1, &fRes.hdr) 665 stateSinkObject.Save(2, &fRes.data) 666 stateSinkObject.Save(3, &fRes.async) 667 } 668 669 // +checklocksignore 670 func (fRes *futureResponse) StateLoad(ctx context.Context, stateSourceObject state.Source) { 671 stateSourceObject.Load(0, &fRes.opcode) 672 stateSourceObject.Load(1, &fRes.hdr) 673 stateSourceObject.Load(2, &fRes.data) 674 stateSourceObject.Load(3, &fRes.async) 675 stateSourceObject.AfterLoad(func() { fRes.afterLoad(ctx) }) 676 } 677 678 func (r *Response) StateTypeName() string { 679 return "pkg/sentry/fsimpl/fuse.Response" 680 } 681 682 func (r *Response) StateFields() []string { 683 return []string{ 684 "opcode", 685 "hdr", 686 "data", 687 } 688 } 689 690 func (r *Response) beforeSave() {} 691 692 // +checklocksignore 693 func (r *Response) StateSave(stateSinkObject state.Sink) { 694 r.beforeSave() 695 stateSinkObject.Save(0, &r.opcode) 696 stateSinkObject.Save(1, &r.hdr) 697 stateSinkObject.Save(2, &r.data) 698 } 699 700 func (r *Response) afterLoad(context.Context) {} 701 702 // +checklocksignore 703 func (r *Response) StateLoad(ctx context.Context, stateSourceObject state.Source) { 704 stateSourceObject.Load(0, &r.opcode) 705 stateSourceObject.Load(1, &r.hdr) 706 stateSourceObject.Load(2, &r.data) 707 } 708 709 func init() { 710 state.Register((*connection)(nil)) 711 state.Register((*fuseDevice)(nil)) 712 state.Register((*DeviceFD)(nil)) 713 state.Register((*directoryFD)(nil)) 714 state.Register((*fileDescription)(nil)) 715 state.Register((*FilesystemType)(nil)) 716 state.Register((*filesystemOptions)(nil)) 717 state.Register((*filesystem)(nil)) 718 state.Register((*fileHandle)(nil)) 719 state.Register((*inode)(nil)) 720 state.Register((*inodeRefs)(nil)) 721 state.Register((*regularFileFD)(nil)) 722 state.Register((*requestList)(nil)) 723 state.Register((*requestEntry)(nil)) 724 state.Register((*Request)(nil)) 725 state.Register((*futureResponse)(nil)) 726 state.Register((*Response)(nil)) 727 }