//go:build darwin

package usbip

import "fmt"

// Receiving remote devices needs a virtual USB host controller. On macOS that
// means a DriverKit driver, which needs an Apple developer identity and
// notarisation — the same class of hurdle as signing a Windows kernel driver.

func IsVHCIAvailable() bool { return false }

func VHCIUnavailableError() error {
	return fmt.Errorf("receiving USB devices is not supported on macOS: " +
		"it needs a virtual USB host controller, for which no signed driver exists here")
}

func DetachDevice(port int) error {
	return VHCIUnavailableError()
}

func FindFreePort(speed uint32) (int, error) {
	return -1, VHCIUnavailableError()
}

func AttachDevice(port int, sockfd int, devID uint32, speed uint32) error {
	return VHCIUnavailableError()
}
