// automatically generated by stateify. package gro import ( "context" "github.com/sagernet/gvisor/pkg/state" ) func (gb *groBucket) StateTypeName() string { return "pkg/tcpip/stack/gro.groBucket" } func (gb *groBucket) StateFields() []string { return []string{ "count", "packets", "packetsPrealloc", "allocIdxs", } } func (gb *groBucket) beforeSave() {} // +checklocksignore func (gb *groBucket) StateSave(stateSinkObject state.Sink) { gb.beforeSave() stateSinkObject.Save(0, &gb.count) stateSinkObject.Save(1, &gb.packets) stateSinkObject.Save(2, &gb.packetsPrealloc) stateSinkObject.Save(3, &gb.allocIdxs) } func (gb *groBucket) afterLoad(context.Context) {} // +checklocksignore func (gb *groBucket) StateLoad(ctx context.Context, stateSourceObject state.Source) { stateSourceObject.Load(0, &gb.count) stateSourceObject.Load(1, &gb.packets) stateSourceObject.Load(2, &gb.packetsPrealloc) stateSourceObject.Load(3, &gb.allocIdxs) } func (pk *groPacket) StateTypeName() string { return "pkg/tcpip/stack/gro.groPacket" } func (pk *groPacket) StateFields() []string { return []string{ "groPacketEntry", "pkt", "ipHdr", "tcpHdr", "initialLength", "idx", } } func (pk *groPacket) beforeSave() {} // +checklocksignore func (pk *groPacket) StateSave(stateSinkObject state.Sink) { pk.beforeSave() stateSinkObject.Save(0, &pk.groPacketEntry) stateSinkObject.Save(1, &pk.pkt) stateSinkObject.Save(2, &pk.ipHdr) stateSinkObject.Save(3, &pk.tcpHdr) stateSinkObject.Save(4, &pk.initialLength) stateSinkObject.Save(5, &pk.idx) } func (pk *groPacket) afterLoad(context.Context) {} // +checklocksignore func (pk *groPacket) StateLoad(ctx context.Context, stateSourceObject state.Source) { stateSourceObject.Load(0, &pk.groPacketEntry) stateSourceObject.Load(1, &pk.pkt) stateSourceObject.Load(2, &pk.ipHdr) stateSourceObject.Load(3, &pk.tcpHdr) stateSourceObject.Load(4, &pk.initialLength) stateSourceObject.Load(5, &pk.idx) } func (gd *GRO) StateTypeName() string { return "pkg/tcpip/stack/gro.GRO" } func (gd *GRO) StateFields() []string { return []string{ "enabled", "buckets", "Dispatcher", } } func (gd *GRO) beforeSave() {} // +checklocksignore func (gd *GRO) StateSave(stateSinkObject state.Sink) { gd.beforeSave() stateSinkObject.Save(0, &gd.enabled) stateSinkObject.Save(1, &gd.buckets) stateSinkObject.Save(2, &gd.Dispatcher) } func (gd *GRO) afterLoad(context.Context) {} // +checklocksignore func (gd *GRO) StateLoad(ctx context.Context, stateSourceObject state.Source) { stateSourceObject.Load(0, &gd.enabled) stateSourceObject.Load(1, &gd.buckets) stateSourceObject.Load(2, &gd.Dispatcher) } func (l *groPacketList) StateTypeName() string { return "pkg/tcpip/stack/gro.groPacketList" } func (l *groPacketList) StateFields() []string { return []string{ "head", "tail", } } func (l *groPacketList) beforeSave() {} // +checklocksignore func (l *groPacketList) StateSave(stateSinkObject state.Sink) { l.beforeSave() stateSinkObject.Save(0, &l.head) stateSinkObject.Save(1, &l.tail) } func (l *groPacketList) afterLoad(context.Context) {} // +checklocksignore func (l *groPacketList) StateLoad(ctx context.Context, stateSourceObject state.Source) { stateSourceObject.Load(0, &l.head) stateSourceObject.Load(1, &l.tail) } func (e *groPacketEntry) StateTypeName() string { return "pkg/tcpip/stack/gro.groPacketEntry" } func (e *groPacketEntry) StateFields() []string { return []string{ "next", "prev", } } func (e *groPacketEntry) beforeSave() {} // +checklocksignore func (e *groPacketEntry) StateSave(stateSinkObject state.Sink) { e.beforeSave() stateSinkObject.Save(0, &e.next) stateSinkObject.Save(1, &e.prev) } func (e *groPacketEntry) afterLoad(context.Context) {} // +checklocksignore func (e *groPacketEntry) StateLoad(ctx context.Context, stateSourceObject state.Source) { stateSourceObject.Load(0, &e.next) stateSourceObject.Load(1, &e.prev) } func init() { state.Register((*groBucket)(nil)) state.Register((*groPacket)(nil)) state.Register((*GRO)(nil)) state.Register((*groPacketList)(nil)) state.Register((*groPacketEntry)(nil)) }