mirror of
https://github.com/luckfox-eng29/kvm.git
synced 2026-01-18 03:28:19 +01:00
refactor(usb): move usbconfig to a seperated package
This commit is contained in:
27
jsonrpc.go
27
jsonrpc.go
@@ -5,6 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"kvm/internal/usbgadget"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
@@ -518,32 +519,26 @@ func rpcIsUpdatePending() (bool, error) {
|
||||
}
|
||||
|
||||
func rpcGetUsbEmulationState() (bool, error) {
|
||||
_, err := os.Stat(filepath.Join("/sys/bus/platform/drivers/dwc3", udc))
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
return false, nil
|
||||
}
|
||||
return false, fmt.Errorf("error checking USB emulation state: %w", err)
|
||||
}
|
||||
return true, nil
|
||||
return gadget.IsUDCBound()
|
||||
}
|
||||
|
||||
func rpcSetUsbEmulationState(enabled bool) error {
|
||||
if enabled {
|
||||
return os.WriteFile("/sys/bus/platform/drivers/dwc3/bind", []byte(udc), 0644)
|
||||
return gadget.BindUDC()
|
||||
} else {
|
||||
return os.WriteFile("/sys/bus/platform/drivers/dwc3/unbind", []byte(udc), 0644)
|
||||
return gadget.UnbindUDC()
|
||||
}
|
||||
}
|
||||
|
||||
func rpcGetUsbConfig() (UsbConfig, error) {
|
||||
func rpcGetUsbConfig() (usbgadget.Config, error) {
|
||||
LoadConfig()
|
||||
return *config.UsbConfig, nil
|
||||
}
|
||||
|
||||
func rpcSetUsbConfig(usbConfig UsbConfig) error {
|
||||
func rpcSetUsbConfig(usbConfig usbgadget.Config) error {
|
||||
LoadConfig()
|
||||
config.UsbConfig = &usbConfig
|
||||
gadget.SetGadgetConfig(config.UsbConfig)
|
||||
return updateUsbRelatedConfig()
|
||||
}
|
||||
|
||||
@@ -739,12 +734,12 @@ func rpcSetSerialSettings(settings SerialSettings) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func rpcGetUsbDevices() (UsbDevicesConfig, error) {
|
||||
func rpcGetUsbDevices() (usbgadget.Devices, error) {
|
||||
return *config.UsbDevices, nil
|
||||
}
|
||||
|
||||
func updateUsbRelatedConfig() error {
|
||||
if err := UpdateGadgetConfig(); err != nil {
|
||||
if err := gadget.UpdateGadgetConfig(); err != nil {
|
||||
return fmt.Errorf("failed to write gadget config: %w", err)
|
||||
}
|
||||
if err := SaveConfig(); err != nil {
|
||||
@@ -753,8 +748,9 @@ func updateUsbRelatedConfig() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func rpcSetUsbDevices(usbDevices UsbDevicesConfig) error {
|
||||
func rpcSetUsbDevices(usbDevices usbgadget.Devices) error {
|
||||
config.UsbDevices = &usbDevices
|
||||
gadget.SetGadgetDevices(config.UsbDevices)
|
||||
return updateUsbRelatedConfig()
|
||||
}
|
||||
|
||||
@@ -771,6 +767,7 @@ func rpcSetUsbDeviceState(device string, enabled bool) error {
|
||||
default:
|
||||
return fmt.Errorf("invalid device: %s", device)
|
||||
}
|
||||
gadget.SetGadgetDevices(config.UsbDevices)
|
||||
return updateUsbRelatedConfig()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user