more better

This commit is contained in:
JackDoan
2025-11-12 15:53:46 -06:00
parent 1a83817cc2
commit 715750d7c8
5 changed files with 120 additions and 41 deletions

View File

@@ -5,18 +5,35 @@ import (
)
type VirtIOPacket struct {
Payload []byte
buf []byte
Header virtio.NetHdr
Payload []byte
Header virtio.NetHdr
Chains []uint16
ChainRefs [][]byte
// RecycleDescriptorChains(chains []uint16, kick bool) error
Recycler func([]uint16, bool) error
}
func NewVIO() *VirtIOPacket {
out := new(VirtIOPacket)
out.Payload = make([]byte, Size)
out.buf = out.Payload
out.ChainRefs = make([][]byte, 0, 4)
out.Chains = make([]uint16, 0, 8)
return out
}
func (v *VirtIOPacket) Reset() {
v.Payload = v.buf[:Size]
v.Payload = nil
v.ChainRefs = v.ChainRefs[:0]
v.Chains = v.Chains[:0]
}
func (v *VirtIOPacket) Recycle(lastOne bool) error {
if v.Recycler != nil {
err := v.Recycler(v.Chains, lastOne)
if err != nil {
return err
}
}
v.Reset()
return nil
}