aboutsummaryrefslogtreecommitdiffstats
path: root/sys/netbsd
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-08-04 12:29:59 +0200
committerDmitry Vyukov <dvyukov@google.com>2020-08-04 16:53:16 +0200
commit5ed76afa814812edaeaff2ea7b3227c18d5de5a6 (patch)
tree9074ce6cb6d39bd008c841c574b8621581904972 /sys/netbsd
parent80a0690249dc4dbbbed95ba197192b99c73694c5 (diff)
pkg/compiler: check for unused resources
If a resource is never used as an input, it is not useful. It's effectively the same as using an integer. Detect such cases, they are quite confusing. Fix all existing errors in descriptions. This uncovered some interesting bugs as well, e.g. use of a completely unrelated fd subtype after copy-paste (while the resource that was supposed to be used there is completely unused).
Diffstat (limited to 'sys/netbsd')
-rw-r--r--sys/netbsd/fs.txt7
-rw-r--r--sys/netbsd/vnet.txt6
-rw-r--r--sys/netbsd/vusb.txt20
3 files changed, 11 insertions, 22 deletions
diff --git a/sys/netbsd/fs.txt b/sys/netbsd/fs.txt
index 38250e144..62ba0d9fd 100644
--- a/sys/netbsd/fs.txt
+++ b/sys/netbsd/fs.txt
@@ -18,9 +18,10 @@ resource uid[int32]: 0, 0xffffffffffffffff
resource gid[int32]: 0, 0xffffffffffffffff
resource dev[int64]: 0, 0xffffffffffffffff
-resource mode[int32]: 0, 0xffffffffffffffff
-resource ino[int64]: 0, 0xffffffffffffffff
-resource nlink[int32]: 0, 0xffffffffffffffff
+
+type mode int32
+type ino int64
+type nlink int32
compat_43_ocreat(path ptr[in, filename], mode flags[open_mode])
open(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd
diff --git a/sys/netbsd/vnet.txt b/sys/netbsd/vnet.txt
index 0e9dbc53f..f23d9e334 100644
--- a/sys/netbsd/vnet.txt
+++ b/sys/netbsd/vnet.txt
@@ -3,11 +3,9 @@
syz_emit_ethernet(len len[packet], packet ptr[in, array[int8]])
-resource tcp_seq_num[int32]: 0x41424344
-
tcp_resources {
- seq tcp_seq_num
- ack tcp_seq_num
+ seq int32
+ ack int32
}
# These pseudo syscalls read a packet from tap device and extract tcp sequence and acknowledgement numbers from it.
diff --git a/sys/netbsd/vusb.txt b/sys/netbsd/vusb.txt
index 8a7982405..93e0d77bd 100644
--- a/sys/netbsd/vusb.txt
+++ b/sys/netbsd/vusb.txt
@@ -524,9 +524,7 @@ usb_descriptor_types = USB_DT_DEVICE, USB_DT_CONFIG, USB_DT_STRING, USB_DT_INTER
# Connected HID devices are known to create the following /dev/ files:
# /dev/hidraw#, /dev/usb/hiddev# and /dev/input/event#.
-resource fd_usb_hid[fd_usb]
-
-syz_usb_connect$hid(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_hid], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_hid (timeout[3000], prog_timeout[3000])
+syz_usb_connect$hid(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_hid], conn_descs ptr[in, vusb_connect_descriptors]) fd (timeout[3000], prog_timeout[3000])
# idVendor and idProduct are patched by Go code, see sys/linux/init_vusb.go.
usb_device_descriptor_hid {
@@ -601,9 +599,7 @@ define USBLP_REQ_HP_CHANNEL_CHANGE_REQUEST 0x00
define USBLP_FIRST_PROTOCOL 1
define USBLP_LAST_PROTOCOL 3
-resource fd_usb_printer[fd_usb]
-
-syz_usb_connect$printer(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_printer], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_printer (timeout[3000], prog_timeout[3000])
+syz_usb_connect$printer(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_printer], conn_descs ptr[in, vusb_connect_descriptors]) fd (timeout[3000], prog_timeout[3000])
usb_device_descriptor_printer {
inner usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]
@@ -649,9 +645,7 @@ define USB_ENDPOINT_PRINTER_IN_ADDRESS (2 | USB_DIR_IN)
# Connected CDC ECM devices are known to create usbN network interfaces.
# TODO: write descriptions for those.
-resource fd_usb_cdc_ecm[fd_usb]
-
-syz_usb_connect$cdc_ecm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ecm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_cdc_ecm (timeout[3000], prog_timeout[3000])
+syz_usb_connect$cdc_ecm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ecm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb (timeout[3000], prog_timeout[3000])
usb_device_descriptor_cdc_ecm {
inner usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]
@@ -896,9 +890,7 @@ usb_cdc_mbim_extended_desc {
# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/legacy/ncm.c
# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/function/f_ncm.c
-resource fd_usb_cdc_ncm[fd_usb]
-
-syz_usb_connect$cdc_ncm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ncm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_cdc_ncm (timeout[3000], prog_timeout[3000])
+syz_usb_connect$cdc_ncm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ncm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb (timeout[3000], prog_timeout[3000])
usb_device_descriptor_cdc_ncm {
inner usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]
@@ -983,9 +975,7 @@ define USB_CDC_SET_CRC_MODE 0x8a
# TODO: find out which /dev/ files are created by connected UAC1 devices and add descriptions for those.
-resource fd_usb_uac1[fd_usb]
-
-syz_usb_connect$uac1(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_uac1], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_uac1 (timeout[3000], prog_timeout[3000])
+syz_usb_connect$uac1(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_uac1], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb (timeout[3000], prog_timeout[3000])
usb_device_descriptor_uac1 {
inner usb_device_descriptor_t[0, 0, 0, 0x1d6b, 0x101, 64, array[usb_config_descriptor_uac1, 1]]