From owner-cvs-all Wed Jun 13 3:59:11 2001 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id C794037B40A; Wed, 13 Jun 2001 03:58:40 -0700 (PDT) (envelope-from peter@FreeBSD.org) Received: (from peter@localhost) by freefall.freebsd.org (8.11.3/8.11.3) id f5DAweI72751; Wed, 13 Jun 2001 03:58:40 -0700 (PDT) (envelope-from peter) Message-Id: <200106131058.f5DAweI72751@freefall.freebsd.org> From: Peter Wemm Date: Wed, 13 Jun 2001 03:58:40 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/alpha/linux linux.h linux_sysvec.c src/sys/compat/linux linux_ioctl.c src/sys/conf Makefile.alpha Makefile.i386 Makefile.ia64 Makefile.pc98 Makefile.powerpc kmod.mk src/sys/ddb db_command.c src/sys/dev/fb fb.c fbreg.h ... X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG peter 2001/06/13 03:58:40 PDT Modified files: sys/alpha/linux linux.h linux_sysvec.c sys/compat/linux linux_ioctl.c sys/conf Makefile.alpha Makefile.i386 Makefile.ia64 Makefile.pc98 Makefile.powerpc kmod.mk sys/ddb db_command.c sys/dev/fb fb.c fbreg.h sys/dev/kbd kbd.c kbdreg.h sys/dev/syscons scterm.c scvgarndr.c scvidctl.c syscons.h sys/fs/nwfs nwfs_io.c nwfs_node.c sys/fs/smbfs smbfs_io.c smbfs_node.c sys/i386/linux linux.h linux_sysvec.c sys/kern init_main.c kern_ktr.c kern_linker.c kern_sysctl.c link_aout.c link_elf.c linker_if.m tty_cons.c sys/netncp ncp_conn.c sys/netsmb smb_conn.c sys/pc98/pc98 scgdcrndr.c sys/sys cons.h kernel.h linker.h linker_set.h sysctl.h Log: With this commit, I hereby pronounce gensetdefs past its use-by date. Replace the a.out emulation of 'struct linker_set' with something a little more flexible. now provides macros for accessing elements and completely hides the implementation. The linker_set.h macros have been on the back burner in various forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()), John Polstra (ELF clue) and myself (cleaned up API and the conversion of the rest of the kernel to use it). The macros declare a strongly typed set. They return elements with the type that you declare the set with, rather than a generic void *. For ELF, we use the magic ld symbols (__start_ and __stop_). Thanks to Richard Henderson for the trick about how to force ld to provide them for kld's. For a.out, we use the old linker_set struct. NOTE: the item lists are no longer null terminated. This is why the code impact is high in certain areas. The runtime linker has a new method to find the linker set boundaries depending on which backend format is in use. linker sets are still module/kld unfriendly and should never be used for anything that may be modular one day. Reviewed by: eivind Revision Changes Path 1.52 +1 -4 src/sys/alpha/linux/linux.h 1.77 +7 -6 src/sys/alpha/linux/linux_sysvec.c 1.63 +1 -35 src/sys/compat/linux/linux_ioctl.c 1.102 +2 -18 src/sys/conf/Makefile.alpha 1.236 +2 -18 src/sys/conf/Makefile.i386 1.25 +3 -18 src/sys/conf/Makefile.ia64 1.135 +2 -18 src/sys/conf/Makefile.pc98 1.236 +2 -18 src/sys/conf/Makefile.powerpc 1.103 +1 -8 src/sys/conf/kmod.mk 1.35 +23 -15 src/sys/ddb/db_command.c 1.17 +10 -7 src/sys/dev/fb/fb.c 1.7 +1 -2 src/sys/dev/fb/fbreg.h 1.25 +9 -7 src/sys/dev/kbd/kbd.c 1.13 +1 -2 src/sys/dev/kbd/kbdreg.h 1.5 +5 -3 src/sys/dev/syscons/scterm.c 1.10 +1 -3 src/sys/dev/syscons/scvgarndr.c 1.25 +5 -3 src/sys/dev/syscons/scvidctl.c 1.67 +6 -12 src/sys/dev/syscons/syscons.h 1.17 +1 -3 src/sys/fs/nwfs/nwfs_io.c 1.20 +1 -3 src/sys/fs/nwfs/nwfs_node.c 1.4 +1 -3 src/sys/fs/smbfs/smbfs_io.c 1.3 +1 -2 src/sys/fs/smbfs/smbfs_node.c 1.54 +1 -4 src/sys/i386/linux/linux.h 1.82 +7 -6 src/sys/i386/linux/linux_sysvec.c 1.173 +24 -22 src/sys/kern/init_main.c 1.20 +1 -2 src/sys/kern/kern_ktr.c 1.61 +97 -95 src/sys/kern/kern_linker.c 1.109 +6 -23 src/sys/kern/kern_sysctl.c 1.33 +40 -1 src/sys/kern/link_aout.c 1.38 +62 -1 src/sys/kern/link_elf.c 1.3 +15 -1 src/sys/kern/linker_if.m 1.91 +4 -3 src/sys/kern/tty_cons.c 1.16 +1 -3 src/sys/netncp/ncp_conn.c 1.2 +1 -3 src/sys/netsmb/smb_conn.c 1.8 +1 -3 src/sys/pc98/pc98/scgdcrndr.c 1.25 +1 -2 src/sys/sys/cons.h 1.91 +2 -2 src/sys/sys/kernel.h 1.24 +9 -1 src/sys/sys/linker.h 1.9 +90 -36 src/sys/sys/linker_set.h 1.94 +1 -7 src/sys/sys/sysctl.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message