func New(reg BufferRegistry, bufsize, size int) (*Pool, error) {
	alloc := &allocator{
		max:        size,
		bufferSize: bufsize,
		reg:        reg,
	}
	if err := alloc.init(); err != nil {
		return nil, err
	}
	var (
		head *node
	)
	for i := size - 1; i >= 0; i-- {
		head = &node{
			next:  head,
			index: i,
		}
	}
	return &Pool{
		alloc: alloc,
		head:  head,
	}, nil
}
New will initialize mmap'ed memory region, of the total size 16 bytes + size*bufsize
and register mmap'ed memory as buffer in io_uring.
package fixed
import (
	"runtime"
	"sync"
	"sync/atomic"
	"syscall"
	"unsafe"
)
type BufferRegistry interface {
	RegisterBuffers([]syscall.Iovec) error
}
var bufferPool = sync.Pool{
	New: func() interface{} {
		return &Buffer{}
	},
}