[compiler-rt] r345715 - Update generate_netbsd_ioctls.awk for NetBSD 8.99.25

Kamil Rytarowski via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 31 05:52:09 PDT 2018


Author: kamil
Date: Wed Oct 31 05:52:08 2018
New Revision: 345715

URL: http://llvm.org/viewvc/llvm-project?rev=345715&view=rev
Log:
Update generate_netbsd_ioctls.awk for NetBSD 8.99.25

Add dynamic detection of header files in /usr/include.
Handle "nvlist_ref_t" needed by npf(4) ioctl(2) operations.

Modified:
    compiler-rt/trunk/utils/generate_netbsd_ioctls.awk

Modified: compiler-rt/trunk/utils/generate_netbsd_ioctls.awk
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/utils/generate_netbsd_ioctls.awk?rev=345715&r1=345714&r2=345715&view=diff
==============================================================================
--- compiler-rt/trunk/utils/generate_netbsd_ioctls.awk (original)
+++ compiler-rt/trunk/utils/generate_netbsd_ioctls.awk Wed Oct 31 05:52:08 2018
@@ -44,133 +44,13 @@ BEGIN {
     rootdir = ENVIRON["ROOTDIR"]
   }
 
-  # hardcode list of headers with ioctl(2) entries
-  # List generated manually with the following script:
-  #   for w in `find /usr/include/ -type f -name '*.h' -exec echo {} \;`; \
-  #   do awk '/[^a-zA-Z0-9_]_IO[W]*[R]*[ ]*\(/ && $2 ~ /^[A-Z_]+$/ {got=1} END{if(got) {print ARGV[1]}}' $w; \
-  #   done|awk '{print "  ARGV[ARGC++] = rootdir \"" substr($0, 14) "\""}'
-
-  ARGV[ARGC++] = rootdir "altq/altq_afmap.h"
-  ARGV[ARGC++] = rootdir "altq/altq.h"
-  ARGV[ARGC++] = rootdir "altq/altq_blue.h"
-  ARGV[ARGC++] = rootdir "altq/altq_cbq.h"
-  ARGV[ARGC++] = rootdir "altq/altq_cdnr.h"
-  ARGV[ARGC++] = rootdir "altq/altq_fifoq.h"
-  ARGV[ARGC++] = rootdir "altq/altq_hfsc.h"
-  ARGV[ARGC++] = rootdir "altq/altq_jobs.h"
-  ARGV[ARGC++] = rootdir "altq/altq_priq.h"
-  ARGV[ARGC++] = rootdir "altq/altq_red.h"
-  ARGV[ARGC++] = rootdir "altq/altq_rio.h"
-  ARGV[ARGC++] = rootdir "altq/altq_wfq.h"
-  ARGV[ARGC++] = rootdir "crypto/cryptodev.h"
-  ARGV[ARGC++] = rootdir "dev/apm/apmio.h"
-  ARGV[ARGC++] = rootdir "dev/dm/netbsd-dm.h"
-  ARGV[ARGC++] = rootdir "dev/dmover/dmover_io.h"
-  ARGV[ARGC++] = rootdir "dev/dtv/dtvio_demux.h"
-  ARGV[ARGC++] = rootdir "dev/dtv/dtvio_frontend.h"
-  ARGV[ARGC++] = rootdir "dev/filemon/filemon.h"
-  ARGV[ARGC++] = rootdir "dev/hdaudio/hdaudioio.h"
-  ARGV[ARGC++] = rootdir "dev/hdmicec/hdmicecio.h"
-  ARGV[ARGC++] = rootdir "dev/hpc/hpcfbio.h"
-  ARGV[ARGC++] = rootdir "dev/i2o/iopio.h"
-  ARGV[ARGC++] = rootdir "dev/ic/athioctl.h"
-  ARGV[ARGC++] = rootdir "dev/ic/bt8xx.h"
-  ARGV[ARGC++] = rootdir "dev/ic/hd44780var.h"
-  ARGV[ARGC++] = rootdir "dev/ic/icp_ioctl.h"
-  ARGV[ARGC++] = rootdir "dev/ic/isp_ioctl.h"
-  ARGV[ARGC++] = rootdir "dev/ic/mlxio.h"
-  ARGV[ARGC++] = rootdir "dev/ic/nvmeio.h"
-  ARGV[ARGC++] = rootdir "dev/ir/irdaio.h"
-  ARGV[ARGC++] = rootdir "dev/isa/satlinkio.h"
-  ARGV[ARGC++] = rootdir "dev/isa/isvio.h"
-  ARGV[ARGC++] = rootdir "dev/isa/wtreg.h"
-  ARGV[ARGC++] = rootdir "dev/iscsi/iscsi_ioctl.h"
-  ARGV[ARGC++] = rootdir "dev/ofw/openfirmio.h"
-  ARGV[ARGC++] = rootdir "dev/pci/amrio.h"
-  ARGV[ARGC++] = rootdir "dev/pci/mlyio.h"
-  ARGV[ARGC++] = rootdir "dev/pci/pciio.h"
-  ARGV[ARGC++] = rootdir "dev/pci/tweio.h"
-  ARGV[ARGC++] = rootdir "dev/pcmcia/if_cnwioctl.h"
-  ARGV[ARGC++] = rootdir "dev/pcmcia/if_rayreg.h"
-  ARGV[ARGC++] = rootdir "dev/raidframe/raidframeio.h"
-  ARGV[ARGC++] = rootdir "dev/sbus/mbppio.h"
-  ARGV[ARGC++] = rootdir "dev/scsipi/ses.h"
-  ARGV[ARGC++] = rootdir "dev/sun/disklabel.h"
-  ARGV[ARGC++] = rootdir "dev/sun/fbio.h"
-  ARGV[ARGC++] = rootdir "dev/sun/kbio.h"
-  ARGV[ARGC++] = rootdir "dev/sun/vuid_event.h"
-  ARGV[ARGC++] = rootdir "dev/tc/sticio.h"
-  ARGV[ARGC++] = rootdir "dev/usb/ukyopon.h"
-  ARGV[ARGC++] = rootdir "dev/usb/urio.h"
-  ARGV[ARGC++] = rootdir "dev/usb/usb.h"
-  ARGV[ARGC++] = rootdir "dev/usb/utoppy.h"
-  ARGV[ARGC++] = rootdir "dev/vme/xio.h"
-  ARGV[ARGC++] = rootdir "dev/wscons/wsdisplay_usl_io.h"
-  ARGV[ARGC++] = rootdir "dev/wscons/wsconsio.h"
-  ARGV[ARGC++] = rootdir "dev/biovar.h"
-  ARGV[ARGC++] = rootdir "dev/md.h"
-  ARGV[ARGC++] = rootdir "dev/ccdvar.h"
-  ARGV[ARGC++] = rootdir "dev/cgdvar.h"
-  ARGV[ARGC++] = rootdir "dev/fssvar.h"
-  ARGV[ARGC++] = rootdir "dev/bluetooth/btdev.h"
-  ARGV[ARGC++] = rootdir "dev/bluetooth/btsco.h"
-  ARGV[ARGC++] = rootdir "dev/kttcpio.h"
-  ARGV[ARGC++] = rootdir "dev/lockstat.h"
-  ARGV[ARGC++] = rootdir "dev/vndvar.h"
-  ARGV[ARGC++] = rootdir "dev/spkrio.h"
-  ARGV[ARGC++] = rootdir "net/bpf.h"
-  ARGV[ARGC++] = rootdir "net/if_atm.h"
-  ARGV[ARGC++] = rootdir "net/if_gre.h"
-  ARGV[ARGC++] = rootdir "net/if_ppp.h"
-  ARGV[ARGC++] = rootdir "net/npf.h"
-  ARGV[ARGC++] = rootdir "net/if_pppoe.h"
-  ARGV[ARGC++] = rootdir "net/if_sppp.h"
-  ARGV[ARGC++] = rootdir "net/if_srt.h"
-  ARGV[ARGC++] = rootdir "net/if_tap.h"
-  ARGV[ARGC++] = rootdir "net/if_tun.h"
-  ARGV[ARGC++] = rootdir "net/pfvar.h"
-  ARGV[ARGC++] = rootdir "net/slip.h"
-  ARGV[ARGC++] = rootdir "netbt/hci.h"
-  ARGV[ARGC++] = rootdir "netinet/ip_nat.h"
-  ARGV[ARGC++] = rootdir "netinet/ip_proxy.h"
-  ARGV[ARGC++] = rootdir "netinet6/in6_var.h"
-  ARGV[ARGC++] = rootdir "netnatm/natm.h"
-  ARGV[ARGC++] = rootdir "netsmb/smb_dev.h"
-  ARGV[ARGC++] = rootdir "sys/agpio.h"
-  ARGV[ARGC++] = rootdir "sys/audioio.h"
-  ARGV[ARGC++] = rootdir "sys/ataio.h"
-  ARGV[ARGC++] = rootdir "sys/cdio.h"
-  ARGV[ARGC++] = rootdir "sys/chio.h"
-  ARGV[ARGC++] = rootdir "sys/clockctl.h"
-  ARGV[ARGC++] = rootdir "sys/cpuio.h"
-  ARGV[ARGC++] = rootdir "sys/dkio.h"
-  ARGV[ARGC++] = rootdir "sys/drvctlio.h"
-  ARGV[ARGC++] = rootdir "sys/dvdio.h"
-  ARGV[ARGC++] = rootdir "sys/envsys.h"
-  ARGV[ARGC++] = rootdir "sys/event.h"
-  ARGV[ARGC++] = rootdir "sys/fdio.h"
-  ARGV[ARGC++] = rootdir "sys/filio.h"
-  ARGV[ARGC++] = rootdir "sys/gpio.h"
-  ARGV[ARGC++] = rootdir "sys/ioctl.h"
-  ARGV[ARGC++] = rootdir "sys/ioctl_compat.h"
-  ARGV[ARGC++] = rootdir "sys/joystick.h"
-  ARGV[ARGC++] = rootdir "sys/ksyms.h"
-  ARGV[ARGC++] = rootdir "sys/lua.h"
-  ARGV[ARGC++] = rootdir "sys/midiio.h"
-  ARGV[ARGC++] = rootdir "sys/mtio.h"
-  ARGV[ARGC++] = rootdir "sys/power.h"
-  ARGV[ARGC++] = rootdir "sys/radioio.h"
-  ARGV[ARGC++] = rootdir "sys/rndio.h"
-  ARGV[ARGC++] = rootdir "sys/scanio.h"
-  ARGV[ARGC++] = rootdir "sys/scsiio.h"
-  ARGV[ARGC++] = rootdir "sys/sockio.h"
-  ARGV[ARGC++] = rootdir "sys/timepps.h"
-  ARGV[ARGC++] = rootdir "sys/ttycom.h"
-  ARGV[ARGC++] = rootdir "sys/verified_exec.h"
-  ARGV[ARGC++] = rootdir "sys/videoio.h"
-  ARGV[ARGC++] = rootdir "sys/wdog.h"
-  ARGV[ARGC++] = rootdir "soundcard.h"
-  ARGV[ARGC++] = rootdir "xen/xenio.h"
+  # detect and register files to detect ioctl() definitions
+  ARGC = 1
+  cmd = "find " rootdir " -type f -name '*.h'"
+  while (cmd | getline) {
+    ARGV[ARGC++] = $0
+  }
+  close(cmd)
 
   ioctl_table_max = 0
 }
@@ -744,6 +624,8 @@ function get_type(string)
     return "struct_RF_SingleComponent_sz"
   } else if (string == "RF_ProgressInfo_t") {
     return "struct_RF_ProgressInfo_sz"
+  } else if (string == "nvlist_ref_t") {
+    return "struct_nvlist_ref_sz"
   } else {
     print "Unrecognized entry: " string
     print "Aborting"




More information about the llvm-commits mailing list