code: func (e *Ethtool) CmdGetMapped(intf string) (map[string]uint64, error) {
  	ecmd := EthtoolCmd{
  		Cmd: ETHTOOL_GSET,
  	}
  
  	var name [IFNAMSIZ]byte
  	copy(name[:], []byte(intf))
  
  	ifr := ifreq{
  		ifr_name: name,
  		ifr_data: uintptr(unsafe.Pointer(&ecmd)),
  	}
  
  	_, _, ep := syscall.Syscall(syscall.SYS_IOCTL, uintptr(e.fd),
  		SIOCETHTOOL, uintptr(unsafe.Pointer(&ifr)))
  	if ep != 0 {
  		return nil, syscall.Errno(ep)
  	}
  
  	var result = make(map[string]uint64)
  
  	// ref https://gist.github.com/drewolson/4771479
  	// Golang Reflection Example
  	ecmd.reflect(&result)
  
  	var speedval uint32 = (uint32(ecmd.Speed_hi) << 16) |
  		(uint32(ecmd.Speed) & 0xffff)
  	result["speed"] = uint64(speedval)
  
  	return result, nil
  }
docs: // CmdGetMapped returns the interface settings in a map