shithub: riscv

ref: d82d996819447cd5896553a8405e51d43f9d0599
dir: /rc/bin/nusbrc/

View raw version
#!/bin/rc

if(! test -e '#σ/usb/usbevent')
	exit
if(! bind -a '#u' /dev)
	exit
@{
	rfork ne
	fn attach {
		id=$1
		if(~ $#* 5 && ! test -e /env/nousbhname)
			id=$1:$5
		switch($2$3){
		case 12d11003 067b2303 10c4ea60 0403* 1a867523 # HUAWEI, Prolific, CP2102, FTDI, pine64
			nusb/serial $id
		case 59862113
			nusb/cam $id
		case *
			switch($4){
			case *01
				nusb/audio $id
			case ff0202
				# RNDIS; handled by /sys/src/9/boot/nusbrc
			case *02
				# serial and ethernet
				nusb/serial $id
			case *03
				# handled /sys/src/9/boot/nusbrc
				# nusb/kb $id
			case *08
				# handled /sys/src/9/boot/nusbrc
				# nusb/disk $id
			case 010106
				nusb/ptp $id
			}
		}
	}
	fn detach {
		# handled /sys/src/9/boot/nusbrc
	}
	rc < '#σ/usb/usbevent' &
}

bind -qa '#σ/usb' /dev
bind -qa '#σ/usbnet' /net