From owner-freebsd-current@freebsd.org Sat Apr 16 18:25:16 2016 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 56247B1168C for ; Sat, 16 Apr 2016 18:25:16 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm5-vm0.bullet.mail.bf1.yahoo.com (nm5-vm0.bullet.mail.bf1.yahoo.com [98.139.213.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 205141CE6 for ; Sat, 16 Apr 2016 18:25:15 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1460831109; bh=cu38xIaJKU/NvYN9ifO39rSeJwOANESQpmazNEwutfo=; h=To:From:Subject:Date:From:Subject; b=SiDsiTZnbCxDEu6NAPv9+NPcud04Z9qGTqT0N4unXatTWx8RBvQYzBFLAA18uv11hC7SLH0SZ6ap4M+TOGqa4QUDO6IT7mS3COLu9rfa/NKP7M/IK9UoAwPOPy1Ku2tDeZAEOSLCxFP+PrTtacoauYXSkY6HJF7pasEwZkIMspM0U3QSGXahh6NnG8NHrx61s7/cd5gQrOsw+FOaNlbgp6HhyzyCAC4dZDUVPn7CGh+QSdReMlPDiv4dit1wflLcCmtZnUfeDN4J9Yh+M59Tql+fkNLBArr6PJilpb/RRmaDKWxxELSDQTfsWAW0mMUbg742lPrn1hV3883f9l6rbQ== Received: from [98.139.215.143] by nm5.bullet.mail.bf1.yahoo.com with NNFMP; 16 Apr 2016 18:25:09 -0000 Received: from [98.139.211.205] by tm14.bullet.mail.bf1.yahoo.com with NNFMP; 16 Apr 2016 18:25:09 -0000 Received: from [127.0.0.1] by smtp214.mail.bf1.yahoo.com with NNFMP; 16 Apr 2016 18:25:09 -0000 X-Yahoo-Newman-Id: 752228.53732.bm@smtp214.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: .8qnqUkVM1lH.xbM5gNL7Ki_C5nP25kgVLzIGDeFUb.LlO8 Z2_I7tPBrTAe2szBTDEOmUUFnNCqLXfsbxTM7Bf.OxMid6_y0pQvGk5LGx4e ScxTFVCZqFwYDjoDpvp5J6d4YaQDuohMX8AruFomT_JcJF9FwsePBz9cE6nm UFHHSoR64VyyDbVAEgpVwCdvOE4oAcF7i4mGOb0WOs.qwnO8Z3GiAr1yYjut HrQP9EVNl.MnkMZ_MjevzqFCFuvy5xW3KNm6eeRMXq23Qm.GdCTl.a35Lhn7 GhTxRJloNWH0Z6X4r93IqVtvEoWKJHQvMTUsnCZtfA3.U3k7j66Z3NHai9Ub YV5rgg2J7wcssks.FnHP18EjTCXo8vMX.y.iiItiksNZ3f6J2DQ0LJMhJboG 7LLra.Ngt9IauMT7xXJsTsRxQHOf8DMrqInWCRxBRtOSyx8a0dxInZoQFoL9 TzO8KoPPTwBGZ3qgbeCFlOKR6wnCsjNQ8ix7YI5VfVodQDKTbwCXboU2fJBV gk9dtCtVXrX2eTCgPd2T.AbHqRhEnkaJc X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf To: FreeBSD Current From: Pedro Giffuni Subject: CFR: extend use of nitems() macro in the kernel. Message-ID: <57128385.6090307@FreeBSD.org> Date: Sat, 16 Apr 2016 13:25:09 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Apr 2016 18:25:16 -0000 Hello; Using coccinelle, and some hand re-formatting, I generated a patch to make use of the nitems() macro in sys, which is too big for phabricator [1]. I was careful to exclude anything from the contrib directory or any code that is shared with userland (as to not have to include additional headers). The patch is big but pretty safe, I think. The changes are small but still it touches many files[1]. I would like some feedback on the convenience of doing such replacement. If it is a good idea we could do the same for roundup2() and, in fact, I think DragonFly has already done this. Regards, Pedro. [1] https://people.freebsd.org/~pfg/patches/sys-nitems.diff [2] For those too lazy to check [1], here is a list of affected files. M sys/amd64/amd64/amd64_mem.c M sys/amd64/amd64/machdep.c M sys/amd64/linux/linux_sysvec.c M sys/amd64/linux32/linux32_sysvec.c M sys/arm/amlogic/aml8726/aml8726_clkmsr.c M sys/arm/arm/db_interface.c M sys/arm/at91/at91_pmc.c M sys/arm/mv/armadaxp/armadaxp.c M sys/arm/ti/cpsw/if_cpsw.c M sys/arm/xscale/ixp425/ixp425.c M sys/boot/common/part.c M sys/boot/efi/loader/bootinfo.c M sys/boot/mips/beri/boot2/boot2.c M sys/boot/uboot/common/metadata.c M sys/cam/ata/ata_da.c M sys/cam/ata/ata_xpt.c M sys/cam/cam.c M sys/cam/scsi/scsi_all.c M sys/cam/scsi/scsi_cd.c M sys/cam/scsi/scsi_da.c M sys/cam/scsi/scsi_sa.c M sys/cam/scsi/scsi_xpt.c M sys/cam/scsi/smp_all.c M sys/compat/linux/linux_socket.c M sys/ddb/db_variables.c M sys/dev/adb/adb_kbd.c M sys/dev/advansys/adv_isa.c M sys/dev/advansys/advlib.c M sys/dev/advansys/adw_pci.c M sys/dev/advansys/adwlib.c M sys/dev/ae/if_ae.c M sys/dev/age/if_age.c M sys/dev/agp/agp.c M sys/dev/agp/agp_ali.c M sys/dev/agp/agp_amd64.c M sys/dev/aha/aha_isa.c M sys/dev/aic/aic.c M sys/dev/aic/aic_cbus.c M sys/dev/aic/aic_isa.c M sys/dev/ale/if_ale.c M sys/dev/altera/atse/if_atse.c M sys/dev/atkbdc/atkbd.c M sys/dev/atkbdc/atkbdc.c M sys/dev/atkbdc/psm.c M sys/dev/bktr/bktr_core.c M sys/dev/bwi/bwirf.c M sys/dev/bwn/if_bwn.c M sys/dev/cardbus/cardbus_cis.c M sys/dev/digi/digi.c M sys/dev/digi/digi_isa.c M sys/dev/dwc/if_dwc.c M sys/dev/ed/if_ed_hpp.c M sys/dev/ed/if_ed_isa.c M sys/dev/ed/if_ed_pci.c M sys/dev/fb/creator.c M sys/dev/fb/fb.c M sys/dev/fb/machfb.c M sys/dev/fb/vesa.c M sys/dev/fb/vga.c M sys/dev/flash/mx25l.c M sys/dev/hatm/if_hatm.c M sys/dev/hifn/hifn7751.c M sys/dev/hwpmc/hwpmc_amd.c M sys/dev/hwpmc/hwpmc_core.c M sys/dev/hwpmc/hwpmc_e500.c M sys/dev/hwpmc/hwpmc_mips24k.c M sys/dev/hwpmc/hwpmc_mips74k.c M sys/dev/hwpmc/hwpmc_mpc7xxx.c M sys/dev/hwpmc/hwpmc_octeon.c M sys/dev/hwpmc/hwpmc_uncore.c M sys/dev/hwpmc/hwpmc_xscale.c M sys/dev/if_ndis/if_ndis.c M sys/dev/jme/if_jme.c M sys/dev/kbd/kbd.c M sys/dev/le/if_le_isa.c M sys/dev/le/if_le_lebuffer.c M sys/dev/le/if_le_ledma.c M sys/dev/mlx/mlx.c M sys/dev/mxge/if_mxge.c M sys/dev/nand/nand_id.c M sys/dev/ncr/ncr.c M sys/dev/nctgpio/nctgpio.c M sys/dev/nfe/if_nfe.c M sys/dev/patm/if_patm_attach.c M sys/dev/pccard/pccard_cis_quirks.c M sys/dev/rc/rc.c M sys/dev/re/if_re.c M sys/dev/rl/if_rl.c M sys/dev/rndtest/rndtest.c M sys/dev/sf/if_sf.c M sys/dev/sge/if_sge.c M sys/dev/siba/siba.c M sys/dev/sio/sio.c M sys/dev/sound/isa/gusc.c M sys/dev/sound/pci/emu10kx.c M sys/dev/speaker/spkr.c M sys/dev/stge/if_stge.c M sys/dev/uart/uart_kbd_sun.c M sys/dev/uart/uart_subr.c M sys/dev/usb/input/ukbd.c M sys/dev/usb/serial/u3g.c M sys/dev/usb/serial/uchcom.c M sys/dev/usb/serial/umcs.c M sys/dev/usb/serial/uplcom.c M sys/dev/vkbd/vkbd.c M sys/dev/wbwd/wbwd.c M sys/fs/autofs/autofs.c M sys/fs/nfs/nfs_commonkrpc.c M sys/geom/part/g_part_bsd.c M sys/geom/part/g_part_ebr.c M sys/geom/part/g_part_ldm.c M sys/geom/part/g_part_mbr.c M sys/i386/i386/i686_mem.c M sys/i386/i386/machdep.c M sys/i386/ibcs2/ibcs2_sysvec.c M sys/i386/linux/linux_sysvec.c M sys/kern/kern_dump.c M sys/kern/kern_ffclock.c M sys/kern/kern_jail.c M sys/kern/kern_ktrace.c M sys/kern/subr_hash.c M sys/kern/subr_witness.c M sys/kern/sysv_msg.c M sys/kern/sysv_sem.c M sys/kern/uipc_usrreq.c M sys/mips/mips/db_interface.c M sys/mips/nlm/board.c M sys/mips/nlm/xlp_machdep.c M sys/mips/rmi/dev/nlge/if_nlge.c M sys/net/netisr.c M sys/net/rtsock.c M sys/netgraph/atm/ng_atm.c M sys/netgraph/bluetooth/socket/ng_btsocket.c M sys/netgraph/ng_gif_demux.c M sys/netgraph/ng_iface.c M sys/netgraph/ng_socket.c M sys/netinet/in_proto.c M sys/netinet/tcp_syncache.c M sys/netinet6/in6_proto.c M sys/netipsec/key.c M sys/netipsec/keysock.c M sys/netnatm/natm_proto.c M sys/netsmb/smb_smb.c M sys/nlm/nlm_prot_impl.c M sys/pc98/cbus/gdc.c M sys/pc98/cbus/pckbd.c M sys/pc98/cbus/scterm-sck.c M sys/powerpc/powerpc/db_trace.c M sys/powerpc/pseries/xics.c M sys/security/audit/audit_bsm_klib.c M sys/security/audit/bsm_errno.c M sys/security/audit/bsm_fcntl.c M sys/security/audit/bsm_socket_type.c M sys/sparc64/sparc64/db_trace.c M sys/sparc64/sparc64/elf_machdep.c M sys/sparc64/sparc64/trap.c M sys/vm/vm_pager.c M sys/x86/isa/atpic.c M sys/x86/x86/identcpu.c M sys/x86/x86/local_apic.c