github.com/ttpreport/gvisor-ligolo@v0.0.0-20240123134145-a858404967ba/pkg/sentry/kernel/kernel_state_autogen.go (about) 1 // automatically generated by stateify. 2 3 package kernel 4 5 import ( 6 "github.com/ttpreport/gvisor-ligolo/pkg/bpf" 7 "github.com/ttpreport/gvisor-ligolo/pkg/state" 8 "github.com/ttpreport/gvisor-ligolo/pkg/tcpip" 9 ) 10 11 func (a *abstractEndpoint) StateTypeName() string { 12 return "pkg/sentry/kernel.abstractEndpoint" 13 } 14 15 func (a *abstractEndpoint) StateFields() []string { 16 return []string{ 17 "ep", 18 "socket", 19 "name", 20 "ns", 21 } 22 } 23 24 func (a *abstractEndpoint) beforeSave() {} 25 26 // +checklocksignore 27 func (a *abstractEndpoint) StateSave(stateSinkObject state.Sink) { 28 a.beforeSave() 29 stateSinkObject.Save(0, &a.ep) 30 stateSinkObject.Save(1, &a.socket) 31 stateSinkObject.Save(2, &a.name) 32 stateSinkObject.Save(3, &a.ns) 33 } 34 35 func (a *abstractEndpoint) afterLoad() {} 36 37 // +checklocksignore 38 func (a *abstractEndpoint) StateLoad(stateSourceObject state.Source) { 39 stateSourceObject.Load(0, &a.ep) 40 stateSourceObject.Load(1, &a.socket) 41 stateSourceObject.Load(2, &a.name) 42 stateSourceObject.Load(3, &a.ns) 43 } 44 45 func (a *AbstractSocketNamespace) StateTypeName() string { 46 return "pkg/sentry/kernel.AbstractSocketNamespace" 47 } 48 49 func (a *AbstractSocketNamespace) StateFields() []string { 50 return []string{ 51 "endpoints", 52 } 53 } 54 55 func (a *AbstractSocketNamespace) beforeSave() {} 56 57 // +checklocksignore 58 func (a *AbstractSocketNamespace) StateSave(stateSinkObject state.Sink) { 59 a.beforeSave() 60 stateSinkObject.Save(0, &a.endpoints) 61 } 62 63 func (a *AbstractSocketNamespace) afterLoad() {} 64 65 // +checklocksignore 66 func (a *AbstractSocketNamespace) StateLoad(stateSourceObject state.Source) { 67 stateSourceObject.Load(0, &a.endpoints) 68 } 69 70 func (c *Cgroup) StateTypeName() string { 71 return "pkg/sentry/kernel.Cgroup" 72 } 73 74 func (c *Cgroup) StateFields() []string { 75 return []string{ 76 "Dentry", 77 "CgroupImpl", 78 } 79 } 80 81 func (c *Cgroup) beforeSave() {} 82 83 // +checklocksignore 84 func (c *Cgroup) StateSave(stateSinkObject state.Sink) { 85 c.beforeSave() 86 stateSinkObject.Save(0, &c.Dentry) 87 stateSinkObject.Save(1, &c.CgroupImpl) 88 } 89 90 func (c *Cgroup) afterLoad() {} 91 92 // +checklocksignore 93 func (c *Cgroup) StateLoad(stateSourceObject state.Source) { 94 stateSourceObject.Load(0, &c.Dentry) 95 stateSourceObject.Load(1, &c.CgroupImpl) 96 } 97 98 func (h *hierarchy) StateTypeName() string { 99 return "pkg/sentry/kernel.hierarchy" 100 } 101 102 func (h *hierarchy) StateFields() []string { 103 return []string{ 104 "id", 105 "name", 106 "controllers", 107 "fs", 108 } 109 } 110 111 func (h *hierarchy) beforeSave() {} 112 113 // +checklocksignore 114 func (h *hierarchy) StateSave(stateSinkObject state.Sink) { 115 h.beforeSave() 116 stateSinkObject.Save(0, &h.id) 117 stateSinkObject.Save(1, &h.name) 118 stateSinkObject.Save(2, &h.controllers) 119 stateSinkObject.Save(3, &h.fs) 120 } 121 122 func (h *hierarchy) afterLoad() {} 123 124 // +checklocksignore 125 func (h *hierarchy) StateLoad(stateSourceObject state.Source) { 126 stateSourceObject.Load(0, &h.id) 127 stateSourceObject.Load(1, &h.name) 128 stateSourceObject.Load(2, &h.controllers) 129 stateSourceObject.Load(3, &h.fs) 130 } 131 132 func (r *CgroupRegistry) StateTypeName() string { 133 return "pkg/sentry/kernel.CgroupRegistry" 134 } 135 136 func (r *CgroupRegistry) StateFields() []string { 137 return []string{ 138 "lastHierarchyID", 139 "lastCgroupID", 140 "controllers", 141 "hierarchies", 142 "hierarchiesByName", 143 "cgroups", 144 } 145 } 146 147 func (r *CgroupRegistry) beforeSave() {} 148 149 // +checklocksignore 150 func (r *CgroupRegistry) StateSave(stateSinkObject state.Sink) { 151 r.beforeSave() 152 stateSinkObject.Save(0, &r.lastHierarchyID) 153 stateSinkObject.Save(1, &r.lastCgroupID) 154 stateSinkObject.Save(2, &r.controllers) 155 stateSinkObject.Save(3, &r.hierarchies) 156 stateSinkObject.Save(4, &r.hierarchiesByName) 157 stateSinkObject.Save(5, &r.cgroups) 158 } 159 160 func (r *CgroupRegistry) afterLoad() {} 161 162 // +checklocksignore 163 func (r *CgroupRegistry) StateLoad(stateSourceObject state.Source) { 164 stateSourceObject.Load(0, &r.lastHierarchyID) 165 stateSourceObject.Load(1, &r.lastCgroupID) 166 stateSourceObject.Load(2, &r.controllers) 167 stateSourceObject.Load(3, &r.hierarchies) 168 stateSourceObject.Load(4, &r.hierarchiesByName) 169 stateSourceObject.Load(5, &r.cgroups) 170 } 171 172 func (f *FDFlags) StateTypeName() string { 173 return "pkg/sentry/kernel.FDFlags" 174 } 175 176 func (f *FDFlags) StateFields() []string { 177 return []string{ 178 "CloseOnExec", 179 } 180 } 181 182 func (f *FDFlags) beforeSave() {} 183 184 // +checklocksignore 185 func (f *FDFlags) StateSave(stateSinkObject state.Sink) { 186 f.beforeSave() 187 stateSinkObject.Save(0, &f.CloseOnExec) 188 } 189 190 func (f *FDFlags) afterLoad() {} 191 192 // +checklocksignore 193 func (f *FDFlags) StateLoad(stateSourceObject state.Source) { 194 stateSourceObject.Load(0, &f.CloseOnExec) 195 } 196 197 func (d *descriptor) StateTypeName() string { 198 return "pkg/sentry/kernel.descriptor" 199 } 200 201 func (d *descriptor) StateFields() []string { 202 return []string{ 203 "file", 204 "flags", 205 } 206 } 207 208 func (d *descriptor) beforeSave() {} 209 210 // +checklocksignore 211 func (d *descriptor) StateSave(stateSinkObject state.Sink) { 212 d.beforeSave() 213 stateSinkObject.Save(0, &d.file) 214 stateSinkObject.Save(1, &d.flags) 215 } 216 217 func (d *descriptor) afterLoad() {} 218 219 // +checklocksignore 220 func (d *descriptor) StateLoad(stateSourceObject state.Source) { 221 stateSourceObject.Load(0, &d.file) 222 stateSourceObject.Load(1, &d.flags) 223 } 224 225 func (f *FDTable) StateTypeName() string { 226 return "pkg/sentry/kernel.FDTable" 227 } 228 229 func (f *FDTable) StateFields() []string { 230 return []string{ 231 "FDTableRefs", 232 "k", 233 "descriptorTable", 234 } 235 } 236 237 func (f *FDTable) beforeSave() {} 238 239 // +checklocksignore 240 func (f *FDTable) StateSave(stateSinkObject state.Sink) { 241 f.beforeSave() 242 var descriptorTableValue map[int32]descriptor 243 descriptorTableValue = f.saveDescriptorTable() 244 stateSinkObject.SaveValue(2, descriptorTableValue) 245 stateSinkObject.Save(0, &f.FDTableRefs) 246 stateSinkObject.Save(1, &f.k) 247 } 248 249 func (f *FDTable) afterLoad() {} 250 251 // +checklocksignore 252 func (f *FDTable) StateLoad(stateSourceObject state.Source) { 253 stateSourceObject.Load(0, &f.FDTableRefs) 254 stateSourceObject.Load(1, &f.k) 255 stateSourceObject.LoadValue(2, new(map[int32]descriptor), func(y any) { f.loadDescriptorTable(y.(map[int32]descriptor)) }) 256 } 257 258 func (r *FDTableRefs) StateTypeName() string { 259 return "pkg/sentry/kernel.FDTableRefs" 260 } 261 262 func (r *FDTableRefs) StateFields() []string { 263 return []string{ 264 "refCount", 265 } 266 } 267 268 func (r *FDTableRefs) beforeSave() {} 269 270 // +checklocksignore 271 func (r *FDTableRefs) StateSave(stateSinkObject state.Sink) { 272 r.beforeSave() 273 stateSinkObject.Save(0, &r.refCount) 274 } 275 276 // +checklocksignore 277 func (r *FDTableRefs) StateLoad(stateSourceObject state.Source) { 278 stateSourceObject.Load(0, &r.refCount) 279 stateSourceObject.AfterLoad(r.afterLoad) 280 } 281 282 func (f *FSContext) StateTypeName() string { 283 return "pkg/sentry/kernel.FSContext" 284 } 285 286 func (f *FSContext) StateFields() []string { 287 return []string{ 288 "FSContextRefs", 289 "root", 290 "cwd", 291 "umask", 292 } 293 } 294 295 func (f *FSContext) beforeSave() {} 296 297 // +checklocksignore 298 func (f *FSContext) StateSave(stateSinkObject state.Sink) { 299 f.beforeSave() 300 stateSinkObject.Save(0, &f.FSContextRefs) 301 stateSinkObject.Save(1, &f.root) 302 stateSinkObject.Save(2, &f.cwd) 303 stateSinkObject.Save(3, &f.umask) 304 } 305 306 func (f *FSContext) afterLoad() {} 307 308 // +checklocksignore 309 func (f *FSContext) StateLoad(stateSourceObject state.Source) { 310 stateSourceObject.Load(0, &f.FSContextRefs) 311 stateSourceObject.Load(1, &f.root) 312 stateSourceObject.Load(2, &f.cwd) 313 stateSourceObject.Load(3, &f.umask) 314 } 315 316 func (r *FSContextRefs) StateTypeName() string { 317 return "pkg/sentry/kernel.FSContextRefs" 318 } 319 320 func (r *FSContextRefs) StateFields() []string { 321 return []string{ 322 "refCount", 323 } 324 } 325 326 func (r *FSContextRefs) beforeSave() {} 327 328 // +checklocksignore 329 func (r *FSContextRefs) StateSave(stateSinkObject state.Sink) { 330 r.beforeSave() 331 stateSinkObject.Save(0, &r.refCount) 332 } 333 334 // +checklocksignore 335 func (r *FSContextRefs) StateLoad(stateSourceObject state.Source) { 336 stateSourceObject.Load(0, &r.refCount) 337 stateSourceObject.AfterLoad(r.afterLoad) 338 } 339 340 func (i *IPCNamespace) StateTypeName() string { 341 return "pkg/sentry/kernel.IPCNamespace" 342 } 343 344 func (i *IPCNamespace) StateFields() []string { 345 return []string{ 346 "IPCNamespaceRefs", 347 "userNS", 348 "queues", 349 "semaphores", 350 "shms", 351 "posixQueues", 352 } 353 } 354 355 func (i *IPCNamespace) beforeSave() {} 356 357 // +checklocksignore 358 func (i *IPCNamespace) StateSave(stateSinkObject state.Sink) { 359 i.beforeSave() 360 stateSinkObject.Save(0, &i.IPCNamespaceRefs) 361 stateSinkObject.Save(1, &i.userNS) 362 stateSinkObject.Save(2, &i.queues) 363 stateSinkObject.Save(3, &i.semaphores) 364 stateSinkObject.Save(4, &i.shms) 365 stateSinkObject.Save(5, &i.posixQueues) 366 } 367 368 func (i *IPCNamespace) afterLoad() {} 369 370 // +checklocksignore 371 func (i *IPCNamespace) StateLoad(stateSourceObject state.Source) { 372 stateSourceObject.Load(0, &i.IPCNamespaceRefs) 373 stateSourceObject.Load(1, &i.userNS) 374 stateSourceObject.Load(2, &i.queues) 375 stateSourceObject.Load(3, &i.semaphores) 376 stateSourceObject.Load(4, &i.shms) 377 stateSourceObject.Load(5, &i.posixQueues) 378 } 379 380 func (r *IPCNamespaceRefs) StateTypeName() string { 381 return "pkg/sentry/kernel.IPCNamespaceRefs" 382 } 383 384 func (r *IPCNamespaceRefs) StateFields() []string { 385 return []string{ 386 "refCount", 387 } 388 } 389 390 func (r *IPCNamespaceRefs) beforeSave() {} 391 392 // +checklocksignore 393 func (r *IPCNamespaceRefs) StateSave(stateSinkObject state.Sink) { 394 r.beforeSave() 395 stateSinkObject.Save(0, &r.refCount) 396 } 397 398 // +checklocksignore 399 func (r *IPCNamespaceRefs) StateLoad(stateSourceObject state.Source) { 400 stateSourceObject.Load(0, &r.refCount) 401 stateSourceObject.AfterLoad(r.afterLoad) 402 } 403 404 func (uc *userCounters) StateTypeName() string { 405 return "pkg/sentry/kernel.userCounters" 406 } 407 408 func (uc *userCounters) StateFields() []string { 409 return []string{ 410 "uid", 411 "rlimitNProc", 412 } 413 } 414 415 func (uc *userCounters) beforeSave() {} 416 417 // +checklocksignore 418 func (uc *userCounters) StateSave(stateSinkObject state.Sink) { 419 uc.beforeSave() 420 stateSinkObject.Save(0, &uc.uid) 421 stateSinkObject.Save(1, &uc.rlimitNProc) 422 } 423 424 func (uc *userCounters) afterLoad() {} 425 426 // +checklocksignore 427 func (uc *userCounters) StateLoad(stateSourceObject state.Source) { 428 stateSourceObject.Load(0, &uc.uid) 429 stateSourceObject.Load(1, &uc.rlimitNProc) 430 } 431 432 func (k *Kernel) StateTypeName() string { 433 return "pkg/sentry/kernel.Kernel" 434 } 435 436 func (k *Kernel) StateFields() []string { 437 return []string{ 438 "featureSet", 439 "timekeeper", 440 "tasks", 441 "rootUserNamespace", 442 "rootNetworkNamespace", 443 "applicationCores", 444 "useHostCores", 445 "extraAuxv", 446 "vdso", 447 "rootUTSNamespace", 448 "rootIPCNamespace", 449 "rootAbstractSocketNamespace", 450 "futexes", 451 "globalInit", 452 "syslog", 453 "runningTasks", 454 "cpuClock", 455 "cpuClockTickerRunning", 456 "uniqueID", 457 "nextInotifyCookie", 458 "netlinkPorts", 459 "danglingEndpoints", 460 "sockets", 461 "nextSocketRecord", 462 "SpecialOpts", 463 "vfs", 464 "hostMount", 465 "pipeMount", 466 "nsfsMount", 467 "shmMount", 468 "socketMount", 469 "sysVShmDevID", 470 "SleepForAddressSpaceActivation", 471 "ptraceExceptions", 472 "YAMAPtraceScope", 473 "cgroupRegistry", 474 "userCountersMap", 475 } 476 } 477 478 func (k *Kernel) beforeSave() {} 479 480 // +checklocksignore 481 func (k *Kernel) StateSave(stateSinkObject state.Sink) { 482 k.beforeSave() 483 var danglingEndpointsValue []tcpip.Endpoint 484 danglingEndpointsValue = k.saveDanglingEndpoints() 485 stateSinkObject.SaveValue(21, danglingEndpointsValue) 486 stateSinkObject.Save(0, &k.featureSet) 487 stateSinkObject.Save(1, &k.timekeeper) 488 stateSinkObject.Save(2, &k.tasks) 489 stateSinkObject.Save(3, &k.rootUserNamespace) 490 stateSinkObject.Save(4, &k.rootNetworkNamespace) 491 stateSinkObject.Save(5, &k.applicationCores) 492 stateSinkObject.Save(6, &k.useHostCores) 493 stateSinkObject.Save(7, &k.extraAuxv) 494 stateSinkObject.Save(8, &k.vdso) 495 stateSinkObject.Save(9, &k.rootUTSNamespace) 496 stateSinkObject.Save(10, &k.rootIPCNamespace) 497 stateSinkObject.Save(11, &k.rootAbstractSocketNamespace) 498 stateSinkObject.Save(12, &k.futexes) 499 stateSinkObject.Save(13, &k.globalInit) 500 stateSinkObject.Save(14, &k.syslog) 501 stateSinkObject.Save(15, &k.runningTasks) 502 stateSinkObject.Save(16, &k.cpuClock) 503 stateSinkObject.Save(17, &k.cpuClockTickerRunning) 504 stateSinkObject.Save(18, &k.uniqueID) 505 stateSinkObject.Save(19, &k.nextInotifyCookie) 506 stateSinkObject.Save(20, &k.netlinkPorts) 507 stateSinkObject.Save(22, &k.sockets) 508 stateSinkObject.Save(23, &k.nextSocketRecord) 509 stateSinkObject.Save(24, &k.SpecialOpts) 510 stateSinkObject.Save(25, &k.vfs) 511 stateSinkObject.Save(26, &k.hostMount) 512 stateSinkObject.Save(27, &k.pipeMount) 513 stateSinkObject.Save(28, &k.nsfsMount) 514 stateSinkObject.Save(29, &k.shmMount) 515 stateSinkObject.Save(30, &k.socketMount) 516 stateSinkObject.Save(31, &k.sysVShmDevID) 517 stateSinkObject.Save(32, &k.SleepForAddressSpaceActivation) 518 stateSinkObject.Save(33, &k.ptraceExceptions) 519 stateSinkObject.Save(34, &k.YAMAPtraceScope) 520 stateSinkObject.Save(35, &k.cgroupRegistry) 521 stateSinkObject.Save(36, &k.userCountersMap) 522 } 523 524 func (k *Kernel) afterLoad() {} 525 526 // +checklocksignore 527 func (k *Kernel) StateLoad(stateSourceObject state.Source) { 528 stateSourceObject.Load(0, &k.featureSet) 529 stateSourceObject.Load(1, &k.timekeeper) 530 stateSourceObject.Load(2, &k.tasks) 531 stateSourceObject.Load(3, &k.rootUserNamespace) 532 stateSourceObject.Load(4, &k.rootNetworkNamespace) 533 stateSourceObject.Load(5, &k.applicationCores) 534 stateSourceObject.Load(6, &k.useHostCores) 535 stateSourceObject.Load(7, &k.extraAuxv) 536 stateSourceObject.Load(8, &k.vdso) 537 stateSourceObject.Load(9, &k.rootUTSNamespace) 538 stateSourceObject.Load(10, &k.rootIPCNamespace) 539 stateSourceObject.Load(11, &k.rootAbstractSocketNamespace) 540 stateSourceObject.Load(12, &k.futexes) 541 stateSourceObject.Load(13, &k.globalInit) 542 stateSourceObject.Load(14, &k.syslog) 543 stateSourceObject.Load(15, &k.runningTasks) 544 stateSourceObject.Load(16, &k.cpuClock) 545 stateSourceObject.Load(17, &k.cpuClockTickerRunning) 546 stateSourceObject.Load(18, &k.uniqueID) 547 stateSourceObject.Load(19, &k.nextInotifyCookie) 548 stateSourceObject.Load(20, &k.netlinkPorts) 549 stateSourceObject.Load(22, &k.sockets) 550 stateSourceObject.Load(23, &k.nextSocketRecord) 551 stateSourceObject.Load(24, &k.SpecialOpts) 552 stateSourceObject.Load(25, &k.vfs) 553 stateSourceObject.Load(26, &k.hostMount) 554 stateSourceObject.Load(27, &k.pipeMount) 555 stateSourceObject.Load(28, &k.nsfsMount) 556 stateSourceObject.Load(29, &k.shmMount) 557 stateSourceObject.Load(30, &k.socketMount) 558 stateSourceObject.Load(31, &k.sysVShmDevID) 559 stateSourceObject.Load(32, &k.SleepForAddressSpaceActivation) 560 stateSourceObject.Load(33, &k.ptraceExceptions) 561 stateSourceObject.Load(34, &k.YAMAPtraceScope) 562 stateSourceObject.Load(35, &k.cgroupRegistry) 563 stateSourceObject.Load(36, &k.userCountersMap) 564 stateSourceObject.LoadValue(21, new([]tcpip.Endpoint), func(y any) { k.loadDanglingEndpoints(y.([]tcpip.Endpoint)) }) 565 } 566 567 func (s *SocketRecord) StateTypeName() string { 568 return "pkg/sentry/kernel.SocketRecord" 569 } 570 571 func (s *SocketRecord) StateFields() []string { 572 return []string{ 573 "k", 574 "Sock", 575 "ID", 576 } 577 } 578 579 func (s *SocketRecord) beforeSave() {} 580 581 // +checklocksignore 582 func (s *SocketRecord) StateSave(stateSinkObject state.Sink) { 583 s.beforeSave() 584 stateSinkObject.Save(0, &s.k) 585 stateSinkObject.Save(1, &s.Sock) 586 stateSinkObject.Save(2, &s.ID) 587 } 588 589 func (s *SocketRecord) afterLoad() {} 590 591 // +checklocksignore 592 func (s *SocketRecord) StateLoad(stateSourceObject state.Source) { 593 stateSourceObject.Load(0, &s.k) 594 stateSourceObject.Load(1, &s.Sock) 595 stateSourceObject.Load(2, &s.ID) 596 } 597 598 func (p *pendingSignals) StateTypeName() string { 599 return "pkg/sentry/kernel.pendingSignals" 600 } 601 602 func (p *pendingSignals) StateFields() []string { 603 return []string{ 604 "signals", 605 } 606 } 607 608 func (p *pendingSignals) beforeSave() {} 609 610 // +checklocksignore 611 func (p *pendingSignals) StateSave(stateSinkObject state.Sink) { 612 p.beforeSave() 613 var signalsValue []savedPendingSignal 614 signalsValue = p.saveSignals() 615 stateSinkObject.SaveValue(0, signalsValue) 616 } 617 618 func (p *pendingSignals) afterLoad() {} 619 620 // +checklocksignore 621 func (p *pendingSignals) StateLoad(stateSourceObject state.Source) { 622 stateSourceObject.LoadValue(0, new([]savedPendingSignal), func(y any) { p.loadSignals(y.([]savedPendingSignal)) }) 623 } 624 625 func (p *pendingSignalQueue) StateTypeName() string { 626 return "pkg/sentry/kernel.pendingSignalQueue" 627 } 628 629 func (p *pendingSignalQueue) StateFields() []string { 630 return []string{ 631 "pendingSignalList", 632 "length", 633 } 634 } 635 636 func (p *pendingSignalQueue) beforeSave() {} 637 638 // +checklocksignore 639 func (p *pendingSignalQueue) StateSave(stateSinkObject state.Sink) { 640 p.beforeSave() 641 stateSinkObject.Save(0, &p.pendingSignalList) 642 stateSinkObject.Save(1, &p.length) 643 } 644 645 func (p *pendingSignalQueue) afterLoad() {} 646 647 // +checklocksignore 648 func (p *pendingSignalQueue) StateLoad(stateSourceObject state.Source) { 649 stateSourceObject.Load(0, &p.pendingSignalList) 650 stateSourceObject.Load(1, &p.length) 651 } 652 653 func (p *pendingSignal) StateTypeName() string { 654 return "pkg/sentry/kernel.pendingSignal" 655 } 656 657 func (p *pendingSignal) StateFields() []string { 658 return []string{ 659 "pendingSignalEntry", 660 "SignalInfo", 661 "timer", 662 } 663 } 664 665 func (p *pendingSignal) beforeSave() {} 666 667 // +checklocksignore 668 func (p *pendingSignal) StateSave(stateSinkObject state.Sink) { 669 p.beforeSave() 670 stateSinkObject.Save(0, &p.pendingSignalEntry) 671 stateSinkObject.Save(1, &p.SignalInfo) 672 stateSinkObject.Save(2, &p.timer) 673 } 674 675 func (p *pendingSignal) afterLoad() {} 676 677 // +checklocksignore 678 func (p *pendingSignal) StateLoad(stateSourceObject state.Source) { 679 stateSourceObject.Load(0, &p.pendingSignalEntry) 680 stateSourceObject.Load(1, &p.SignalInfo) 681 stateSourceObject.Load(2, &p.timer) 682 } 683 684 func (l *pendingSignalList) StateTypeName() string { 685 return "pkg/sentry/kernel.pendingSignalList" 686 } 687 688 func (l *pendingSignalList) StateFields() []string { 689 return []string{ 690 "head", 691 "tail", 692 } 693 } 694 695 func (l *pendingSignalList) beforeSave() {} 696 697 // +checklocksignore 698 func (l *pendingSignalList) StateSave(stateSinkObject state.Sink) { 699 l.beforeSave() 700 stateSinkObject.Save(0, &l.head) 701 stateSinkObject.Save(1, &l.tail) 702 } 703 704 func (l *pendingSignalList) afterLoad() {} 705 706 // +checklocksignore 707 func (l *pendingSignalList) StateLoad(stateSourceObject state.Source) { 708 stateSourceObject.Load(0, &l.head) 709 stateSourceObject.Load(1, &l.tail) 710 } 711 712 func (e *pendingSignalEntry) StateTypeName() string { 713 return "pkg/sentry/kernel.pendingSignalEntry" 714 } 715 716 func (e *pendingSignalEntry) StateFields() []string { 717 return []string{ 718 "next", 719 "prev", 720 } 721 } 722 723 func (e *pendingSignalEntry) beforeSave() {} 724 725 // +checklocksignore 726 func (e *pendingSignalEntry) StateSave(stateSinkObject state.Sink) { 727 e.beforeSave() 728 stateSinkObject.Save(0, &e.next) 729 stateSinkObject.Save(1, &e.prev) 730 } 731 732 func (e *pendingSignalEntry) afterLoad() {} 733 734 // +checklocksignore 735 func (e *pendingSignalEntry) StateLoad(stateSourceObject state.Source) { 736 stateSourceObject.Load(0, &e.next) 737 stateSourceObject.Load(1, &e.prev) 738 } 739 740 func (s *savedPendingSignal) StateTypeName() string { 741 return "pkg/sentry/kernel.savedPendingSignal" 742 } 743 744 func (s *savedPendingSignal) StateFields() []string { 745 return []string{ 746 "si", 747 "timer", 748 } 749 } 750 751 func (s *savedPendingSignal) beforeSave() {} 752 753 // +checklocksignore 754 func (s *savedPendingSignal) StateSave(stateSinkObject state.Sink) { 755 s.beforeSave() 756 stateSinkObject.Save(0, &s.si) 757 stateSinkObject.Save(1, &s.timer) 758 } 759 760 func (s *savedPendingSignal) afterLoad() {} 761 762 // +checklocksignore 763 func (s *savedPendingSignal) StateLoad(stateSourceObject state.Source) { 764 stateSourceObject.Load(0, &s.si) 765 stateSourceObject.Load(1, &s.timer) 766 } 767 768 func (it *IntervalTimer) StateTypeName() string { 769 return "pkg/sentry/kernel.IntervalTimer" 770 } 771 772 func (it *IntervalTimer) StateFields() []string { 773 return []string{ 774 "timer", 775 "target", 776 "signo", 777 "id", 778 "sigval", 779 "group", 780 "sigpending", 781 "sigorphan", 782 "overrunCur", 783 "overrunLast", 784 } 785 } 786 787 func (it *IntervalTimer) beforeSave() {} 788 789 // +checklocksignore 790 func (it *IntervalTimer) StateSave(stateSinkObject state.Sink) { 791 it.beforeSave() 792 stateSinkObject.Save(0, &it.timer) 793 stateSinkObject.Save(1, &it.target) 794 stateSinkObject.Save(2, &it.signo) 795 stateSinkObject.Save(3, &it.id) 796 stateSinkObject.Save(4, &it.sigval) 797 stateSinkObject.Save(5, &it.group) 798 stateSinkObject.Save(6, &it.sigpending) 799 stateSinkObject.Save(7, &it.sigorphan) 800 stateSinkObject.Save(8, &it.overrunCur) 801 stateSinkObject.Save(9, &it.overrunLast) 802 } 803 804 func (it *IntervalTimer) afterLoad() {} 805 806 // +checklocksignore 807 func (it *IntervalTimer) StateLoad(stateSourceObject state.Source) { 808 stateSourceObject.Load(0, &it.timer) 809 stateSourceObject.Load(1, &it.target) 810 stateSourceObject.Load(2, &it.signo) 811 stateSourceObject.Load(3, &it.id) 812 stateSourceObject.Load(4, &it.sigval) 813 stateSourceObject.Load(5, &it.group) 814 stateSourceObject.Load(6, &it.sigpending) 815 stateSourceObject.Load(7, &it.sigorphan) 816 stateSourceObject.Load(8, &it.overrunCur) 817 stateSourceObject.Load(9, &it.overrunLast) 818 } 819 820 func (l *processGroupList) StateTypeName() string { 821 return "pkg/sentry/kernel.processGroupList" 822 } 823 824 func (l *processGroupList) StateFields() []string { 825 return []string{ 826 "head", 827 "tail", 828 } 829 } 830 831 func (l *processGroupList) beforeSave() {} 832 833 // +checklocksignore 834 func (l *processGroupList) StateSave(stateSinkObject state.Sink) { 835 l.beforeSave() 836 stateSinkObject.Save(0, &l.head) 837 stateSinkObject.Save(1, &l.tail) 838 } 839 840 func (l *processGroupList) afterLoad() {} 841 842 // +checklocksignore 843 func (l *processGroupList) StateLoad(stateSourceObject state.Source) { 844 stateSourceObject.Load(0, &l.head) 845 stateSourceObject.Load(1, &l.tail) 846 } 847 848 func (e *processGroupEntry) StateTypeName() string { 849 return "pkg/sentry/kernel.processGroupEntry" 850 } 851 852 func (e *processGroupEntry) StateFields() []string { 853 return []string{ 854 "next", 855 "prev", 856 } 857 } 858 859 func (e *processGroupEntry) beforeSave() {} 860 861 // +checklocksignore 862 func (e *processGroupEntry) StateSave(stateSinkObject state.Sink) { 863 e.beforeSave() 864 stateSinkObject.Save(0, &e.next) 865 stateSinkObject.Save(1, &e.prev) 866 } 867 868 func (e *processGroupEntry) afterLoad() {} 869 870 // +checklocksignore 871 func (e *processGroupEntry) StateLoad(stateSourceObject state.Source) { 872 stateSourceObject.Load(0, &e.next) 873 stateSourceObject.Load(1, &e.prev) 874 } 875 876 func (r *ProcessGroupRefs) StateTypeName() string { 877 return "pkg/sentry/kernel.ProcessGroupRefs" 878 } 879 880 func (r *ProcessGroupRefs) StateFields() []string { 881 return []string{ 882 "refCount", 883 } 884 } 885 886 func (r *ProcessGroupRefs) beforeSave() {} 887 888 // +checklocksignore 889 func (r *ProcessGroupRefs) StateSave(stateSinkObject state.Sink) { 890 r.beforeSave() 891 stateSinkObject.Save(0, &r.refCount) 892 } 893 894 // +checklocksignore 895 func (r *ProcessGroupRefs) StateLoad(stateSourceObject state.Source) { 896 stateSourceObject.Load(0, &r.refCount) 897 stateSourceObject.AfterLoad(r.afterLoad) 898 } 899 900 func (p *ptraceOptions) StateTypeName() string { 901 return "pkg/sentry/kernel.ptraceOptions" 902 } 903 904 func (p *ptraceOptions) StateFields() []string { 905 return []string{ 906 "ExitKill", 907 "SysGood", 908 "TraceClone", 909 "TraceExec", 910 "TraceExit", 911 "TraceFork", 912 "TraceSeccomp", 913 "TraceVfork", 914 "TraceVforkDone", 915 } 916 } 917 918 func (p *ptraceOptions) beforeSave() {} 919 920 // +checklocksignore 921 func (p *ptraceOptions) StateSave(stateSinkObject state.Sink) { 922 p.beforeSave() 923 stateSinkObject.Save(0, &p.ExitKill) 924 stateSinkObject.Save(1, &p.SysGood) 925 stateSinkObject.Save(2, &p.TraceClone) 926 stateSinkObject.Save(3, &p.TraceExec) 927 stateSinkObject.Save(4, &p.TraceExit) 928 stateSinkObject.Save(5, &p.TraceFork) 929 stateSinkObject.Save(6, &p.TraceSeccomp) 930 stateSinkObject.Save(7, &p.TraceVfork) 931 stateSinkObject.Save(8, &p.TraceVforkDone) 932 } 933 934 func (p *ptraceOptions) afterLoad() {} 935 936 // +checklocksignore 937 func (p *ptraceOptions) StateLoad(stateSourceObject state.Source) { 938 stateSourceObject.Load(0, &p.ExitKill) 939 stateSourceObject.Load(1, &p.SysGood) 940 stateSourceObject.Load(2, &p.TraceClone) 941 stateSourceObject.Load(3, &p.TraceExec) 942 stateSourceObject.Load(4, &p.TraceExit) 943 stateSourceObject.Load(5, &p.TraceFork) 944 stateSourceObject.Load(6, &p.TraceSeccomp) 945 stateSourceObject.Load(7, &p.TraceVfork) 946 stateSourceObject.Load(8, &p.TraceVforkDone) 947 } 948 949 func (s *ptraceStop) StateTypeName() string { 950 return "pkg/sentry/kernel.ptraceStop" 951 } 952 953 func (s *ptraceStop) StateFields() []string { 954 return []string{ 955 "frozen", 956 "listen", 957 } 958 } 959 960 func (s *ptraceStop) beforeSave() {} 961 962 // +checklocksignore 963 func (s *ptraceStop) StateSave(stateSinkObject state.Sink) { 964 s.beforeSave() 965 stateSinkObject.Save(0, &s.frozen) 966 stateSinkObject.Save(1, &s.listen) 967 } 968 969 func (s *ptraceStop) afterLoad() {} 970 971 // +checklocksignore 972 func (s *ptraceStop) StateLoad(stateSourceObject state.Source) { 973 stateSourceObject.Load(0, &s.frozen) 974 stateSourceObject.Load(1, &s.listen) 975 } 976 977 func (o *OldRSeqCriticalRegion) StateTypeName() string { 978 return "pkg/sentry/kernel.OldRSeqCriticalRegion" 979 } 980 981 func (o *OldRSeqCriticalRegion) StateFields() []string { 982 return []string{ 983 "CriticalSection", 984 "Restart", 985 } 986 } 987 988 func (o *OldRSeqCriticalRegion) beforeSave() {} 989 990 // +checklocksignore 991 func (o *OldRSeqCriticalRegion) StateSave(stateSinkObject state.Sink) { 992 o.beforeSave() 993 stateSinkObject.Save(0, &o.CriticalSection) 994 stateSinkObject.Save(1, &o.Restart) 995 } 996 997 func (o *OldRSeqCriticalRegion) afterLoad() {} 998 999 // +checklocksignore 1000 func (o *OldRSeqCriticalRegion) StateLoad(stateSourceObject state.Source) { 1001 stateSourceObject.Load(0, &o.CriticalSection) 1002 stateSourceObject.Load(1, &o.Restart) 1003 } 1004 1005 func (l *sessionList) StateTypeName() string { 1006 return "pkg/sentry/kernel.sessionList" 1007 } 1008 1009 func (l *sessionList) StateFields() []string { 1010 return []string{ 1011 "head", 1012 "tail", 1013 } 1014 } 1015 1016 func (l *sessionList) beforeSave() {} 1017 1018 // +checklocksignore 1019 func (l *sessionList) StateSave(stateSinkObject state.Sink) { 1020 l.beforeSave() 1021 stateSinkObject.Save(0, &l.head) 1022 stateSinkObject.Save(1, &l.tail) 1023 } 1024 1025 func (l *sessionList) afterLoad() {} 1026 1027 // +checklocksignore 1028 func (l *sessionList) StateLoad(stateSourceObject state.Source) { 1029 stateSourceObject.Load(0, &l.head) 1030 stateSourceObject.Load(1, &l.tail) 1031 } 1032 1033 func (e *sessionEntry) StateTypeName() string { 1034 return "pkg/sentry/kernel.sessionEntry" 1035 } 1036 1037 func (e *sessionEntry) StateFields() []string { 1038 return []string{ 1039 "next", 1040 "prev", 1041 } 1042 } 1043 1044 func (e *sessionEntry) beforeSave() {} 1045 1046 // +checklocksignore 1047 func (e *sessionEntry) StateSave(stateSinkObject state.Sink) { 1048 e.beforeSave() 1049 stateSinkObject.Save(0, &e.next) 1050 stateSinkObject.Save(1, &e.prev) 1051 } 1052 1053 func (e *sessionEntry) afterLoad() {} 1054 1055 // +checklocksignore 1056 func (e *sessionEntry) StateLoad(stateSourceObject state.Source) { 1057 stateSourceObject.Load(0, &e.next) 1058 stateSourceObject.Load(1, &e.prev) 1059 } 1060 1061 func (r *SessionRefs) StateTypeName() string { 1062 return "pkg/sentry/kernel.SessionRefs" 1063 } 1064 1065 func (r *SessionRefs) StateFields() []string { 1066 return []string{ 1067 "refCount", 1068 } 1069 } 1070 1071 func (r *SessionRefs) beforeSave() {} 1072 1073 // +checklocksignore 1074 func (r *SessionRefs) StateSave(stateSinkObject state.Sink) { 1075 r.beforeSave() 1076 stateSinkObject.Save(0, &r.refCount) 1077 } 1078 1079 // +checklocksignore 1080 func (r *SessionRefs) StateLoad(stateSourceObject state.Source) { 1081 stateSourceObject.Load(0, &r.refCount) 1082 stateSourceObject.AfterLoad(r.afterLoad) 1083 } 1084 1085 func (s *Session) StateTypeName() string { 1086 return "pkg/sentry/kernel.Session" 1087 } 1088 1089 func (s *Session) StateFields() []string { 1090 return []string{ 1091 "SessionRefs", 1092 "leader", 1093 "id", 1094 "foreground", 1095 "processGroups", 1096 "sessionEntry", 1097 } 1098 } 1099 1100 func (s *Session) beforeSave() {} 1101 1102 // +checklocksignore 1103 func (s *Session) StateSave(stateSinkObject state.Sink) { 1104 s.beforeSave() 1105 stateSinkObject.Save(0, &s.SessionRefs) 1106 stateSinkObject.Save(1, &s.leader) 1107 stateSinkObject.Save(2, &s.id) 1108 stateSinkObject.Save(3, &s.foreground) 1109 stateSinkObject.Save(4, &s.processGroups) 1110 stateSinkObject.Save(5, &s.sessionEntry) 1111 } 1112 1113 func (s *Session) afterLoad() {} 1114 1115 // +checklocksignore 1116 func (s *Session) StateLoad(stateSourceObject state.Source) { 1117 stateSourceObject.Load(0, &s.SessionRefs) 1118 stateSourceObject.Load(1, &s.leader) 1119 stateSourceObject.Load(2, &s.id) 1120 stateSourceObject.Load(3, &s.foreground) 1121 stateSourceObject.Load(4, &s.processGroups) 1122 stateSourceObject.Load(5, &s.sessionEntry) 1123 } 1124 1125 func (pg *ProcessGroup) StateTypeName() string { 1126 return "pkg/sentry/kernel.ProcessGroup" 1127 } 1128 1129 func (pg *ProcessGroup) StateFields() []string { 1130 return []string{ 1131 "refs", 1132 "originator", 1133 "id", 1134 "session", 1135 "ancestors", 1136 "processGroupEntry", 1137 } 1138 } 1139 1140 func (pg *ProcessGroup) beforeSave() {} 1141 1142 // +checklocksignore 1143 func (pg *ProcessGroup) StateSave(stateSinkObject state.Sink) { 1144 pg.beforeSave() 1145 stateSinkObject.Save(0, &pg.refs) 1146 stateSinkObject.Save(1, &pg.originator) 1147 stateSinkObject.Save(2, &pg.id) 1148 stateSinkObject.Save(3, &pg.session) 1149 stateSinkObject.Save(4, &pg.ancestors) 1150 stateSinkObject.Save(5, &pg.processGroupEntry) 1151 } 1152 1153 func (pg *ProcessGroup) afterLoad() {} 1154 1155 // +checklocksignore 1156 func (pg *ProcessGroup) StateLoad(stateSourceObject state.Source) { 1157 stateSourceObject.Load(0, &pg.refs) 1158 stateSourceObject.Load(1, &pg.originator) 1159 stateSourceObject.Load(2, &pg.id) 1160 stateSourceObject.Load(3, &pg.session) 1161 stateSourceObject.Load(4, &pg.ancestors) 1162 stateSourceObject.Load(5, &pg.processGroupEntry) 1163 } 1164 1165 func (sh *SignalHandlers) StateTypeName() string { 1166 return "pkg/sentry/kernel.SignalHandlers" 1167 } 1168 1169 func (sh *SignalHandlers) StateFields() []string { 1170 return []string{ 1171 "actions", 1172 } 1173 } 1174 1175 func (sh *SignalHandlers) beforeSave() {} 1176 1177 // +checklocksignore 1178 func (sh *SignalHandlers) StateSave(stateSinkObject state.Sink) { 1179 sh.beforeSave() 1180 stateSinkObject.Save(0, &sh.actions) 1181 } 1182 1183 func (sh *SignalHandlers) afterLoad() {} 1184 1185 // +checklocksignore 1186 func (sh *SignalHandlers) StateLoad(stateSourceObject state.Source) { 1187 stateSourceObject.Load(0, &sh.actions) 1188 } 1189 1190 func (s *syscallTableInfo) StateTypeName() string { 1191 return "pkg/sentry/kernel.syscallTableInfo" 1192 } 1193 1194 func (s *syscallTableInfo) StateFields() []string { 1195 return []string{ 1196 "OS", 1197 "Arch", 1198 } 1199 } 1200 1201 func (s *syscallTableInfo) beforeSave() {} 1202 1203 // +checklocksignore 1204 func (s *syscallTableInfo) StateSave(stateSinkObject state.Sink) { 1205 s.beforeSave() 1206 stateSinkObject.Save(0, &s.OS) 1207 stateSinkObject.Save(1, &s.Arch) 1208 } 1209 1210 func (s *syscallTableInfo) afterLoad() {} 1211 1212 // +checklocksignore 1213 func (s *syscallTableInfo) StateLoad(stateSourceObject state.Source) { 1214 stateSourceObject.Load(0, &s.OS) 1215 stateSourceObject.Load(1, &s.Arch) 1216 } 1217 1218 func (s *syslog) StateTypeName() string { 1219 return "pkg/sentry/kernel.syslog" 1220 } 1221 1222 func (s *syslog) StateFields() []string { 1223 return []string{ 1224 "msg", 1225 } 1226 } 1227 1228 func (s *syslog) beforeSave() {} 1229 1230 // +checklocksignore 1231 func (s *syslog) StateSave(stateSinkObject state.Sink) { 1232 s.beforeSave() 1233 stateSinkObject.Save(0, &s.msg) 1234 } 1235 1236 func (s *syslog) afterLoad() {} 1237 1238 // +checklocksignore 1239 func (s *syslog) StateLoad(stateSourceObject state.Source) { 1240 stateSourceObject.Load(0, &s.msg) 1241 } 1242 1243 func (t *Task) StateTypeName() string { 1244 return "pkg/sentry/kernel.Task" 1245 } 1246 1247 func (t *Task) StateFields() []string { 1248 return []string{ 1249 "taskNode", 1250 "runState", 1251 "taskWorkCount", 1252 "taskWork", 1253 "haveSyscallReturn", 1254 "gosched", 1255 "yieldCount", 1256 "pendingSignals", 1257 "signalMask", 1258 "realSignalMask", 1259 "haveSavedSignalMask", 1260 "savedSignalMask", 1261 "signalStack", 1262 "signalQueue", 1263 "groupStopPending", 1264 "groupStopAcknowledged", 1265 "trapStopPending", 1266 "trapNotifyPending", 1267 "stop", 1268 "exitStatus", 1269 "syscallRestartBlock", 1270 "k", 1271 "containerID", 1272 "image", 1273 "fsContext", 1274 "fdTable", 1275 "vforkParent", 1276 "exitState", 1277 "exitTracerNotified", 1278 "exitTracerAcked", 1279 "exitParentNotified", 1280 "exitParentAcked", 1281 "ptraceTracer", 1282 "ptraceTracees", 1283 "ptraceSeized", 1284 "ptraceOpts", 1285 "ptraceSyscallMode", 1286 "ptraceSinglestep", 1287 "ptraceCode", 1288 "ptraceSiginfo", 1289 "ptraceEventMsg", 1290 "ptraceYAMAExceptionAdded", 1291 "ioUsage", 1292 "creds", 1293 "utsns", 1294 "ipcns", 1295 "abstractSockets", 1296 "mountNamespace", 1297 "parentDeathSignal", 1298 "syscallFilters", 1299 "cleartid", 1300 "allowedCPUMask", 1301 "cpu", 1302 "niceness", 1303 "numaPolicy", 1304 "numaNodeMask", 1305 "netns", 1306 "rseqCPU", 1307 "oldRSeqCPUAddr", 1308 "rseqAddr", 1309 "rseqSignature", 1310 "robustList", 1311 "startTime", 1312 "kcov", 1313 "cgroups", 1314 "memCgID", 1315 "userCounters", 1316 } 1317 } 1318 1319 func (t *Task) beforeSave() {} 1320 1321 // +checklocksignore 1322 func (t *Task) StateSave(stateSinkObject state.Sink) { 1323 t.beforeSave() 1324 var ptraceTracerValue *Task 1325 ptraceTracerValue = t.savePtraceTracer() 1326 stateSinkObject.SaveValue(32, ptraceTracerValue) 1327 var syscallFiltersValue []bpf.Program 1328 syscallFiltersValue = t.saveSyscallFilters() 1329 stateSinkObject.SaveValue(49, syscallFiltersValue) 1330 stateSinkObject.Save(0, &t.taskNode) 1331 stateSinkObject.Save(1, &t.runState) 1332 stateSinkObject.Save(2, &t.taskWorkCount) 1333 stateSinkObject.Save(3, &t.taskWork) 1334 stateSinkObject.Save(4, &t.haveSyscallReturn) 1335 stateSinkObject.Save(5, &t.gosched) 1336 stateSinkObject.Save(6, &t.yieldCount) 1337 stateSinkObject.Save(7, &t.pendingSignals) 1338 stateSinkObject.Save(8, &t.signalMask) 1339 stateSinkObject.Save(9, &t.realSignalMask) 1340 stateSinkObject.Save(10, &t.haveSavedSignalMask) 1341 stateSinkObject.Save(11, &t.savedSignalMask) 1342 stateSinkObject.Save(12, &t.signalStack) 1343 stateSinkObject.Save(13, &t.signalQueue) 1344 stateSinkObject.Save(14, &t.groupStopPending) 1345 stateSinkObject.Save(15, &t.groupStopAcknowledged) 1346 stateSinkObject.Save(16, &t.trapStopPending) 1347 stateSinkObject.Save(17, &t.trapNotifyPending) 1348 stateSinkObject.Save(18, &t.stop) 1349 stateSinkObject.Save(19, &t.exitStatus) 1350 stateSinkObject.Save(20, &t.syscallRestartBlock) 1351 stateSinkObject.Save(21, &t.k) 1352 stateSinkObject.Save(22, &t.containerID) 1353 stateSinkObject.Save(23, &t.image) 1354 stateSinkObject.Save(24, &t.fsContext) 1355 stateSinkObject.Save(25, &t.fdTable) 1356 stateSinkObject.Save(26, &t.vforkParent) 1357 stateSinkObject.Save(27, &t.exitState) 1358 stateSinkObject.Save(28, &t.exitTracerNotified) 1359 stateSinkObject.Save(29, &t.exitTracerAcked) 1360 stateSinkObject.Save(30, &t.exitParentNotified) 1361 stateSinkObject.Save(31, &t.exitParentAcked) 1362 stateSinkObject.Save(33, &t.ptraceTracees) 1363 stateSinkObject.Save(34, &t.ptraceSeized) 1364 stateSinkObject.Save(35, &t.ptraceOpts) 1365 stateSinkObject.Save(36, &t.ptraceSyscallMode) 1366 stateSinkObject.Save(37, &t.ptraceSinglestep) 1367 stateSinkObject.Save(38, &t.ptraceCode) 1368 stateSinkObject.Save(39, &t.ptraceSiginfo) 1369 stateSinkObject.Save(40, &t.ptraceEventMsg) 1370 stateSinkObject.Save(41, &t.ptraceYAMAExceptionAdded) 1371 stateSinkObject.Save(42, &t.ioUsage) 1372 stateSinkObject.Save(43, &t.creds) 1373 stateSinkObject.Save(44, &t.utsns) 1374 stateSinkObject.Save(45, &t.ipcns) 1375 stateSinkObject.Save(46, &t.abstractSockets) 1376 stateSinkObject.Save(47, &t.mountNamespace) 1377 stateSinkObject.Save(48, &t.parentDeathSignal) 1378 stateSinkObject.Save(50, &t.cleartid) 1379 stateSinkObject.Save(51, &t.allowedCPUMask) 1380 stateSinkObject.Save(52, &t.cpu) 1381 stateSinkObject.Save(53, &t.niceness) 1382 stateSinkObject.Save(54, &t.numaPolicy) 1383 stateSinkObject.Save(55, &t.numaNodeMask) 1384 stateSinkObject.Save(56, &t.netns) 1385 stateSinkObject.Save(57, &t.rseqCPU) 1386 stateSinkObject.Save(58, &t.oldRSeqCPUAddr) 1387 stateSinkObject.Save(59, &t.rseqAddr) 1388 stateSinkObject.Save(60, &t.rseqSignature) 1389 stateSinkObject.Save(61, &t.robustList) 1390 stateSinkObject.Save(62, &t.startTime) 1391 stateSinkObject.Save(63, &t.kcov) 1392 stateSinkObject.Save(64, &t.cgroups) 1393 stateSinkObject.Save(65, &t.memCgID) 1394 stateSinkObject.Save(66, &t.userCounters) 1395 } 1396 1397 // +checklocksignore 1398 func (t *Task) StateLoad(stateSourceObject state.Source) { 1399 stateSourceObject.Load(0, &t.taskNode) 1400 stateSourceObject.Load(1, &t.runState) 1401 stateSourceObject.Load(2, &t.taskWorkCount) 1402 stateSourceObject.Load(3, &t.taskWork) 1403 stateSourceObject.Load(4, &t.haveSyscallReturn) 1404 stateSourceObject.Load(5, &t.gosched) 1405 stateSourceObject.Load(6, &t.yieldCount) 1406 stateSourceObject.Load(7, &t.pendingSignals) 1407 stateSourceObject.Load(8, &t.signalMask) 1408 stateSourceObject.Load(9, &t.realSignalMask) 1409 stateSourceObject.Load(10, &t.haveSavedSignalMask) 1410 stateSourceObject.Load(11, &t.savedSignalMask) 1411 stateSourceObject.Load(12, &t.signalStack) 1412 stateSourceObject.Load(13, &t.signalQueue) 1413 stateSourceObject.Load(14, &t.groupStopPending) 1414 stateSourceObject.Load(15, &t.groupStopAcknowledged) 1415 stateSourceObject.Load(16, &t.trapStopPending) 1416 stateSourceObject.Load(17, &t.trapNotifyPending) 1417 stateSourceObject.Load(18, &t.stop) 1418 stateSourceObject.Load(19, &t.exitStatus) 1419 stateSourceObject.Load(20, &t.syscallRestartBlock) 1420 stateSourceObject.Load(21, &t.k) 1421 stateSourceObject.Load(22, &t.containerID) 1422 stateSourceObject.Load(23, &t.image) 1423 stateSourceObject.Load(24, &t.fsContext) 1424 stateSourceObject.Load(25, &t.fdTable) 1425 stateSourceObject.Load(26, &t.vforkParent) 1426 stateSourceObject.Load(27, &t.exitState) 1427 stateSourceObject.Load(28, &t.exitTracerNotified) 1428 stateSourceObject.Load(29, &t.exitTracerAcked) 1429 stateSourceObject.Load(30, &t.exitParentNotified) 1430 stateSourceObject.Load(31, &t.exitParentAcked) 1431 stateSourceObject.Load(33, &t.ptraceTracees) 1432 stateSourceObject.Load(34, &t.ptraceSeized) 1433 stateSourceObject.Load(35, &t.ptraceOpts) 1434 stateSourceObject.Load(36, &t.ptraceSyscallMode) 1435 stateSourceObject.Load(37, &t.ptraceSinglestep) 1436 stateSourceObject.Load(38, &t.ptraceCode) 1437 stateSourceObject.Load(39, &t.ptraceSiginfo) 1438 stateSourceObject.Load(40, &t.ptraceEventMsg) 1439 stateSourceObject.Load(41, &t.ptraceYAMAExceptionAdded) 1440 stateSourceObject.Load(42, &t.ioUsage) 1441 stateSourceObject.Load(43, &t.creds) 1442 stateSourceObject.Load(44, &t.utsns) 1443 stateSourceObject.Load(45, &t.ipcns) 1444 stateSourceObject.Load(46, &t.abstractSockets) 1445 stateSourceObject.Load(47, &t.mountNamespace) 1446 stateSourceObject.Load(48, &t.parentDeathSignal) 1447 stateSourceObject.Load(50, &t.cleartid) 1448 stateSourceObject.Load(51, &t.allowedCPUMask) 1449 stateSourceObject.Load(52, &t.cpu) 1450 stateSourceObject.Load(53, &t.niceness) 1451 stateSourceObject.Load(54, &t.numaPolicy) 1452 stateSourceObject.Load(55, &t.numaNodeMask) 1453 stateSourceObject.Load(56, &t.netns) 1454 stateSourceObject.Load(57, &t.rseqCPU) 1455 stateSourceObject.Load(58, &t.oldRSeqCPUAddr) 1456 stateSourceObject.Load(59, &t.rseqAddr) 1457 stateSourceObject.Load(60, &t.rseqSignature) 1458 stateSourceObject.Load(61, &t.robustList) 1459 stateSourceObject.Load(62, &t.startTime) 1460 stateSourceObject.Load(63, &t.kcov) 1461 stateSourceObject.Load(64, &t.cgroups) 1462 stateSourceObject.Load(65, &t.memCgID) 1463 stateSourceObject.Load(66, &t.userCounters) 1464 stateSourceObject.LoadValue(32, new(*Task), func(y any) { t.loadPtraceTracer(y.(*Task)) }) 1465 stateSourceObject.LoadValue(49, new([]bpf.Program), func(y any) { t.loadSyscallFilters(y.([]bpf.Program)) }) 1466 stateSourceObject.AfterLoad(t.afterLoad) 1467 } 1468 1469 func (r *runSyscallAfterPtraceEventClone) StateTypeName() string { 1470 return "pkg/sentry/kernel.runSyscallAfterPtraceEventClone" 1471 } 1472 1473 func (r *runSyscallAfterPtraceEventClone) StateFields() []string { 1474 return []string{ 1475 "vforkChild", 1476 "vforkChildTID", 1477 } 1478 } 1479 1480 func (r *runSyscallAfterPtraceEventClone) beforeSave() {} 1481 1482 // +checklocksignore 1483 func (r *runSyscallAfterPtraceEventClone) StateSave(stateSinkObject state.Sink) { 1484 r.beforeSave() 1485 stateSinkObject.Save(0, &r.vforkChild) 1486 stateSinkObject.Save(1, &r.vforkChildTID) 1487 } 1488 1489 func (r *runSyscallAfterPtraceEventClone) afterLoad() {} 1490 1491 // +checklocksignore 1492 func (r *runSyscallAfterPtraceEventClone) StateLoad(stateSourceObject state.Source) { 1493 stateSourceObject.Load(0, &r.vforkChild) 1494 stateSourceObject.Load(1, &r.vforkChildTID) 1495 } 1496 1497 func (r *runSyscallAfterVforkStop) StateTypeName() string { 1498 return "pkg/sentry/kernel.runSyscallAfterVforkStop" 1499 } 1500 1501 func (r *runSyscallAfterVforkStop) StateFields() []string { 1502 return []string{ 1503 "childTID", 1504 } 1505 } 1506 1507 func (r *runSyscallAfterVforkStop) beforeSave() {} 1508 1509 // +checklocksignore 1510 func (r *runSyscallAfterVforkStop) StateSave(stateSinkObject state.Sink) { 1511 r.beforeSave() 1512 stateSinkObject.Save(0, &r.childTID) 1513 } 1514 1515 func (r *runSyscallAfterVforkStop) afterLoad() {} 1516 1517 // +checklocksignore 1518 func (r *runSyscallAfterVforkStop) StateLoad(stateSourceObject state.Source) { 1519 stateSourceObject.Load(0, &r.childTID) 1520 } 1521 1522 func (v *vforkStop) StateTypeName() string { 1523 return "pkg/sentry/kernel.vforkStop" 1524 } 1525 1526 func (v *vforkStop) StateFields() []string { 1527 return []string{} 1528 } 1529 1530 func (v *vforkStop) beforeSave() {} 1531 1532 // +checklocksignore 1533 func (v *vforkStop) StateSave(stateSinkObject state.Sink) { 1534 v.beforeSave() 1535 } 1536 1537 func (v *vforkStop) afterLoad() {} 1538 1539 // +checklocksignore 1540 func (v *vforkStop) StateLoad(stateSourceObject state.Source) { 1541 } 1542 1543 func (e *execStop) StateTypeName() string { 1544 return "pkg/sentry/kernel.execStop" 1545 } 1546 1547 func (e *execStop) StateFields() []string { 1548 return []string{} 1549 } 1550 1551 func (e *execStop) beforeSave() {} 1552 1553 // +checklocksignore 1554 func (e *execStop) StateSave(stateSinkObject state.Sink) { 1555 e.beforeSave() 1556 } 1557 1558 func (e *execStop) afterLoad() {} 1559 1560 // +checklocksignore 1561 func (e *execStop) StateLoad(stateSourceObject state.Source) { 1562 } 1563 1564 func (r *runSyscallAfterExecStop) StateTypeName() string { 1565 return "pkg/sentry/kernel.runSyscallAfterExecStop" 1566 } 1567 1568 func (r *runSyscallAfterExecStop) StateFields() []string { 1569 return []string{ 1570 "image", 1571 } 1572 } 1573 1574 func (r *runSyscallAfterExecStop) beforeSave() {} 1575 1576 // +checklocksignore 1577 func (r *runSyscallAfterExecStop) StateSave(stateSinkObject state.Sink) { 1578 r.beforeSave() 1579 stateSinkObject.Save(0, &r.image) 1580 } 1581 1582 func (r *runSyscallAfterExecStop) afterLoad() {} 1583 1584 // +checklocksignore 1585 func (r *runSyscallAfterExecStop) StateLoad(stateSourceObject state.Source) { 1586 stateSourceObject.Load(0, &r.image) 1587 } 1588 1589 func (r *runExit) StateTypeName() string { 1590 return "pkg/sentry/kernel.runExit" 1591 } 1592 1593 func (r *runExit) StateFields() []string { 1594 return []string{} 1595 } 1596 1597 func (r *runExit) beforeSave() {} 1598 1599 // +checklocksignore 1600 func (r *runExit) StateSave(stateSinkObject state.Sink) { 1601 r.beforeSave() 1602 } 1603 1604 func (r *runExit) afterLoad() {} 1605 1606 // +checklocksignore 1607 func (r *runExit) StateLoad(stateSourceObject state.Source) { 1608 } 1609 1610 func (r *runExitMain) StateTypeName() string { 1611 return "pkg/sentry/kernel.runExitMain" 1612 } 1613 1614 func (r *runExitMain) StateFields() []string { 1615 return []string{} 1616 } 1617 1618 func (r *runExitMain) beforeSave() {} 1619 1620 // +checklocksignore 1621 func (r *runExitMain) StateSave(stateSinkObject state.Sink) { 1622 r.beforeSave() 1623 } 1624 1625 func (r *runExitMain) afterLoad() {} 1626 1627 // +checklocksignore 1628 func (r *runExitMain) StateLoad(stateSourceObject state.Source) { 1629 } 1630 1631 func (r *runExitNotify) StateTypeName() string { 1632 return "pkg/sentry/kernel.runExitNotify" 1633 } 1634 1635 func (r *runExitNotify) StateFields() []string { 1636 return []string{} 1637 } 1638 1639 func (r *runExitNotify) beforeSave() {} 1640 1641 // +checklocksignore 1642 func (r *runExitNotify) StateSave(stateSinkObject state.Sink) { 1643 r.beforeSave() 1644 } 1645 1646 func (r *runExitNotify) afterLoad() {} 1647 1648 // +checklocksignore 1649 func (r *runExitNotify) StateLoad(stateSourceObject state.Source) { 1650 } 1651 1652 func (image *TaskImage) StateTypeName() string { 1653 return "pkg/sentry/kernel.TaskImage" 1654 } 1655 1656 func (image *TaskImage) StateFields() []string { 1657 return []string{ 1658 "Name", 1659 "Arch", 1660 "MemoryManager", 1661 "fu", 1662 "st", 1663 } 1664 } 1665 1666 func (image *TaskImage) beforeSave() {} 1667 1668 // +checklocksignore 1669 func (image *TaskImage) StateSave(stateSinkObject state.Sink) { 1670 image.beforeSave() 1671 var stValue syscallTableInfo 1672 stValue = image.saveSt() 1673 stateSinkObject.SaveValue(4, stValue) 1674 stateSinkObject.Save(0, &image.Name) 1675 stateSinkObject.Save(1, &image.Arch) 1676 stateSinkObject.Save(2, &image.MemoryManager) 1677 stateSinkObject.Save(3, &image.fu) 1678 } 1679 1680 func (image *TaskImage) afterLoad() {} 1681 1682 // +checklocksignore 1683 func (image *TaskImage) StateLoad(stateSourceObject state.Source) { 1684 stateSourceObject.Load(0, &image.Name) 1685 stateSourceObject.Load(1, &image.Arch) 1686 stateSourceObject.Load(2, &image.MemoryManager) 1687 stateSourceObject.Load(3, &image.fu) 1688 stateSourceObject.LoadValue(4, new(syscallTableInfo), func(y any) { image.loadSt(y.(syscallTableInfo)) }) 1689 } 1690 1691 func (l *taskList) StateTypeName() string { 1692 return "pkg/sentry/kernel.taskList" 1693 } 1694 1695 func (l *taskList) StateFields() []string { 1696 return []string{ 1697 "head", 1698 "tail", 1699 } 1700 } 1701 1702 func (l *taskList) beforeSave() {} 1703 1704 // +checklocksignore 1705 func (l *taskList) StateSave(stateSinkObject state.Sink) { 1706 l.beforeSave() 1707 stateSinkObject.Save(0, &l.head) 1708 stateSinkObject.Save(1, &l.tail) 1709 } 1710 1711 func (l *taskList) afterLoad() {} 1712 1713 // +checklocksignore 1714 func (l *taskList) StateLoad(stateSourceObject state.Source) { 1715 stateSourceObject.Load(0, &l.head) 1716 stateSourceObject.Load(1, &l.tail) 1717 } 1718 1719 func (e *taskEntry) StateTypeName() string { 1720 return "pkg/sentry/kernel.taskEntry" 1721 } 1722 1723 func (e *taskEntry) StateFields() []string { 1724 return []string{ 1725 "next", 1726 "prev", 1727 } 1728 } 1729 1730 func (e *taskEntry) beforeSave() {} 1731 1732 // +checklocksignore 1733 func (e *taskEntry) StateSave(stateSinkObject state.Sink) { 1734 e.beforeSave() 1735 stateSinkObject.Save(0, &e.next) 1736 stateSinkObject.Save(1, &e.prev) 1737 } 1738 1739 func (e *taskEntry) afterLoad() {} 1740 1741 // +checklocksignore 1742 func (e *taskEntry) StateLoad(stateSourceObject state.Source) { 1743 stateSourceObject.Load(0, &e.next) 1744 stateSourceObject.Load(1, &e.prev) 1745 } 1746 1747 func (app *runApp) StateTypeName() string { 1748 return "pkg/sentry/kernel.runApp" 1749 } 1750 1751 func (app *runApp) StateFields() []string { 1752 return []string{} 1753 } 1754 1755 func (app *runApp) beforeSave() {} 1756 1757 // +checklocksignore 1758 func (app *runApp) StateSave(stateSinkObject state.Sink) { 1759 app.beforeSave() 1760 } 1761 1762 func (app *runApp) afterLoad() {} 1763 1764 // +checklocksignore 1765 func (app *runApp) StateLoad(stateSourceObject state.Source) { 1766 } 1767 1768 func (ts *TaskGoroutineSchedInfo) StateTypeName() string { 1769 return "pkg/sentry/kernel.TaskGoroutineSchedInfo" 1770 } 1771 1772 func (ts *TaskGoroutineSchedInfo) StateFields() []string { 1773 return []string{ 1774 "Timestamp", 1775 "State", 1776 "UserTicks", 1777 "SysTicks", 1778 } 1779 } 1780 1781 func (ts *TaskGoroutineSchedInfo) beforeSave() {} 1782 1783 // +checklocksignore 1784 func (ts *TaskGoroutineSchedInfo) StateSave(stateSinkObject state.Sink) { 1785 ts.beforeSave() 1786 stateSinkObject.Save(0, &ts.Timestamp) 1787 stateSinkObject.Save(1, &ts.State) 1788 stateSinkObject.Save(2, &ts.UserTicks) 1789 stateSinkObject.Save(3, &ts.SysTicks) 1790 } 1791 1792 func (ts *TaskGoroutineSchedInfo) afterLoad() {} 1793 1794 // +checklocksignore 1795 func (ts *TaskGoroutineSchedInfo) StateLoad(stateSourceObject state.Source) { 1796 stateSourceObject.Load(0, &ts.Timestamp) 1797 stateSourceObject.Load(1, &ts.State) 1798 stateSourceObject.Load(2, &ts.UserTicks) 1799 stateSourceObject.Load(3, &ts.SysTicks) 1800 } 1801 1802 func (tc *taskClock) StateTypeName() string { 1803 return "pkg/sentry/kernel.taskClock" 1804 } 1805 1806 func (tc *taskClock) StateFields() []string { 1807 return []string{ 1808 "t", 1809 "includeSys", 1810 } 1811 } 1812 1813 func (tc *taskClock) beforeSave() {} 1814 1815 // +checklocksignore 1816 func (tc *taskClock) StateSave(stateSinkObject state.Sink) { 1817 tc.beforeSave() 1818 stateSinkObject.Save(0, &tc.t) 1819 stateSinkObject.Save(1, &tc.includeSys) 1820 } 1821 1822 func (tc *taskClock) afterLoad() {} 1823 1824 // +checklocksignore 1825 func (tc *taskClock) StateLoad(stateSourceObject state.Source) { 1826 stateSourceObject.Load(0, &tc.t) 1827 stateSourceObject.Load(1, &tc.includeSys) 1828 } 1829 1830 func (tgc *tgClock) StateTypeName() string { 1831 return "pkg/sentry/kernel.tgClock" 1832 } 1833 1834 func (tgc *tgClock) StateFields() []string { 1835 return []string{ 1836 "tg", 1837 "includeSys", 1838 } 1839 } 1840 1841 func (tgc *tgClock) beforeSave() {} 1842 1843 // +checklocksignore 1844 func (tgc *tgClock) StateSave(stateSinkObject state.Sink) { 1845 tgc.beforeSave() 1846 stateSinkObject.Save(0, &tgc.tg) 1847 stateSinkObject.Save(1, &tgc.includeSys) 1848 } 1849 1850 func (tgc *tgClock) afterLoad() {} 1851 1852 // +checklocksignore 1853 func (tgc *tgClock) StateLoad(stateSourceObject state.Source) { 1854 stateSourceObject.Load(0, &tgc.tg) 1855 stateSourceObject.Load(1, &tgc.includeSys) 1856 } 1857 1858 func (g *groupStop) StateTypeName() string { 1859 return "pkg/sentry/kernel.groupStop" 1860 } 1861 1862 func (g *groupStop) StateFields() []string { 1863 return []string{} 1864 } 1865 1866 func (g *groupStop) beforeSave() {} 1867 1868 // +checklocksignore 1869 func (g *groupStop) StateSave(stateSinkObject state.Sink) { 1870 g.beforeSave() 1871 } 1872 1873 func (g *groupStop) afterLoad() {} 1874 1875 // +checklocksignore 1876 func (g *groupStop) StateLoad(stateSourceObject state.Source) { 1877 } 1878 1879 func (r *runInterrupt) StateTypeName() string { 1880 return "pkg/sentry/kernel.runInterrupt" 1881 } 1882 1883 func (r *runInterrupt) StateFields() []string { 1884 return []string{} 1885 } 1886 1887 func (r *runInterrupt) beforeSave() {} 1888 1889 // +checklocksignore 1890 func (r *runInterrupt) StateSave(stateSinkObject state.Sink) { 1891 r.beforeSave() 1892 } 1893 1894 func (r *runInterrupt) afterLoad() {} 1895 1896 // +checklocksignore 1897 func (r *runInterrupt) StateLoad(stateSourceObject state.Source) { 1898 } 1899 1900 func (r *runInterruptAfterSignalDeliveryStop) StateTypeName() string { 1901 return "pkg/sentry/kernel.runInterruptAfterSignalDeliveryStop" 1902 } 1903 1904 func (r *runInterruptAfterSignalDeliveryStop) StateFields() []string { 1905 return []string{} 1906 } 1907 1908 func (r *runInterruptAfterSignalDeliveryStop) beforeSave() {} 1909 1910 // +checklocksignore 1911 func (r *runInterruptAfterSignalDeliveryStop) StateSave(stateSinkObject state.Sink) { 1912 r.beforeSave() 1913 } 1914 1915 func (r *runInterruptAfterSignalDeliveryStop) afterLoad() {} 1916 1917 // +checklocksignore 1918 func (r *runInterruptAfterSignalDeliveryStop) StateLoad(stateSourceObject state.Source) { 1919 } 1920 1921 func (r *runSyscallAfterSyscallEnterStop) StateTypeName() string { 1922 return "pkg/sentry/kernel.runSyscallAfterSyscallEnterStop" 1923 } 1924 1925 func (r *runSyscallAfterSyscallEnterStop) StateFields() []string { 1926 return []string{} 1927 } 1928 1929 func (r *runSyscallAfterSyscallEnterStop) beforeSave() {} 1930 1931 // +checklocksignore 1932 func (r *runSyscallAfterSyscallEnterStop) StateSave(stateSinkObject state.Sink) { 1933 r.beforeSave() 1934 } 1935 1936 func (r *runSyscallAfterSyscallEnterStop) afterLoad() {} 1937 1938 // +checklocksignore 1939 func (r *runSyscallAfterSyscallEnterStop) StateLoad(stateSourceObject state.Source) { 1940 } 1941 1942 func (r *runSyscallAfterSysemuStop) StateTypeName() string { 1943 return "pkg/sentry/kernel.runSyscallAfterSysemuStop" 1944 } 1945 1946 func (r *runSyscallAfterSysemuStop) StateFields() []string { 1947 return []string{} 1948 } 1949 1950 func (r *runSyscallAfterSysemuStop) beforeSave() {} 1951 1952 // +checklocksignore 1953 func (r *runSyscallAfterSysemuStop) StateSave(stateSinkObject state.Sink) { 1954 r.beforeSave() 1955 } 1956 1957 func (r *runSyscallAfterSysemuStop) afterLoad() {} 1958 1959 // +checklocksignore 1960 func (r *runSyscallAfterSysemuStop) StateLoad(stateSourceObject state.Source) { 1961 } 1962 1963 func (r *runSyscallReinvoke) StateTypeName() string { 1964 return "pkg/sentry/kernel.runSyscallReinvoke" 1965 } 1966 1967 func (r *runSyscallReinvoke) StateFields() []string { 1968 return []string{} 1969 } 1970 1971 func (r *runSyscallReinvoke) beforeSave() {} 1972 1973 // +checklocksignore 1974 func (r *runSyscallReinvoke) StateSave(stateSinkObject state.Sink) { 1975 r.beforeSave() 1976 } 1977 1978 func (r *runSyscallReinvoke) afterLoad() {} 1979 1980 // +checklocksignore 1981 func (r *runSyscallReinvoke) StateLoad(stateSourceObject state.Source) { 1982 } 1983 1984 func (r *runSyscallExit) StateTypeName() string { 1985 return "pkg/sentry/kernel.runSyscallExit" 1986 } 1987 1988 func (r *runSyscallExit) StateFields() []string { 1989 return []string{} 1990 } 1991 1992 func (r *runSyscallExit) beforeSave() {} 1993 1994 // +checklocksignore 1995 func (r *runSyscallExit) StateSave(stateSinkObject state.Sink) { 1996 r.beforeSave() 1997 } 1998 1999 func (r *runSyscallExit) afterLoad() {} 2000 2001 // +checklocksignore 2002 func (r *runSyscallExit) StateLoad(stateSourceObject state.Source) { 2003 } 2004 2005 func (tg *ThreadGroup) StateTypeName() string { 2006 return "pkg/sentry/kernel.ThreadGroup" 2007 } 2008 2009 func (tg *ThreadGroup) StateFields() []string { 2010 return []string{ 2011 "threadGroupNode", 2012 "signalHandlers", 2013 "pendingSignals", 2014 "groupStopDequeued", 2015 "groupStopSignal", 2016 "groupStopPendingCount", 2017 "groupStopComplete", 2018 "groupStopWaitable", 2019 "groupContNotify", 2020 "groupContInterrupted", 2021 "groupContWaitable", 2022 "exiting", 2023 "exitStatus", 2024 "terminationSignal", 2025 "itimerRealTimer", 2026 "itimerVirtSetting", 2027 "itimerProfSetting", 2028 "rlimitCPUSoftSetting", 2029 "cpuTimersEnabled", 2030 "timers", 2031 "nextTimerID", 2032 "exitedCPUStats", 2033 "childCPUStats", 2034 "ioUsage", 2035 "maxRSS", 2036 "childMaxRSS", 2037 "limits", 2038 "processGroup", 2039 "execed", 2040 "oldRSeqCritical", 2041 "tty", 2042 "oomScoreAdj", 2043 "isChildSubreaper", 2044 "hasChildSubreaper", 2045 } 2046 } 2047 2048 func (tg *ThreadGroup) beforeSave() {} 2049 2050 // +checklocksignore 2051 func (tg *ThreadGroup) StateSave(stateSinkObject state.Sink) { 2052 tg.beforeSave() 2053 var oldRSeqCriticalValue *OldRSeqCriticalRegion 2054 oldRSeqCriticalValue = tg.saveOldRSeqCritical() 2055 stateSinkObject.SaveValue(29, oldRSeqCriticalValue) 2056 stateSinkObject.Save(0, &tg.threadGroupNode) 2057 stateSinkObject.Save(1, &tg.signalHandlers) 2058 stateSinkObject.Save(2, &tg.pendingSignals) 2059 stateSinkObject.Save(3, &tg.groupStopDequeued) 2060 stateSinkObject.Save(4, &tg.groupStopSignal) 2061 stateSinkObject.Save(5, &tg.groupStopPendingCount) 2062 stateSinkObject.Save(6, &tg.groupStopComplete) 2063 stateSinkObject.Save(7, &tg.groupStopWaitable) 2064 stateSinkObject.Save(8, &tg.groupContNotify) 2065 stateSinkObject.Save(9, &tg.groupContInterrupted) 2066 stateSinkObject.Save(10, &tg.groupContWaitable) 2067 stateSinkObject.Save(11, &tg.exiting) 2068 stateSinkObject.Save(12, &tg.exitStatus) 2069 stateSinkObject.Save(13, &tg.terminationSignal) 2070 stateSinkObject.Save(14, &tg.itimerRealTimer) 2071 stateSinkObject.Save(15, &tg.itimerVirtSetting) 2072 stateSinkObject.Save(16, &tg.itimerProfSetting) 2073 stateSinkObject.Save(17, &tg.rlimitCPUSoftSetting) 2074 stateSinkObject.Save(18, &tg.cpuTimersEnabled) 2075 stateSinkObject.Save(19, &tg.timers) 2076 stateSinkObject.Save(20, &tg.nextTimerID) 2077 stateSinkObject.Save(21, &tg.exitedCPUStats) 2078 stateSinkObject.Save(22, &tg.childCPUStats) 2079 stateSinkObject.Save(23, &tg.ioUsage) 2080 stateSinkObject.Save(24, &tg.maxRSS) 2081 stateSinkObject.Save(25, &tg.childMaxRSS) 2082 stateSinkObject.Save(26, &tg.limits) 2083 stateSinkObject.Save(27, &tg.processGroup) 2084 stateSinkObject.Save(28, &tg.execed) 2085 stateSinkObject.Save(30, &tg.tty) 2086 stateSinkObject.Save(31, &tg.oomScoreAdj) 2087 stateSinkObject.Save(32, &tg.isChildSubreaper) 2088 stateSinkObject.Save(33, &tg.hasChildSubreaper) 2089 } 2090 2091 func (tg *ThreadGroup) afterLoad() {} 2092 2093 // +checklocksignore 2094 func (tg *ThreadGroup) StateLoad(stateSourceObject state.Source) { 2095 stateSourceObject.Load(0, &tg.threadGroupNode) 2096 stateSourceObject.Load(1, &tg.signalHandlers) 2097 stateSourceObject.Load(2, &tg.pendingSignals) 2098 stateSourceObject.Load(3, &tg.groupStopDequeued) 2099 stateSourceObject.Load(4, &tg.groupStopSignal) 2100 stateSourceObject.Load(5, &tg.groupStopPendingCount) 2101 stateSourceObject.Load(6, &tg.groupStopComplete) 2102 stateSourceObject.Load(7, &tg.groupStopWaitable) 2103 stateSourceObject.Load(8, &tg.groupContNotify) 2104 stateSourceObject.Load(9, &tg.groupContInterrupted) 2105 stateSourceObject.Load(10, &tg.groupContWaitable) 2106 stateSourceObject.Load(11, &tg.exiting) 2107 stateSourceObject.Load(12, &tg.exitStatus) 2108 stateSourceObject.Load(13, &tg.terminationSignal) 2109 stateSourceObject.Load(14, &tg.itimerRealTimer) 2110 stateSourceObject.Load(15, &tg.itimerVirtSetting) 2111 stateSourceObject.Load(16, &tg.itimerProfSetting) 2112 stateSourceObject.Load(17, &tg.rlimitCPUSoftSetting) 2113 stateSourceObject.Load(18, &tg.cpuTimersEnabled) 2114 stateSourceObject.Load(19, &tg.timers) 2115 stateSourceObject.Load(20, &tg.nextTimerID) 2116 stateSourceObject.Load(21, &tg.exitedCPUStats) 2117 stateSourceObject.Load(22, &tg.childCPUStats) 2118 stateSourceObject.Load(23, &tg.ioUsage) 2119 stateSourceObject.Load(24, &tg.maxRSS) 2120 stateSourceObject.Load(25, &tg.childMaxRSS) 2121 stateSourceObject.Load(26, &tg.limits) 2122 stateSourceObject.Load(27, &tg.processGroup) 2123 stateSourceObject.Load(28, &tg.execed) 2124 stateSourceObject.Load(30, &tg.tty) 2125 stateSourceObject.Load(31, &tg.oomScoreAdj) 2126 stateSourceObject.Load(32, &tg.isChildSubreaper) 2127 stateSourceObject.Load(33, &tg.hasChildSubreaper) 2128 stateSourceObject.LoadValue(29, new(*OldRSeqCriticalRegion), func(y any) { tg.loadOldRSeqCritical(y.(*OldRSeqCriticalRegion)) }) 2129 } 2130 2131 func (l *itimerRealListener) StateTypeName() string { 2132 return "pkg/sentry/kernel.itimerRealListener" 2133 } 2134 2135 func (l *itimerRealListener) StateFields() []string { 2136 return []string{ 2137 "tg", 2138 } 2139 } 2140 2141 func (l *itimerRealListener) beforeSave() {} 2142 2143 // +checklocksignore 2144 func (l *itimerRealListener) StateSave(stateSinkObject state.Sink) { 2145 l.beforeSave() 2146 stateSinkObject.Save(0, &l.tg) 2147 } 2148 2149 func (l *itimerRealListener) afterLoad() {} 2150 2151 // +checklocksignore 2152 func (l *itimerRealListener) StateLoad(stateSourceObject state.Source) { 2153 stateSourceObject.Load(0, &l.tg) 2154 } 2155 2156 func (ts *TaskSet) StateTypeName() string { 2157 return "pkg/sentry/kernel.TaskSet" 2158 } 2159 2160 func (ts *TaskSet) StateFields() []string { 2161 return []string{ 2162 "Root", 2163 "sessions", 2164 } 2165 } 2166 2167 func (ts *TaskSet) beforeSave() {} 2168 2169 // +checklocksignore 2170 func (ts *TaskSet) StateSave(stateSinkObject state.Sink) { 2171 ts.beforeSave() 2172 stateSinkObject.Save(0, &ts.Root) 2173 stateSinkObject.Save(1, &ts.sessions) 2174 } 2175 2176 func (ts *TaskSet) afterLoad() {} 2177 2178 // +checklocksignore 2179 func (ts *TaskSet) StateLoad(stateSourceObject state.Source) { 2180 stateSourceObject.Load(0, &ts.Root) 2181 stateSourceObject.Load(1, &ts.sessions) 2182 } 2183 2184 func (ns *PIDNamespace) StateTypeName() string { 2185 return "pkg/sentry/kernel.PIDNamespace" 2186 } 2187 2188 func (ns *PIDNamespace) StateFields() []string { 2189 return []string{ 2190 "owner", 2191 "parent", 2192 "userns", 2193 "id", 2194 "last", 2195 "tasks", 2196 "tids", 2197 "tgids", 2198 "sessions", 2199 "sids", 2200 "processGroups", 2201 "pgids", 2202 "exiting", 2203 "extra", 2204 } 2205 } 2206 2207 func (ns *PIDNamespace) beforeSave() {} 2208 2209 // +checklocksignore 2210 func (ns *PIDNamespace) StateSave(stateSinkObject state.Sink) { 2211 ns.beforeSave() 2212 stateSinkObject.Save(0, &ns.owner) 2213 stateSinkObject.Save(1, &ns.parent) 2214 stateSinkObject.Save(2, &ns.userns) 2215 stateSinkObject.Save(3, &ns.id) 2216 stateSinkObject.Save(4, &ns.last) 2217 stateSinkObject.Save(5, &ns.tasks) 2218 stateSinkObject.Save(6, &ns.tids) 2219 stateSinkObject.Save(7, &ns.tgids) 2220 stateSinkObject.Save(8, &ns.sessions) 2221 stateSinkObject.Save(9, &ns.sids) 2222 stateSinkObject.Save(10, &ns.processGroups) 2223 stateSinkObject.Save(11, &ns.pgids) 2224 stateSinkObject.Save(12, &ns.exiting) 2225 stateSinkObject.Save(13, &ns.extra) 2226 } 2227 2228 func (ns *PIDNamespace) afterLoad() {} 2229 2230 // +checklocksignore 2231 func (ns *PIDNamespace) StateLoad(stateSourceObject state.Source) { 2232 stateSourceObject.Load(0, &ns.owner) 2233 stateSourceObject.Load(1, &ns.parent) 2234 stateSourceObject.Load(2, &ns.userns) 2235 stateSourceObject.Load(3, &ns.id) 2236 stateSourceObject.Load(4, &ns.last) 2237 stateSourceObject.Load(5, &ns.tasks) 2238 stateSourceObject.Load(6, &ns.tids) 2239 stateSourceObject.Load(7, &ns.tgids) 2240 stateSourceObject.Load(8, &ns.sessions) 2241 stateSourceObject.Load(9, &ns.sids) 2242 stateSourceObject.Load(10, &ns.processGroups) 2243 stateSourceObject.Load(11, &ns.pgids) 2244 stateSourceObject.Load(12, &ns.exiting) 2245 stateSourceObject.Load(13, &ns.extra) 2246 } 2247 2248 func (t *threadGroupNode) StateTypeName() string { 2249 return "pkg/sentry/kernel.threadGroupNode" 2250 } 2251 2252 func (t *threadGroupNode) StateFields() []string { 2253 return []string{ 2254 "pidns", 2255 "pidWithinNS", 2256 "eventQueue", 2257 "leader", 2258 "execing", 2259 "tasks", 2260 "tasksCount", 2261 "liveTasks", 2262 "activeTasks", 2263 } 2264 } 2265 2266 func (t *threadGroupNode) beforeSave() {} 2267 2268 // +checklocksignore 2269 func (t *threadGroupNode) StateSave(stateSinkObject state.Sink) { 2270 t.beforeSave() 2271 stateSinkObject.Save(0, &t.pidns) 2272 stateSinkObject.Save(1, &t.pidWithinNS) 2273 stateSinkObject.Save(2, &t.eventQueue) 2274 stateSinkObject.Save(3, &t.leader) 2275 stateSinkObject.Save(4, &t.execing) 2276 stateSinkObject.Save(5, &t.tasks) 2277 stateSinkObject.Save(6, &t.tasksCount) 2278 stateSinkObject.Save(7, &t.liveTasks) 2279 stateSinkObject.Save(8, &t.activeTasks) 2280 } 2281 2282 func (t *threadGroupNode) afterLoad() {} 2283 2284 // +checklocksignore 2285 func (t *threadGroupNode) StateLoad(stateSourceObject state.Source) { 2286 stateSourceObject.Load(0, &t.pidns) 2287 stateSourceObject.Load(1, &t.pidWithinNS) 2288 stateSourceObject.Load(2, &t.eventQueue) 2289 stateSourceObject.Load(3, &t.leader) 2290 stateSourceObject.Load(4, &t.execing) 2291 stateSourceObject.Load(5, &t.tasks) 2292 stateSourceObject.Load(6, &t.tasksCount) 2293 stateSourceObject.Load(7, &t.liveTasks) 2294 stateSourceObject.Load(8, &t.activeTasks) 2295 } 2296 2297 func (t *taskNode) StateTypeName() string { 2298 return "pkg/sentry/kernel.taskNode" 2299 } 2300 2301 func (t *taskNode) StateFields() []string { 2302 return []string{ 2303 "tg", 2304 "taskEntry", 2305 "parent", 2306 "children", 2307 "childPIDNamespace", 2308 } 2309 } 2310 2311 func (t *taskNode) beforeSave() {} 2312 2313 // +checklocksignore 2314 func (t *taskNode) StateSave(stateSinkObject state.Sink) { 2315 t.beforeSave() 2316 stateSinkObject.Save(0, &t.tg) 2317 stateSinkObject.Save(1, &t.taskEntry) 2318 stateSinkObject.Save(2, &t.parent) 2319 stateSinkObject.Save(3, &t.children) 2320 stateSinkObject.Save(4, &t.childPIDNamespace) 2321 } 2322 2323 func (t *taskNode) afterLoad() {} 2324 2325 // +checklocksignore 2326 func (t *taskNode) StateLoad(stateSourceObject state.Source) { 2327 stateSourceObject.LoadWait(0, &t.tg) 2328 stateSourceObject.Load(1, &t.taskEntry) 2329 stateSourceObject.Load(2, &t.parent) 2330 stateSourceObject.Load(3, &t.children) 2331 stateSourceObject.Load(4, &t.childPIDNamespace) 2332 } 2333 2334 func (t *Timekeeper) StateTypeName() string { 2335 return "pkg/sentry/kernel.Timekeeper" 2336 } 2337 2338 func (t *Timekeeper) StateFields() []string { 2339 return []string{ 2340 "realtimeClock", 2341 "monotonicClock", 2342 "bootTime", 2343 "saveMonotonic", 2344 "saveRealtime", 2345 "params", 2346 } 2347 } 2348 2349 // +checklocksignore 2350 func (t *Timekeeper) StateSave(stateSinkObject state.Sink) { 2351 t.beforeSave() 2352 stateSinkObject.Save(0, &t.realtimeClock) 2353 stateSinkObject.Save(1, &t.monotonicClock) 2354 stateSinkObject.Save(2, &t.bootTime) 2355 stateSinkObject.Save(3, &t.saveMonotonic) 2356 stateSinkObject.Save(4, &t.saveRealtime) 2357 stateSinkObject.Save(5, &t.params) 2358 } 2359 2360 // +checklocksignore 2361 func (t *Timekeeper) StateLoad(stateSourceObject state.Source) { 2362 stateSourceObject.Load(0, &t.realtimeClock) 2363 stateSourceObject.Load(1, &t.monotonicClock) 2364 stateSourceObject.Load(2, &t.bootTime) 2365 stateSourceObject.Load(3, &t.saveMonotonic) 2366 stateSourceObject.Load(4, &t.saveRealtime) 2367 stateSourceObject.Load(5, &t.params) 2368 stateSourceObject.AfterLoad(t.afterLoad) 2369 } 2370 2371 func (tc *timekeeperClock) StateTypeName() string { 2372 return "pkg/sentry/kernel.timekeeperClock" 2373 } 2374 2375 func (tc *timekeeperClock) StateFields() []string { 2376 return []string{ 2377 "tk", 2378 "c", 2379 } 2380 } 2381 2382 func (tc *timekeeperClock) beforeSave() {} 2383 2384 // +checklocksignore 2385 func (tc *timekeeperClock) StateSave(stateSinkObject state.Sink) { 2386 tc.beforeSave() 2387 stateSinkObject.Save(0, &tc.tk) 2388 stateSinkObject.Save(1, &tc.c) 2389 } 2390 2391 func (tc *timekeeperClock) afterLoad() {} 2392 2393 // +checklocksignore 2394 func (tc *timekeeperClock) StateLoad(stateSourceObject state.Source) { 2395 stateSourceObject.Load(0, &tc.tk) 2396 stateSourceObject.Load(1, &tc.c) 2397 } 2398 2399 func (tty *TTY) StateTypeName() string { 2400 return "pkg/sentry/kernel.TTY" 2401 } 2402 2403 func (tty *TTY) StateFields() []string { 2404 return []string{ 2405 "Index", 2406 "tg", 2407 } 2408 } 2409 2410 func (tty *TTY) beforeSave() {} 2411 2412 // +checklocksignore 2413 func (tty *TTY) StateSave(stateSinkObject state.Sink) { 2414 tty.beforeSave() 2415 stateSinkObject.Save(0, &tty.Index) 2416 stateSinkObject.Save(1, &tty.tg) 2417 } 2418 2419 func (tty *TTY) afterLoad() {} 2420 2421 // +checklocksignore 2422 func (tty *TTY) StateLoad(stateSourceObject state.Source) { 2423 stateSourceObject.Load(0, &tty.Index) 2424 stateSourceObject.Load(1, &tty.tg) 2425 } 2426 2427 func (u *UTSNamespace) StateTypeName() string { 2428 return "pkg/sentry/kernel.UTSNamespace" 2429 } 2430 2431 func (u *UTSNamespace) StateFields() []string { 2432 return []string{ 2433 "hostName", 2434 "domainName", 2435 "userns", 2436 } 2437 } 2438 2439 func (u *UTSNamespace) beforeSave() {} 2440 2441 // +checklocksignore 2442 func (u *UTSNamespace) StateSave(stateSinkObject state.Sink) { 2443 u.beforeSave() 2444 stateSinkObject.Save(0, &u.hostName) 2445 stateSinkObject.Save(1, &u.domainName) 2446 stateSinkObject.Save(2, &u.userns) 2447 } 2448 2449 func (u *UTSNamespace) afterLoad() {} 2450 2451 // +checklocksignore 2452 func (u *UTSNamespace) StateLoad(stateSourceObject state.Source) { 2453 stateSourceObject.Load(0, &u.hostName) 2454 stateSourceObject.Load(1, &u.domainName) 2455 stateSourceObject.Load(2, &u.userns) 2456 } 2457 2458 func (v *VDSOParamPage) StateTypeName() string { 2459 return "pkg/sentry/kernel.VDSOParamPage" 2460 } 2461 2462 func (v *VDSOParamPage) StateFields() []string { 2463 return []string{ 2464 "mfp", 2465 "fr", 2466 "seq", 2467 "copyScratchBuffer", 2468 } 2469 } 2470 2471 func (v *VDSOParamPage) beforeSave() {} 2472 2473 // +checklocksignore 2474 func (v *VDSOParamPage) StateSave(stateSinkObject state.Sink) { 2475 v.beforeSave() 2476 stateSinkObject.Save(0, &v.mfp) 2477 stateSinkObject.Save(1, &v.fr) 2478 stateSinkObject.Save(2, &v.seq) 2479 stateSinkObject.Save(3, &v.copyScratchBuffer) 2480 } 2481 2482 func (v *VDSOParamPage) afterLoad() {} 2483 2484 // +checklocksignore 2485 func (v *VDSOParamPage) StateLoad(stateSourceObject state.Source) { 2486 stateSourceObject.Load(0, &v.mfp) 2487 stateSourceObject.Load(1, &v.fr) 2488 stateSourceObject.Load(2, &v.seq) 2489 stateSourceObject.Load(3, &v.copyScratchBuffer) 2490 } 2491 2492 func init() { 2493 state.Register((*abstractEndpoint)(nil)) 2494 state.Register((*AbstractSocketNamespace)(nil)) 2495 state.Register((*Cgroup)(nil)) 2496 state.Register((*hierarchy)(nil)) 2497 state.Register((*CgroupRegistry)(nil)) 2498 state.Register((*FDFlags)(nil)) 2499 state.Register((*descriptor)(nil)) 2500 state.Register((*FDTable)(nil)) 2501 state.Register((*FDTableRefs)(nil)) 2502 state.Register((*FSContext)(nil)) 2503 state.Register((*FSContextRefs)(nil)) 2504 state.Register((*IPCNamespace)(nil)) 2505 state.Register((*IPCNamespaceRefs)(nil)) 2506 state.Register((*userCounters)(nil)) 2507 state.Register((*Kernel)(nil)) 2508 state.Register((*SocketRecord)(nil)) 2509 state.Register((*pendingSignals)(nil)) 2510 state.Register((*pendingSignalQueue)(nil)) 2511 state.Register((*pendingSignal)(nil)) 2512 state.Register((*pendingSignalList)(nil)) 2513 state.Register((*pendingSignalEntry)(nil)) 2514 state.Register((*savedPendingSignal)(nil)) 2515 state.Register((*IntervalTimer)(nil)) 2516 state.Register((*processGroupList)(nil)) 2517 state.Register((*processGroupEntry)(nil)) 2518 state.Register((*ProcessGroupRefs)(nil)) 2519 state.Register((*ptraceOptions)(nil)) 2520 state.Register((*ptraceStop)(nil)) 2521 state.Register((*OldRSeqCriticalRegion)(nil)) 2522 state.Register((*sessionList)(nil)) 2523 state.Register((*sessionEntry)(nil)) 2524 state.Register((*SessionRefs)(nil)) 2525 state.Register((*Session)(nil)) 2526 state.Register((*ProcessGroup)(nil)) 2527 state.Register((*SignalHandlers)(nil)) 2528 state.Register((*syscallTableInfo)(nil)) 2529 state.Register((*syslog)(nil)) 2530 state.Register((*Task)(nil)) 2531 state.Register((*runSyscallAfterPtraceEventClone)(nil)) 2532 state.Register((*runSyscallAfterVforkStop)(nil)) 2533 state.Register((*vforkStop)(nil)) 2534 state.Register((*execStop)(nil)) 2535 state.Register((*runSyscallAfterExecStop)(nil)) 2536 state.Register((*runExit)(nil)) 2537 state.Register((*runExitMain)(nil)) 2538 state.Register((*runExitNotify)(nil)) 2539 state.Register((*TaskImage)(nil)) 2540 state.Register((*taskList)(nil)) 2541 state.Register((*taskEntry)(nil)) 2542 state.Register((*runApp)(nil)) 2543 state.Register((*TaskGoroutineSchedInfo)(nil)) 2544 state.Register((*taskClock)(nil)) 2545 state.Register((*tgClock)(nil)) 2546 state.Register((*groupStop)(nil)) 2547 state.Register((*runInterrupt)(nil)) 2548 state.Register((*runInterruptAfterSignalDeliveryStop)(nil)) 2549 state.Register((*runSyscallAfterSyscallEnterStop)(nil)) 2550 state.Register((*runSyscallAfterSysemuStop)(nil)) 2551 state.Register((*runSyscallReinvoke)(nil)) 2552 state.Register((*runSyscallExit)(nil)) 2553 state.Register((*ThreadGroup)(nil)) 2554 state.Register((*itimerRealListener)(nil)) 2555 state.Register((*TaskSet)(nil)) 2556 state.Register((*PIDNamespace)(nil)) 2557 state.Register((*threadGroupNode)(nil)) 2558 state.Register((*taskNode)(nil)) 2559 state.Register((*Timekeeper)(nil)) 2560 state.Register((*timekeeperClock)(nil)) 2561 state.Register((*TTY)(nil)) 2562 state.Register((*UTSNamespace)(nil)) 2563 state.Register((*VDSOParamPage)(nil)) 2564 }