// automatically generated by stateify.

package waiter

import (
	"gvisor.dev/gvisor/pkg/state"
)

func (x *Entry) beforeSave() {}
func (x *Entry) save(m state.Map) {
	x.beforeSave()
	m.Save("Context", &x.Context)
	m.Save("Callback", &x.Callback)
	m.Save("mask", &x.mask)
	m.Save("waiterEntry", &x.waiterEntry)
}

func (x *Entry) afterLoad() {}
func (x *Entry) load(m state.Map) {
	m.Load("Context", &x.Context)
	m.Load("Callback", &x.Callback)
	m.Load("mask", &x.mask)
	m.Load("waiterEntry", &x.waiterEntry)
}

func (x *Queue) beforeSave() {}
func (x *Queue) save(m state.Map) {
	x.beforeSave()
	if !state.IsZeroValue(&x.list) {
		m.Failf("list is %#v, expected zero", &x.list)
	}
}

func (x *Queue) afterLoad() {}
func (x *Queue) load(m state.Map) {
}

func (x *waiterList) beforeSave() {}
func (x *waiterList) save(m state.Map) {
	x.beforeSave()
	m.Save("head", &x.head)
	m.Save("tail", &x.tail)
}

func (x *waiterList) afterLoad() {}
func (x *waiterList) load(m state.Map) {
	m.Load("head", &x.head)
	m.Load("tail", &x.tail)
}

func (x *waiterEntry) beforeSave() {}
func (x *waiterEntry) save(m state.Map) {
	x.beforeSave()
	m.Save("next", &x.next)
	m.Save("prev", &x.prev)
}

func (x *waiterEntry) afterLoad() {}
func (x *waiterEntry) load(m state.Map) {
	m.Load("next", &x.next)
	m.Load("prev", &x.prev)
}

func init() {
	state.Register("pkg/waiter.Entry", (*Entry)(nil), state.Fns{Save: (*Entry).save, Load: (*Entry).load})
	state.Register("pkg/waiter.Queue", (*Queue)(nil), state.Fns{Save: (*Queue).save, Load: (*Queue).load})
	state.Register("pkg/waiter.waiterList", (*waiterList)(nil), state.Fns{Save: (*waiterList).save, Load: (*waiterList).load})
	state.Register("pkg/waiter.waiterEntry", (*waiterEntry)(nil), state.Fns{Save: (*waiterEntry).save, Load: (*waiterEntry).load})
}