code: func (t *Tx) Enqueue(id uint64, totalDataLen, bufferCount uint32, buffer *TxBuffer) bool {
  	// Reserve room in the tx pipe.
  	totalLen := sizeOfPacketHeader + uint64(bufferCount)*sizeOfBufferDescriptor
  
  	b := t.tx.Push(totalLen)
  	if b == nil {
  		return false
  	}
  
  	// Initialize the packet and buffer descriptors.
  	binary.LittleEndian.PutUint64(b[packetID:], id)
  	binary.LittleEndian.PutUint32(b[packetSize:], totalDataLen)
  	binary.LittleEndian.PutUint32(b[packetReserved:], 0)
  
  	offset := sizeOfPacketHeader
  	for i := bufferCount; i != 0; i-- {
  		binary.LittleEndian.PutUint64(b[offset+bufferOffset:], buffer.Offset)
  		binary.LittleEndian.PutUint32(b[offset+bufferSize:], buffer.Size)
  		offset += sizeOfBufferDescriptor
  		buffer = buffer.Next
  	}
  
  	t.tx.Flush()
  
  	return true
  }
docs: // Enqueue queues the given linked list of buffers for transmission as one
  // packet. While it is queued, the caller must not modify them.