code: plan9front

ref: 5622b0bbd878dbc34045cc6fd37cffa64461eabe
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($4){
		case *01
			nusb/audio $id
		case ff0202
			# RNDIS; handled by /sys/src/9/boot/nusbrc
		case *02
			# serial and ethernet
			nusb/serial $id
			# handled /sys/src/9/boot/nusbrc
			# nusb/ether $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
		case *
			switch($2$3){
			case 12d11003 0403* # HUAWEI, FTDI
				nusb/serial $id
			case 59862113
				nusb/cam $id
			}
		}
	}
	fn detach {
		# handled /sys/src/9/boot/nusbrc
	}
	rc < '#σ/usb/usbevent' &
}

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