From 38abfc79f5053616d42c08d890c2437903351197 Mon Sep 17 00:00:00 2001 From: Sebastian Sumpf Date: Tue, 14 Nov 2017 16:03:16 +0100 Subject: [PATCH] rump: reduce size of rump * integrate rump's contrib code into Genode's build system and build what is required by Genode, only * checkout needed NetBSD sources directly from CVS fixes #2589 --- repos/dde_rump/lib/import/import-rump.mk | 15 +- repos/dde_rump/lib/mk/rump.inc | 268 ++++- repos/dde_rump/lib/mk/rump_base.inc | 99 -- repos/dde_rump/lib/mk/rump_cgd.mk | 12 - repos/dde_rump/lib/mk/rump_common.inc | 26 + repos/dde_rump/lib/mk/rump_fs.mk | 126 ++- repos/dde_rump/lib/mk/rump_include.inc | 20 + repos/dde_rump/lib/mk/rump_prefix.inc | 20 + repos/dde_rump/lib/mk/rump_tools.mk | 98 ++ repos/dde_rump/lib/mk/spec/arm/rump.mk | 19 +- .../dde_rump/lib/mk/spec/arm/rump_include.mk | 4 + repos/dde_rump/lib/mk/spec/x86_32/rump.mk | 18 +- .../lib/mk/spec/x86_32/rump_include.mk | 5 + repos/dde_rump/lib/mk/spec/x86_64/rump.mk | 20 +- .../lib/mk/spec/x86_64/rump_include.mk | 5 + repos/dde_rump/patches/build.patch | 221 ---- repos/dde_rump/patches/evbarm.patch | 26 - repos/dde_rump/patches/gram_config.patch | 12 + repos/dde_rump/patches/mk.patch | 13 - repos/dde_rump/patches/no_shared_libs.patch | 13 - repos/dde_rump/ports/dde_rump.hash | 2 +- repos/dde_rump/ports/dde_rump.port | 35 +- repos/dde_rump/recipes/src/rump/content.mk | 25 +- repos/dde_rump/rump.list | 988 ++++++++++++++++++ repos/dde_rump/run/rump_cgd_ext2.run | 136 --- repos/dde_rump/run/rump_fat.run | 3 +- repos/dde_rump/src/lib/rump/bootstrap.cc | 4 +- repos/dde_rump/src/lib/rump/hypercall.cc | 1 - repos/dde_rump/src/lib/rump/misc.cc | 30 - repos/dde_rump/src/rump_dummy/target.mk | 1 + .../src/server/rump_cgd/block_driver.h | 121 --- repos/dde_rump/src/server/rump_cgd/cgd.cc | 504 --------- repos/dde_rump/src/server/rump_cgd/cgd.h | 58 - repos/dde_rump/src/server/rump_cgd/main.cc | 57 - repos/dde_rump/src/server/rump_cgd/random.cc | 89 -- repos/dde_rump/src/server/rump_cgd/target.mk | 4 - .../src/server/rump_fs/file_system.cc | 11 +- repos/dde_rump/src/server/rump_fs/target.mk | 2 - 38 files changed, 1647 insertions(+), 1464 deletions(-) delete mode 100644 repos/dde_rump/lib/mk/rump_base.inc delete mode 100644 repos/dde_rump/lib/mk/rump_cgd.mk create mode 100644 repos/dde_rump/lib/mk/rump_common.inc create mode 100644 repos/dde_rump/lib/mk/rump_include.inc create mode 100644 repos/dde_rump/lib/mk/rump_prefix.inc create mode 100644 repos/dde_rump/lib/mk/rump_tools.mk create mode 100644 repos/dde_rump/lib/mk/spec/arm/rump_include.mk create mode 100644 repos/dde_rump/lib/mk/spec/x86_32/rump_include.mk create mode 100644 repos/dde_rump/lib/mk/spec/x86_64/rump_include.mk delete mode 100644 repos/dde_rump/patches/build.patch delete mode 100644 repos/dde_rump/patches/evbarm.patch create mode 100644 repos/dde_rump/patches/gram_config.patch delete mode 100644 repos/dde_rump/patches/mk.patch delete mode 100644 repos/dde_rump/patches/no_shared_libs.patch create mode 100644 repos/dde_rump/rump.list delete mode 100644 repos/dde_rump/run/rump_cgd_ext2.run delete mode 100644 repos/dde_rump/src/lib/rump/misc.cc create mode 100644 repos/dde_rump/src/rump_dummy/target.mk delete mode 100644 repos/dde_rump/src/server/rump_cgd/block_driver.h delete mode 100644 repos/dde_rump/src/server/rump_cgd/cgd.cc delete mode 100644 repos/dde_rump/src/server/rump_cgd/cgd.h delete mode 100644 repos/dde_rump/src/server/rump_cgd/main.cc delete mode 100644 repos/dde_rump/src/server/rump_cgd/random.cc delete mode 100644 repos/dde_rump/src/server/rump_cgd/target.mk diff --git a/repos/dde_rump/lib/import/import-rump.mk b/repos/dde_rump/lib/import/import-rump.mk index 2e4f7ee6c..3ec677d30 100644 --- a/repos/dde_rump/lib/import/import-rump.mk +++ b/repos/dde_rump/lib/import/import-rump.mk @@ -1 +1,14 @@ -INC_DIR += $(LIBGCC_INC_DIR) $(BUILD_BASE_DIR)/var/libcache/rump/include +RUMP_PORT_DIR := $(call select_from_ports,dde_rump)/src/lib/dde_rump +RUMP_BASE := $(BUILD_BASE_DIR)/var/libcache/rump + +ifeq ($(filter-out $(SPECS),arm),) + # rump include shadows some parts of 'machine' on ARM only, + # Therefore, it must be included before RUMP_BASE/include/machine + INC_DIR := $(RUMP_PORT_DIR)/src/sys/rump/include $(INC_DIR) +endif + +INC_DIR += $(LIBGCC_INC_DIR) \ + $(RUMP_PORT_DIR)/src/sys \ + $(RUMP_PORT_DIR)/src/sys/rump/include \ + $(RUMP_PORT_DIR)/src/sys/sys \ + $(RUMP_BASE)/include diff --git a/repos/dde_rump/lib/mk/rump.inc b/repos/dde_rump/lib/mk/rump.inc index 24a5f247b..85f6dcce0 100644 --- a/repos/dde_rump/lib/mk/rump.inc +++ b/repos/dde_rump/lib/mk/rump.inc @@ -1,23 +1,261 @@ -# -# \brief Basic definitions for all rump libraries -# \author Sebastian Sumpf -# \date 2013-12-12 -# +include $(REP_DIR)/lib/mk/rump_common.inc -RUMP_CONTRIB_DIR := $(call select_from_ports,dde_rump)/src/lib/dde_rump -RUMP_BASE = $(BUILD_BASE_DIR)/var/libcache/rump -RUMP_LIB = $(RUMP_BASE)/lib +SHARED_LIB = yes +LIBS += rump_include + +CC_OPT += -DLIBRUMPUSER +SRC_CC = dummies.cc hypercall.cc bootstrap.cc io.cc sync.cc env.cc + +CC_C_OPT += -DHAVE_PROP_DICTIONARY_T +SRC_C = __main.c \ + +SRC_NOLINK += accessors.c \ + bswap16.c \ + bswap32.c \ + cdbr.c \ + clock_subr.c \ + cons.c \ + consttime_memequal.c \ + cprng_fast.c \ + cpuset.c \ + crc32.c \ + devsw.c \ + emul.c \ + etfs_wrap.c \ + explicit_memset.c \ + ffs.c \ + getfstypename.c \ + heapsort.c \ + hyperentropy.c \ + imax.c \ + imin.c \ + inet_addr.c \ + init_sysctl_base.c \ + intoa.c \ + intr.c \ + kern_assert.c \ + kern_auth.c \ + kern_cfglock.c \ + kern_descrip.c \ + kern_event.c \ + kern_hook.c \ + kern_ksyms.c \ + kern_ktrace.c \ + kern_malloc.c \ + kern_module.c \ + kern_mutex_obj.c \ + kern_ntptime.c \ + kern_proc.c \ + kern_prot.c \ + kern_rate.c \ + kern_resource.c \ + kern_rndpool.c \ + kern_rndq.c \ + kern_rndsink.c \ + kern_select_50.c \ + kern_stub.c \ + kern_syscall.c \ + kern_sysctl.c \ + kern_tc.c \ + kern_time_50.c \ + kern_time.c \ + kern_timeout.c \ + kern_uidinfo.c \ + kern_xxx.c \ + klock.c \ + kobj_machdep.c \ + kobj_rename.c \ + lmax.c \ + lmin.c \ + locks_up.c \ + ltsleep.c \ + lwproc.c \ + max.c \ + mcount.c \ + md4c.c \ + md5c.c \ + memchr.c \ + memcmp.c \ + memcpy.c \ + memmove.c \ + memset.c \ + mertwist.c \ + min.c \ + mi_vector_hash.c \ + murmurhash.c \ + nist_ctr_drbg.c \ + param.c \ + pmatch.c \ + popcount32.c \ + popcount64.c \ + ppath_extant.c \ + ppath_kmem_alloc.c \ + ppath.c \ + proc_compare.c \ + prop_array.c \ + prop_array_util.c \ + prop_bool.c \ + prop_data.c \ + prop_dictionary.c \ + prop_dictionary_util.c \ + prop_ingest.c \ + prop_kern.c \ + prop_number.c \ + prop_object.c \ + prop_stack.c \ + prop_string.c \ + ptree.c \ + random.c \ + rb.c \ + rijndael-alg-fst.c \ + rijndael-api-fst.c \ + rijndael.c \ + rmd160.c \ + rngtest.c \ + rumpcopy.c \ + rumpkern_if_wrappers.c \ + rump.c \ + rumpkern_syscalls.c \ + rump_syscalls.c \ + scanc.c \ + scheduler.c \ + secmodel.c \ + secmodel_suser.c \ + sha1.c \ + sha2.c \ + signals.c \ + skpc.c \ + sleepq.c \ + snprintb.c \ + strcasecmp.c \ + strcat.c \ + strchr.c \ + strcmp.c \ + strcpy.c \ + strcspn.c \ + strlcat.c \ + strlcpy.c \ + strlen.c \ + strncasecmp.c \ + strncat.c \ + strncmp.c \ + strncpy.c \ + strnlen.c \ + strpbrk.c \ + strrchr.c \ + strsep.c \ + strspn.c \ + strstr.c \ + strtoimax.c \ + strtoll.c \ + strtoull.c \ + strtoul.c \ + strtoumax.c \ + subr_callback.c \ + subr_copy.c \ + subr_cprng.c \ + subr_device.c \ + subr_devsw.c \ + subr_evcnt.c \ + subr_extent.c \ + subr_hash.c \ + subr_humanize.c \ + subr_iostat.c \ + subr_kcpuset.c \ + subr_kmem.c \ + subr_kobj.c \ + subr_log.c \ + subr_lwp_specificdata.c \ + subr_once.c \ + subr_pcq.c \ + subr_percpu.c \ + subr_pool.c \ + subr_prf.c \ + subr_pserialize.c \ + subr_specificdata.c \ + subr_time.c \ + subr_vmem.c \ + subr_workqueue.c \ + subr_xcall.c \ + syscalls.c \ + sys_descrip.c \ + sys_generic.c \ + sys_module.c \ + sys_pipe.c \ + sys_select.c \ + threads.c \ + uipc_sem.c \ + ulmax.c \ + ulmin.c \ + uvm_aobj.c \ + uvm_object.c \ + uvm_readahead.c \ + uvm_swapstub.c \ + vers.c \ + vm.c \ + vnode_if.c \ + xlat_mbr_fstype.c + +INC_DIR += $(RUMP_BASE)/include \ + $(RUMP_PORT_DIR)/src/lib/libc/include \ + $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpkern/opt \ + $(RUMP_PORT_DIR)/src/sys \ + $(RUMP_PORT_DIR)/src/sys/sys \ + $(RUMP_PORT_DIR)/src/sys/rump/include \ + $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpdev \ + $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpkern \ + $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpnet \ + $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpvfs \ + $(RUMP_PORT_DIR)/src/include \ + $(RUMP_PORT_DIR)/src/common/include \ + $(RUMP_PORT_DIR)/common/lib/libc/gen -SHARED_LIB = yes # -# ARCHIVE contains the absolute paths to rump-archive libraries, rump.ld is an -# additional linker script which is required during initialization +# generic # -LD_OPT += --whole-archive --start-group $(ARCHIVE) --end-group \ - --no-whole-archiv +vers.c: + $(VERBOSE_MK)cd $(RUMP_BASE) && /bin/sh $(RUMP_PORT_DIR)/src/sys/conf/newvers.sh -iRUMP_ROAST -n -LD_SCRIPT_SO = $(BASE_DIR)/src/ld/genode_rel.ld \ - -T$(REP_DIR)/src/ld/rump.ld +# trigger build +$(SRC_O): vers.c + +# +# rmpns_ prefix rules +# +RUMP_LIB_BASE = $(RUMP_BASE) +include $(REP_DIR)/lib/mk/rump_prefix.inc + + +vpath %.cc $(REP_DIR)/src/lib/rump + +vpath %.c $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpkern +vpath %.c $(RUMP_PORT_DIR)/src/sys/conf +vpath %.c $(RUMP_PORT_DIR)/src/sys/crypto/cprng_fast +vpath %.c $(RUMP_PORT_DIR)/src/sys/crypto/nist_ctr_drbg +vpath %.c $(RUMP_PORT_DIR)/src/sys/crypto/rijndael +vpath %.c $(RUMP_PORT_DIR)/src/sys/compat/common +vpath %.c $(RUMP_PORT_DIR)/src/sys/dev +vpath %.c $(RUMP_PORT_DIR)/src/sys/lib/libkern +vpath %.c $(RUMP_PORT_DIR)/src/sys/kern +vpath %.c $(RUMP_PORT_DIR)/src/sys/secmodel +vpath %.c $(RUMP_PORT_DIR)/src/sys/secmodel/suser +vpath %.c $(RUMP_PORT_DIR)/src/sys/uvm +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/cdb +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/gen +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/gmon +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/hash/murmurhash +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/hash/rmd160 +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/hash/sha1 +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/hash/sha2 +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/inet +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/md +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/stdlib +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/string +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/sys +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libppath +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libprop +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libutil # vi:set ft=make : + diff --git a/repos/dde_rump/lib/mk/rump_base.inc b/repos/dde_rump/lib/mk/rump_base.inc deleted file mode 100644 index 4827fa586..000000000 --- a/repos/dde_rump/lib/mk/rump_base.inc +++ /dev/null @@ -1,99 +0,0 @@ - -include $(REP_DIR)/lib/mk/rump.inc -include $(REP_DIR)/lib/import/import-rump.mk - -RUMP_OBJ = $(RUMP_BASE)/obj -RUMP_SRC = $(RUMP_CONTRIB_DIR)/src -RUMP_TOOLS = $(RUMP_BASE)/tools -RMAKE = $(RUMP_TOOLS)/rumpmake - -# -# Can be up to 4 for most verbose output -# -VERBOSE_LEVEL ?= 0 - -# -# Sources -# -SRC_CC = dummies.cc hypercall.cc bootstrap.cc io.cc sync.cc misc.cc env.cc - -# -# TARGET to trigger rump build -# -SOURCE = $(addprefix $(REP_DIR)/src/lib/rump/,$(SRC_CC)) - -# -# Rump build script -# -BUILD_CMD = BUILD_CC=cc BUILD_AR=ar BUILD_NM=nm BUILD_OBJCOPY=objcopy \ - AR=$(AR) NM=$(NM) OBJCOPY=$(OBJCOPY) CC_TARGET=$(shell basename $(CC)) \ - $(RUMP_CONTRIB_DIR)/buildrump.sh -H -k -V'MAKEVERBOSE=$(VERBOSE_LEVEL)' \ - -V'NOGCCERROR=1' $(RUMP_OPT) -V'RUMP_LOCKS_UP=yes' \ - -s $(RUMP_SRC) -T $(RUMP_TOOLS) -o $(RUMP_OBJ) -d $(RUMP_BASE) \ - -F"DBG=$(CC_OLEVEL) -g" - -# -# Linkage -# -ARCHIVE = $(RUMP_LIB)/librump.a -CC_OPT += -DLIBRUMPUSER - - -INCSDIRS = adosfs altq arpa crypto dev evbarm filecorefs fs i386 isofs miscfs \ - msdosfs net net80211 netatalk netbt netinet netinet6 netipsec \ - netisdn netkey netmpls netnatm netsmb nfs ntfs ppath prop \ - protocols rpc rpcsvc ssp sys ufs uvm x86 - -# -# Make sure include directory exists -# -$(shell mkdir -p $(RUMP_BASE)/include) - -# -# Filter potential ccache call -# -RUMP_CC = $(filter-out ccache, $(CC)) - -# -# Build nbmake for host platform -# -$(RUMP_TOOLS): - CC=$(RUMP_CC) $(BUILD_CMD) -N -V RUMP_KERNEL_IS_LIBC=1 tools - echo 'CPPFLAGS+=-DMAXPHYS=32768' >> $(RUMP_TOOLS)/mk.conf - echo 'CPPFLAGS+= -fPIC' >> $(RUMP_TOOLS)/mk.conf - -# -# Setup install directory -# -$(RUMP_OBJ)/dest.stage: $(RUMP_TOOLS) - CC=$(RUMP_CC) $(BUILD_CMD) setupdest - -# -# Build librump -# -$(ARCHIVE): $(RUMP_OBJ)/dest.stage - @echo "Building rump library ... $(ARCHIVE)" - CC=$(RUMP_CC) $(BUILD_CMD) -k build install - -# -# Install kernel, libc, and pthread headers -# -$(RUMP_BASE)/include/.prepared: $(ARCHIVE) - @for i in $(INCSDIRS); do \ - mkdir -p $(RUMP_BASE)/include/$$i; done - @echo "Installing headers ... (this may take a while)" - @cd $(RUMP_SRC)/sys; $(RMAKE) -k obj >/dev/null 2>&1 - @cd $(RUMP_SRC)/sys; $(RMAKE) -k includes >/dev/null 2>&1 - @cd $(RUMP_SRC)/include; $(RMAKE) -k includes > /dev/null 2>&1 - @cd $(RUMP_CONTRIB_DIR)/nblibs/lib/libc; $(RMAKE) includes - @cd $(RUMP_CONTRIB_DIR)/nblibs/lib/libpthread; $(RMAKE) includes >/dev/null 2>&1 - @touch $(RUMP_BASE)/include/.prepared - -# -# Trigger rump build -# -$(SOURCE): $(RUMP_BASE)/include/.prepared - -vpath %.cc $(REP_DIR)/src/lib/rump - -# vi:set ft=make : diff --git a/repos/dde_rump/lib/mk/rump_cgd.mk b/repos/dde_rump/lib/mk/rump_cgd.mk deleted file mode 100644 index 05a636ddf..000000000 --- a/repos/dde_rump/lib/mk/rump_cgd.mk +++ /dev/null @@ -1,12 +0,0 @@ -include $(REP_DIR)/lib/mk/rump.inc - -LIBS += rump - -RUMP_LIBS = librumpdev.a \ - librumpdev_cgd.a \ - librumpdev_disk.a \ - librumpdev_rnd.a \ - librumpkern_crypto.a \ - librumpvfs.a - -ARCHIVE += $(addprefix $(RUMP_LIB)/,$(RUMP_LIBS)) diff --git a/repos/dde_rump/lib/mk/rump_common.inc b/repos/dde_rump/lib/mk/rump_common.inc new file mode 100644 index 000000000..1cd4b5d5e --- /dev/null +++ b/repos/dde_rump/lib/mk/rump_common.inc @@ -0,0 +1,26 @@ +RUMP_PORT_DIR := $(call select_from_ports,dde_rump)/src/lib/dde_rump +RUMP_BASE := $(BUILD_BASE_DIR)/var/libcache/rump + +CC_C_OPT += -D__NetBSD__ -D'CTASSERT(x)=' -DMAXPHYS=32768 -D_RUMP_NATIVE_ABI \ + -DMAXUSERS=32 -DCOMPAT_50=1 -DCOMPAT_60=1 -DDIAGNOSTIC -DKTRACE \ + -DRUMP_KERNEL_IS_LIBC -D_RUMPKERNEL -D_KERNEL -DMULTIPROCESSOR \ + -D_MODULE -DMODULAR -DRUMP_USE_CTOR + +# +# silence contrib code +# +CC_C_OPT += -fno-builtin-printf -fno-builtin-vprintf -fno-builtin-log \ + -fno-builtin-putchar +CC_C_OPT += -Wno-pointer-sign -Wno-unused-but-set-variable \ + -Wno-unused-variable -Wno-format-zero-length \ + -Wno-nonnull-compare -Wno-misleading-indentation \ + -Wno-format -Wno-incompatible-pointer-types + +# +# rump.ld is an additional linker script which is required during +# initialization +# +LD_SCRIPT_SO = $(BASE_DIR)/src/ld/genode_rel.ld \ + -T$(REP_DIR)/src/ld/rump.ld + +# vi:set ft=make : diff --git a/repos/dde_rump/lib/mk/rump_fs.mk b/repos/dde_rump/lib/mk/rump_fs.mk index cb108a271..2285620e2 100644 --- a/repos/dde_rump/lib/mk/rump_fs.mk +++ b/repos/dde_rump/lib/mk/rump_fs.mk @@ -1,19 +1,119 @@ +include $(REP_DIR)/lib/mk/rump_common.inc -include $(REP_DIR)/lib/mk/rump.inc +LIBS += rump rump_tools +SHARED_LIB = yes +RUMP_FS_BASE = $(BUILD_BASE_DIR)/var/libcache/rump_fs +NBCONFIG = $(BUILD_BASE_DIR)/var/libcache/rump_tools/bin/nbconfig -LIBS += rump +# +# librumpdev.a +# +SRC_NOLINK = autoconf.c kern_pmf.c rump_dev.c subr_autoconf.c -RUMP_LIBS = librumpdev.a \ - librumpdev_disk.a \ - librumpkern_crypto.a \ - librumpvfs.a \ - librumpfs_cd9660.a \ - librumpfs_ext2fs.a \ - librumpfs_ffs.a \ - librumpfs_msdos.a \ - librumpfs_ntfs.a \ - librumpfs_udf.a +INC_DIR += $(RUMP_BASE)/include \ + $(RUMP_FS_BASE) \ + $(RUMP_PORT_DIR)/src/common/include \ + $(RUMP_PORT_DIR)/src/sys \ + $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpkern \ + $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpdev/opt \ + $(RUMP_PORT_DIR)/src/sys/rump/include \ + $(RUMP_PORT_DIR)/src/sys/sys -ARCHIVE += $(addprefix $(RUMP_LIB)/,$(RUMP_LIBS)) +ioconf.c: + $(VERBOSE)$(NBCONFIG) -b $(RUMP_FS_BASE) -s $(RUMP_PORT_DIR)/src/sys \ + $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpdev/MAINBUS.ioconf + +autoconf.o: ioconf.c +vpath %.c $(RUMP_PORT_DIR)/src/sys/kern +vpath %.c $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpdev + + +# +# librumpdev_disk.a +# +SRC_NOLINK += dk.c dksubr.c subr_disk.c subr_disk_mbr.c subr_disk_open.c + +vpath %.c $(RUMP_PORT_DIR)/src/sys/dev +vpath %.c $(RUMP_PORT_DIR)/src/sys/dev/dkwedge + + +# +# librumpvfs.a +# +SRC_NOLINK += bufq_disksort.c compat.c devnull.c genfs_vfsops.c \ + kern_physio.c rumpfs.c rumpvnode_if.c sync_subr.c \ + vfs_cache.c vfs_hooks.c vfs_mount.c vfs_syscalls.c vfs_wapbl.c \ + bufq_fcfs.c dead_vfsops.c firmload.c genfs_vnops.c \ + mfs_miniroot.c rumpvfs_if_wrappers.c spec_vnops.c sync_vnops.c vfs_cwd.c \ + vfs_init.c vfs_quotactl.c vfs_trans.c vfs_xattr.c \ + bufq_priocscan.c dead_vnops.c genfs_io.c kern_ktrace_vfs.c \ + quota1_subr.c rump_vfs.c subr_bufq.c uvm_vnode.c \ + vfs_dirhash.c vfs_lockf.c vfs_subr.c vfs_vnode.c vm_vfs.c \ + bufq_readprio.c devnodes.c genfs_rename.c kern_module_vfs.c rumpblk.c \ + rumpvfs_syscalls.c subr_kobj_vfs.c vfs_bio.c vfs_getcwd.c \ + vfs_lookup.c vfs_syscalls_50.c vfs_vnops.c + + +INC_DIR += $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpkern/opt + +vpath %.c $(RUMP_PORT_DIR)/src/sys/compat/common +vpath %.c $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpvfs +vpath %.c $(RUMP_PORT_DIR)/src/sys/miscfs/deadfs +vpath %.c $(RUMP_PORT_DIR)/src/sys/miscfs/genfs +vpath %.c $(RUMP_PORT_DIR)/src/sys/miscfs/specfs +vpath %.c $(RUMP_PORT_DIR)/src/sys/miscfs/syncfs +vpath %.c $(RUMP_PORT_DIR)/src/sys/ufs/mfs +vpath %.c $(RUMP_PORT_DIR)/src/sys/ufs/ufs +vpath %.c $(RUMP_PORT_DIR)/src/sys/uvm + + +# +# librump_ufs.a +# +SRC_NOLINK += ufs_bmap.c ufs_inode.c ufs_lookup.c ufs_vfsops.c ufs_vnops.c \ + ufs_extattr.c ufs_quota.c ufs_wapbl.c quota2_subr.c ufs_dirhash.c \ + ufs_quota2.c ufs_rename.c + + +# +# librump_ffs.a +# +SRC_NOLINK += ffs_alloc.c ffs_balloc.c ffs_inode.c ffs_snapshot.c ffs_tables.c ffs_vnops.c \ + ffs_appleufs.c ffs_bswap.c ffs_quota2.c ffs_subr.c ffs_vfsops.c ffs_wapbl.c \ + +vpath %.c $(RUMP_PORT_DIR)/src/sys/ufs/ffs + + +# +# librumpfs_ext2fs.a +# +SRC_NOLINK += ext2fs_alloc.c ext2fs_balloc.c ext2fs_bmap.c ext2fs_bswap.c ext2fs_inode.c \ + ext2fs_lookup.c ext2fs_readwrite.c ext2fs_rename.c ext2fs_subr.c \ + ext2fs_vfsops.c ext2fs_vnops.c + +vpath %.c $(RUMP_PORT_DIR)/src/sys/ufs/ext2fs + +# +# librumpfs_cd9660.a +# +SRC_NOLINK += cd9660_bmap.c cd9660_lookup.c cd9660_node.c cd9660_rrip.c cd9660_util.c \ + cd9660_vfsops.c cd9660_vnops.c + +vpath %.c $(RUMP_PORT_DIR)/src/sys/fs/cd9660 + +# +# librumpfs_msdos.a +# +SRC_NOLINK += msdosfs_conv.c msdosfs_denode.c msdosfs_fat.c msdosfs_lookup.c \ + msdosfs_vfsops.c msdosfs_vnops.c + +vpath %.c $(RUMP_PORT_DIR)/src/sys/fs/msdosfs + + +# +# rmpns_ prefix rules +# +RUMP_LIB_BASE = $(RUMP_FS_BASE) +include $(REP_DIR)/lib/mk/rump_prefix.inc diff --git a/repos/dde_rump/lib/mk/rump_include.inc b/repos/dde_rump/lib/mk/rump_include.inc new file mode 100644 index 000000000..5b119e829 --- /dev/null +++ b/repos/dde_rump/lib/mk/rump_include.inc @@ -0,0 +1,20 @@ +ifeq ($(called_from_lib_mk),yes) + +include $(REP_DIR)/lib/mk/rump_common.inc + + +$(RUMP_BASE): + mkdir -p $@ + +$(RUMP_BASE)/include/machine: $(RUMP_BASE) + $(VERBOSE_MK)mkdir -p $(RUMP_BASE)/include + $(VERBOSE_MK)for arch in $(INC_ARCH); do \ + ln -sf $(RUMP_PORT_DIR)/src/sys/arch/$$arch/include $(RUMP_BASE)/include/$$arch ; done + $(VERBOSE_MK)touch $(RUMP_BASE)/include/pthread_types.h + $(VERBOSE_MK)ln -sf $(INC_MACHINE) $(RUMP_BASE)/include/machine + +all: $(RUMP_BASE)/include/machine + +endif + +# vi:set ft=make : diff --git a/repos/dde_rump/lib/mk/rump_prefix.inc b/repos/dde_rump/lib/mk/rump_prefix.inc new file mode 100644 index 000000000..1c727094a --- /dev/null +++ b/repos/dde_rump/lib/mk/rump_prefix.inc @@ -0,0 +1,20 @@ +# We prefix any global symbol in object files from SRC_NOLINK with 'rmpns_', +# for this we add a 'rmpns_.o' to 'SRC_O' and perform a symbol +# prefixing using an AWK script and object copy below which in turn creates the +# prefixed object file. The rpmns files are linked into the library. + +SRC_NOLINK_OBJ = $(filter %.o,$(SRC_NOLINK:%.c=%.o) $(SRC_NOLINK:%.S=%.o)) +OBJ_PREFIX = $(addprefix rmpns_,$(SRC_NOLINK_OBJ)) + +SRC_O += $(OBJ_PREFIX) +PREFIX_AWK = '$$NF!~/^(rump|RUMP|__|_GLOBAL_OFFSET_TABLE)/ {s=$$NF;sub(/^/, "&rumpns_", s); print $$NF, s}' + + +$(OBJ_PREFIX): $(SRC_NOLINK_OBJ) $(SRC_NOLINK) + $(VERBOSE_MK)$(CUSTOM_NM) -go $(RUMP_LIB_BASE)/$(subst rmpns_,,$@) | awk $(PREFIX_AWK) \ + > $(RUMP_LIB_BASE)/_$@ + $(VERBOSE_MK)$(CUSTOM_OBJCOPY) --preserve-dates --redefine-syms $(RUMP_LIB_BASE)/_$@ \ + $(RUMP_LIB_BASE)/$(subst rmpns_,,$@) $(RUMP_LIB_BASE)/$@ + $(VERBOSE_MK)rm $(RUMP_LIB_BASE)/_$@ + +# vi:set ft=make : diff --git a/repos/dde_rump/lib/mk/rump_tools.mk b/repos/dde_rump/lib/mk/rump_tools.mk new file mode 100644 index 000000000..6ec20c4bc --- /dev/null +++ b/repos/dde_rump/lib/mk/rump_tools.mk @@ -0,0 +1,98 @@ +# +# Host tools required to build rump +# +include $(REP_DIR)/lib/mk/rump_common.inc + +HOST_CC ?= gcc +HOST_YACC ?= bison +HOST_LEX ?= flex +COMPAT_DEFS = -include $(RUMP_PORT_DIR)/src/tools/compat/compat_defs.h + + +# +# nbconfig +# + +RUMP_TOOL = $(BUILD_BASE_DIR)/var/libcache/rump_tools + +HOST_TARGET = $(RUMP_TOOL)/bin/nbconfig + +HOST_SRC_C = files.c \ + hash.c \ + lint.c \ + main.c \ + mkdevsw.c \ + mkheaders.c \ + mkioconf.c \ + mkmakefile.c \ + mkswap.c \ + pack.c \ + sem.c \ + util.c \ + gram.c \ + lex.yy.c \ + efun.c \ + strlcat.c \ + strlcpy.c \ + unvis.c \ + vis.c \ + crc.c + +HOST_TOOLS += $(HOST_TARGET) + +HOST_D_OPT = $(addprefix -D,HAVE_DIRFD=1 \ + HAVE_FLOCK=1 \ + HAVE_SOCKLEN_T=1 \ + HAVE_INTTYPES_H=1 \ + HAVE_DECL_HTOBE16=1 \ + HAVE_DECL_HTOBE32=1 \ + HAVE_DECL_HTOBE64=1 \ + HAVE_DECL_HTOLE16=1 \ + HAVE_DECL_HTOLE32=1 \ + HAVE_DECL_HTOLE64=1 \ + HAVE_DECL_BE16TOH=1 \ + HAVE_DECL_BE32TOH=1 \ + HAVE_DECL_BE64TOH=1 \ + HAVE_DECL_LE16TOH=1 \ + HAVE_DECL_LE32TOH=1 \ + HAVE_DECL_LE64TOH=1 \ + HAVE_NBTOOL_CONFIG_H=1 \ + HAVE_ISBLANK=1 \ + MAKE_BOOTSTRAP) + +HOST_INC_DIR = $(addprefix -I,$(RUMP_TOOL) \ + $(RUMP_PORT_DIR)/src/usr.bin/cksum \ + $(RUMP_PORT_DIR)/src/tools/compat \ + $(RUMP_PORT_DIR)/src/usr.bin/config) + +HOST_CC_OPT = $(COMPAT_DEFS) $(HOST_D_OPT) $(HOST_INC_DIR) + +HOST_OBJ = $(HOST_SRC_C:%.c=$(RUMP_TOOL)/%.o) + +$(RUMP_TOOL)/util.h: + $(VERBOSE_MK)touch $@ + +$(RUMP_TOOL)/nbtool_config.h: $(RUMP_TOOL)/util.h + $(VERBOSE_MK)touch $@ + +$(RUMP_TOOL)/gram.c: $(RUMP_TOOL)/nbtool_config.h + $(VERBOSE)$(HOST_YACC) -d -o $@ $(RUMP_PORT_DIR)/src/usr.bin/config/gram.y + +$(RUMP_TOOL)/lex.yy.c: $(RUMP_TOOL)/gram.c + $(VERBOSE)$(HOST_LEX) -o $@ $(RUMP_PORT_DIR)/src/usr.bin/config/scan.l + +$(HOST_OBJ) : $(RUMP_TOOL)/lex.yy.c + +$(HOST_TARGET): $(HOST_OBJ) + $(VERBOSE_MK)mkdir -p $(RUMP_TOOL)/bin + $(VERBOSE)$(HOST_CC) -lrt -lz -o $@ $(HOST_OBJ) + +$(RUMP_TOOL)/%.o: %.c + $(VERBOSE)$(HOST_CC) $(HOST_CC_OPT) -o $@ -c $< + +vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/string +vpath %.c $(RUMP_PORT_DIR)/src/lib/libutil +vpath %.c $(RUMP_PORT_DIR)/src/lib/libc/gen +vpath %.c $(RUMP_PORT_DIR)/src/usr.bin/config +vpath %.c $(RUMP_PORT_DIR)/src/usr.bin/cksum +vpath %.c $(RUMP_TOOL) diff --git a/repos/dde_rump/lib/mk/spec/arm/rump.mk b/repos/dde_rump/lib/mk/spec/arm/rump.mk index 9bbe77ec8..7f1d7371f 100644 --- a/repos/dde_rump/lib/mk/spec/arm/rump.mk +++ b/repos/dde_rump/lib/mk/spec/arm/rump.mk @@ -1,5 +1,18 @@ +# +# ARM specific +# +SRC_NOLINK += atomic_inc_32.S atomic_swap.S atomic_add_32.S \ + atomic_or_32.S atomic_dec_32.S atomic_and_32.S \ + atomic_cas_32.S membar_ops.S \ + bswap64.c -RUMP_OPT = -REQUIRES = arm_v7 +SRC_NOLINK += rump_generic_cpu.c rump_generic_pmap.c -include $(REP_DIR)/lib/mk/rump_base.inc +INC_DIR += $(RUMP_PORT_DIR)/src/sys/rump/include + +include $(REP_DIR)/lib/mk/rump.inc + +vpath %.S $(RUMP_PORT_DIR)/src/common/lib/libc/arch/arm/atomic +vpath %.S $(RUMP_PORT_DIR)/src/common/lib/libc/gen +vpath %.c $(RUMP_PORT_DIR)/src/sys/arch/arm/arm32 +vpath %.c $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpkern/arch/generic diff --git a/repos/dde_rump/lib/mk/spec/arm/rump_include.mk b/repos/dde_rump/lib/mk/spec/arm/rump_include.mk new file mode 100644 index 000000000..7fc0b49ed --- /dev/null +++ b/repos/dde_rump/lib/mk/spec/arm/rump_include.mk @@ -0,0 +1,4 @@ +INC_MACHINE = $(RUMP_PORT_DIR)/src/sys/arch/evbarm/include +INC_ARCH = arm + +include $(REP_DIR)/lib/mk/rump_include.inc diff --git a/repos/dde_rump/lib/mk/spec/x86_32/rump.mk b/repos/dde_rump/lib/mk/spec/x86_32/rump.mk index 20647d28c..8b1808c1a 100644 --- a/repos/dde_rump/lib/mk/spec/x86_32/rump.mk +++ b/repos/dde_rump/lib/mk/spec/x86_32/rump.mk @@ -1,4 +1,18 @@ +# +# x86 specific +# +SRC_NOLINK += atomic.S bswap64.c -RUMP_OPT = -32 +SRC_NOLINK += rump_x86_cpu_counter.c \ + rump_x86_cpu.c \ + rump_x86_pmap.c \ + rump_x86_spinlock.c \ + rump_x86_spl.c -include $(REP_DIR)/lib/mk/rump_base.inc + +include $(REP_DIR)/lib/mk/rump.inc + +vpath %.S $(RUMP_PORT_DIR)/src/common/lib/libc/arch/i386/atomic +vpath %.S $(RUMP_PORT_DIR)/src/common/lib/libc/gen +vpath %.c $(RUMP_PORT_DIR)/src/sys/arch/i386/i386 +vpath %.c $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpkern/arch/x86 diff --git a/repos/dde_rump/lib/mk/spec/x86_32/rump_include.mk b/repos/dde_rump/lib/mk/spec/x86_32/rump_include.mk new file mode 100644 index 000000000..c7375183a --- /dev/null +++ b/repos/dde_rump/lib/mk/spec/x86_32/rump_include.mk @@ -0,0 +1,5 @@ + +INC_MACHINE = $(RUMP_PORT_DIR)/src/sys/arch/i386/include +INC_ARCH = i386 x86 + +include $(REP_DIR)/lib/mk/rump_include.inc diff --git a/repos/dde_rump/lib/mk/spec/x86_64/rump.mk b/repos/dde_rump/lib/mk/spec/x86_64/rump.mk index 3d7465cc3..46c247764 100644 --- a/repos/dde_rump/lib/mk/spec/x86_64/rump.mk +++ b/repos/dde_rump/lib/mk/spec/x86_64/rump.mk @@ -1,4 +1,20 @@ +# +# x86 specific +# +SRC_NOLINK += atomic.S byte_swap_2.S byte_swap_4.S byte_swap_8.S -RUMP_OPT = +SRC_NOLINK += rump_x86_cpu_counter.c \ + rump_x86_cpu.c \ + rump_x86_pmap.c \ + rump_x86_spinlock.c \ + rump_x86_spl.c -include $(REP_DIR)/lib/mk/rump_base.inc +INC_MACHINE = $(RUMP_PORT_DIR)/src/sys/arch/amd64/include +INC_ARCH = x86 + +include $(REP_DIR)/lib/mk/rump.inc + +vpath %.S $(RUMP_PORT_DIR)/src/common/lib/libc/arch/x86_64/atomic +vpath %.S $(RUMP_PORT_DIR)/src/common/lib/libc/arch/x86_64/gen +vpath %.c $(RUMP_PORT_DIR)/src/sys/arch/amd64/amd64 +vpath %.c $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpkern/arch/x86 diff --git a/repos/dde_rump/lib/mk/spec/x86_64/rump_include.mk b/repos/dde_rump/lib/mk/spec/x86_64/rump_include.mk new file mode 100644 index 000000000..4cc0869d9 --- /dev/null +++ b/repos/dde_rump/lib/mk/spec/x86_64/rump_include.mk @@ -0,0 +1,5 @@ + +INC_MACHINE = $(RUMP_PORT_DIR)/src/sys/arch/amd64/include +INC_ARCH = x86 + +include $(REP_DIR)/lib/mk/rump_include.inc diff --git a/repos/dde_rump/patches/build.patch b/repos/dde_rump/patches/build.patch deleted file mode 100644 index ddbedd0ad..000000000 --- a/repos/dde_rump/patches/build.patch +++ /dev/null @@ -1,221 +0,0 @@ -diff --git a/buildrump.sh b/buildrump.sh -index 9cc5457..620dbf1 100755 ---- a/buildrump.sh -+++ b/buildrump.sh -@@ -191,8 +191,8 @@ probear () - { - - # Check for GNU/BSD ar -- if ! ${AR} -V 2>/dev/null | egrep '(GNU|BSD) ar' > /dev/null ; then -- die Need GNU or BSD ar "(`type ${AR}`)" -+ if ! ${TOOLS_AR} -V 2>/dev/null | egrep '(GNU|BSD) ar' > /dev/null ; then -+ die Need GNU or BSD ar "(`type ${TOOLS_AR}`)" - fi - } - -@@ -223,7 +223,7 @@ doesitbuild () - - warnflags="-Wmissing-prototypes -Wstrict-prototypes -Wimplicit -Werror" - printf "${theprog}" \ -- | ${CC} ${warnflags} ${EXTRA_LDFLAGS} ${EXTRA_CFLAGS} \ -+ | ${TOOLS_CC} ${warnflags} ${EXTRA_LDFLAGS} ${EXTRA_CFLAGS} -x c - -o /dev/null $* \ - -x c - -o /dev/null $* > /dev/null 2>&1 - } - -@@ -242,13 +242,7 @@ checkcheckout () - - checkcompiler () - { -- -- if ! ${KERNONLY}; then -- doesitbuild 'int main(void) {return 0;}\n' \ -- ${EXTRA_RUMPUSER} ${EXTRA_RUMPCOMMON} -- [ $? -eq 0 ] || ${TITANMODE} || \ -- die 'Probe cannot build a binary' -- fi -+ return - } - - probe_rumpuserbits () -@@ -548,7 +542,8 @@ makemake () - stage=$2 - cmd=$3 - -- env CFLAGS= HOST_LDFLAGS=-L${OBJDIR} ./build.sh \ -+ env CC=${BUILD_CC} AR=${BUILD_AR} NM=${BUILD_NM} OBJCOPY=${BUILD_OBJCOPY} \ -+ CFLAGS= BUILD_LDFLAGS=-L${OBJDIR} ./build.sh \ - -m ${MACHINE} -u \ - -D ${stage} -w ${wrapper} \ - -T ${BRTOOLDIR} -j ${JNUM} \ -@@ -708,10 +703,27 @@ evaltoolchain () - rm -f ${OBJDIR}/canrun - fi - -+ # check for crossbuild with tools running on host -+ : ${BUILD_CC:=} -+ [ ${BUILD_CC} ] && HYBRIDBUILD=true -+ -+ if ${HYBRIDBUILD}; then -+ : ${TOOLS_CC:=${BUILD_CC}} -+ : ${TOOLS_AR:=${BUILD_AR}} -+ : ${TOOLS_NM:=${BUILD_NM}} -+ : ${TOOLS_OBJCOPY:=${BUILD_OBJCOPY}} -+ else -+ : ${TOOLS_CC:=${CC}} -+ : ${TOOLS_AR:=${AR}} -+ : ${TOOLS_NM:=${NM}} -+ : ${TOOLS_OBJCOPY:=${OBJCOPY}} -+ fi -+ -+ - # Check for variant of compiler. - # XXX: why can't all cc's that are gcc actually tell me - # that they're gcc with cc --version?!? -- ccver=$(${CC} --version) -+ ccver=$(${TOOLS_CC} --version) - if echo ${ccver} | grep -q 'Free Software Foundation'; then - CC_FLAVOR=gcc - elif echo ${ccver} | grep -q clang; then -@@ -721,33 +733,21 @@ evaltoolchain () - CC_FLAVOR=pcc - PCC='-V HAVE_PCC=1' - else -- die Unsupported \${CC} "(`type ${CC}`)" -+ die Unsupported \${TOOLS_CC} "(`type ${TOOLS_CC}`)" - fi - -- # Check the arch we're building for so as to work out the necessary -- # NetBSD machine code we need to use. First try -dumpmachine, -- # and if that works, be happy with it. Not all compilers support -- # it (e.g. older versions of clang), so if that doesn't work, -- # try parsing the output of -v -- if ! CC_TARGET=$(${CC} -dumpmachine 2>/dev/null) ; then -- # first check "${CC} -v" ... just in case it fails, we want a -- # sensible return value instead of it being lost in the pipeline -- # (this is easier than adjusting IFS) -- if ${CC} -v >/dev/null 2>&1 ; then -- # then actually process the output of ${CC} -v -- CC_TARGET=$(LC_ALL=C ${CC} -v 2>&1 \ -- | sed -n 's/^Target: //p' ) -- [ -z "${CC_TARGET}" ] \ -- && die failed to probe target of \"${CC}\" -- else -- # this might be pcc -- ${CC} -v 2>&1 | grep pcc > /dev/null || \ -- die \"${CC} -v failed\". Check \"${CC}\" -- CC_TARGET=$(${CC} -v 2>&1 \ -- | sed -n -e 's/^pcc.*for //' -e 's/,.*//p' ) -- fi -+ MACH_ARCH=$(echo ${CC_TARGET} | sed 's/.*-\(.*\)-.*/\1/' ) -+ echo "MACH_ARCH cc ${MACH_ARCH}" -+ -+ -+ if [ "${MACH_ARCH}" = 'x86' ] ; then -+ CC_TARGET=genode-x86 -+ MACH_ARCH=x86_64 -+ elif [ "${MACH_ARCH}" = 'arm' ] ; then -+ CC_TARGET=genode-arm -+ else -+ die Unsupported architectur ${MACH_ARCH} - fi -- MACH_ARCH=$(echo ${CC_TARGET} | sed 's/-.*//' ) - - # Set names of tools we're going to use. try to guess them - # for common scenarios -@@ -767,6 +767,9 @@ evaltoolchain () - done - - case ${CC_TARGET} in -+ "genode") -+ RUMPKERN_UNDEF='-U__FreeBSD__' -+ ;; - *-linux*) - RUMPKERN_UNDEF='-Ulinux -U__linux -U__linux__ -U__gnu_linux__' - cppdefines _BIG_ENDIAN \ -@@ -793,10 +796,10 @@ evaltoolchain () - ${TITANMODE} || die ELF required as target object format - fi - -- if cppdefines __LP64__; then -- THIRTYTWO=false -- else -+ if ${TARGET_IS_32BIT}; then - THIRTYTWO=true -+ else -+ THIRTYTWO=false - fi - - # The compiler cannot do %zd/u warnings if the NetBSD kernel -@@ -857,6 +860,9 @@ evalplatform () - echo '>> Mach-O object format used by OS X is not yet supported' - target_supported=false - ;; -+ genode-*) -+ TARGET=genode -+ ;; - *) - target_supported=false - ;; -@@ -867,8 +873,8 @@ evalplatform () - fi - - # does target support __thread. if yes, optimize curlwp -- doesitbuild '__thread int lanka; int main(void) {return lanka;}\n' -- [ $? -eq 0 ] && RUMP_CURLWP=__thread -+# doesitbuild '__thread int lanka; int main(void) {return lanka;}\n' -+# [ $? -eq 0 ] && RUMP_CURLWP=__thread - } - - # ARM targets require a few extra checks -@@ -880,8 +886,8 @@ probearm () - MACHINE="evbearm-el" - MACH_ARCH="arm" - else -- MACHINE="evbearm-eb" -- MACH_ARCH="armeb" -+ MACHINE="evbearm" -+ MACH_ARCH="arm" - fi - - TOOLABI="elf-eabi" -@@ -893,6 +899,11 @@ probearm () - if cppdefines __VFP_FP__; then - MKSOFTFLOAT=no - fi -+ -+ EXTRA_CFLAGS='-march=armv7-a' -+ EXTRA_AFLAGS='-march=armv7-a' -+ EXTRA_LDFLAGS='-nostdlib' -+ appendvar EXTRA_CWARNFLAGS -Wno-format - } - - # aarch64 requires a few checks -@@ -962,6 +973,9 @@ evalmachine () - MACHINE="i386" - MACH_ARCH="i486" - TOOLABI="elf" -+ appendvar EXTRA_CFLAGS -m32 -+ appendvar EXTRA_LDFLAGS -m32 -+ appendvar EXTRA_AFLAGS -m32 - else - MACHINE="amd64" - MACH_ARCH="x86_64" -@@ -1044,13 +1058,17 @@ parseargs () - debugginess=0 - KERNONLY=false - NATIVENETBSD=false -+ TARGET_IS_32BIT=false - OBJDIR=./obj - DESTDIR=./rump - SRCDIR=./src - JNUM=4 - -- while getopts 'd:DhHj:kNo:qrs:T:V:F:' opt; do -+ while getopts '3:d:DhHj:kNo:qrs:T:V:F:' opt; do - case "$opt" in -+ 3) -+ TARGET_IS_32BIT=true -+ ;; - d) - DESTDIR=${OPTARG} - ;; diff --git a/repos/dde_rump/patches/evbarm.patch b/repos/dde_rump/patches/evbarm.patch deleted file mode 100644 index 5c88284bd..000000000 --- a/repos/dde_rump/patches/evbarm.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/src/sys/arch/arm/include/Makefile.common b/src/sys/arch/arm/include/Makefile.common -index 6d7643a..c91f55c 100644 ---- a/src/sys/arch/arm/include/Makefile.common -+++ b/src/sys/arch/arm/include/Makefile.common -@@ -2,7 +2,7 @@ - - .PATH: ../../arm/include/common - --.if 0 -+.if 1 - INCS+= ansi.h aout_machdep.h asm.h \ - bswap.h \ - cdefs.h cpu.h \ -diff --git a/src/sys/arch/evbarm/Makefile b/src/sys/arch/evbarm/Makefile -index c4340cb..ec9445b 100644 ---- a/src/sys/arch/evbarm/Makefile -+++ b/src/sys/arch/evbarm/Makefile -@@ -3,7 +3,7 @@ - # Makefile for evbarm tags file and boot blocks - - # Find where ARM source files are for inclusion in tags --.include <../arm/Makefile.inc> -+#.include <../arm/Makefile.inc> - - TEVBARM= ${SYSDIR}/arch/evbarm/tags - SEVBARM= ${SYSDIR}/arch/evbarm/adi_brh/*.[ch] diff --git a/repos/dde_rump/patches/gram_config.patch b/repos/dde_rump/patches/gram_config.patch new file mode 100644 index 000000000..6eaa60a9d --- /dev/null +++ b/repos/dde_rump/patches/gram_config.patch @@ -0,0 +1,12 @@ +diff --git a/src/usr.bin/config/gram.y b/src/usr.bin/config/gram.y +index 7e63598..5f9064a 100644 +--- a/src/usr.bin/config/gram.y ++++ b/src/usr.bin/config/gram.y +@@ -142,6 +142,7 @@ static struct condexpr *mk_cx_or(struct condexpr *, struct condexpr *); + + static void setmachine(const char *, const char *, struct nvlist *, int); + static void check_maxpart(void); ++static void check_version(void); + + static struct loclist *present_loclist(struct loclist *ll); + static void app(struct loclist *, struct loclist *); diff --git a/repos/dde_rump/patches/mk.patch b/repos/dde_rump/patches/mk.patch deleted file mode 100644 index 122fb7d07..000000000 --- a/repos/dde_rump/patches/mk.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/share/mk/bsd.own.mk b/src/share/mk/bsd.own.mk -index 9bdc7c7..518440e 100644 ---- a/src/share/mk/bsd.own.mk -+++ b/src/share/mk/bsd.own.mk -@@ -1155,7 +1155,7 @@ INSTPRIV?= ${INSTPRIV.unpriv} -N ${NETBSDSRCDIR}/etc - STRIPFLAG?= - - .if ${NEED_OWN_INSTALL_TARGET} != "no" --INSTALL_DIR?= ${INSTALL} ${INSTPRIV} -d -+INSTALL_DIR = ${INSTALL} ${INSTPRIV} -d - INSTALL_FILE?= ${INSTALL} ${INSTPRIV} ${COPY} ${PRESERVE} ${RENAME} - INSTALL_LINK?= ${INSTALL} ${INSTPRIV} ${HRDLINK} ${RENAME} - INSTALL_SYMLINK?= ${INSTALL} ${INSTPRIV} ${SYMLINK} ${RENAME} diff --git a/repos/dde_rump/patches/no_shared_libs.patch b/repos/dde_rump/patches/no_shared_libs.patch deleted file mode 100644 index 71e436433..000000000 --- a/repos/dde_rump/patches/no_shared_libs.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/share/mk/bsd.lib.mk b/src/share/mk/bsd.lib.mk -index ab658e7..85575bb 100644 ---- a/src/share/mk/bsd.lib.mk -+++ b/src/share/mk/bsd.lib.mk -@@ -402,7 +402,7 @@ _LIB_g.a:=${_LIB}_g.a - _LIB_pic.a:=${_LIB}_pic.a - _LIB.ln:=llib-l${LIB}.ln - --.if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) -+.if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) && 0 - _LIB.so:=${_LIB}.so - _LIB.so.major:=${_LIB}.so.${SHLIB_MAJOR} - _LIB.so.full:=${_LIB}.so.${SHLIB_FULLVERSION} diff --git a/repos/dde_rump/ports/dde_rump.hash b/repos/dde_rump/ports/dde_rump.hash index 78c3bef6f..8964f3287 100644 --- a/repos/dde_rump/ports/dde_rump.hash +++ b/repos/dde_rump/ports/dde_rump.hash @@ -1 +1 @@ -8719ed349bf425eb570d0ee7f16acf980b44adb4 +2e7f21f64fa91b723c2679eb3ed90d8c861d6273 diff --git a/repos/dde_rump/ports/dde_rump.port b/repos/dde_rump/ports/dde_rump.port index a8bdd7fa2..0b5311ad8 100644 --- a/repos/dde_rump/ports/dde_rump.port +++ b/repos/dde_rump/ports/dde_rump.port @@ -1,33 +1,20 @@ LICENSE := BSD -VERSION := git -DOWNLOADS := rump.git nblibs.git +VERSION := cvs +DOWNLOADS := rump.cvs -URL(rump) := https://github.com/rumpkernel/buildrump.sh.git -REV(rump) := fd4bdac4ad6357a36b9a0af6abde02bf3bb42232 -DIR(rump) := src/lib/dde_rump +$(call check_tool, cvs) -URL(nblibs) := https://github.com/rumpkernel/src-netbsd.git -REV(nblibs) := b71ee7667ea9904c28b089feadc594a62f406bd5 -DIR(nblibs) := src/lib/dde_rump/nblibs +URL(rump) := :pserver:anoncvs@anoncvs.netbsd.org:2401/cvsroot +REV(rump) := "20141216 2100UTC" +DIR(rump) := src/lib/dde_rump +HASH_INPUT += $(REP_DIR)/rump.list PATCHES := $(shell find $(REP_DIR)/patches/*.patch) PATCH_OPT := -N -d ${DIR(rump)} -p1 -GIT_NETBSD_COMMIT := 0875d49ae93a8101d5321b7a73983daee5c1b581 -NETBSD_SRC := src/lib/dde_rump/src - - -# checkout NetBSD sources -default: checkout_src -checkout_src: $(DOWNLOADS) - @$(MSG_PREFIX)"checkout NetBSD src " - $(VERBOSE)if [ -d "$(NETBSD_SRC)/.git" ]; then cd $(NETBSD_SRC) && git checkout -f; fi - $(VERBOSE)src/lib/dde_rump/checkout.sh git src/lib/dde_rump/src - $(VERBOSE)cd $(NETBSD_SRC) && git reset --hard $(GIT_NETBSD_COMMIT) - $(VERBOSE)ln -sf ../src/common src/lib/dde_rump/nblibs/common - - -DIRS := include/rump -DIR_CONTENT(include/rump) := src/lib/dde_rump/src/sys/rump/include/rump/*.h +%.cvs: + @echo "CVS checkout rump ..." + $(VERBOSE)cat $(REP_DIR)/rump.list | xargs cvs -d $(URL($*)) -Q -z3 export \ + -D $(REV($*)) -d $(DIR($*)) # vi: set ft=make : diff --git a/repos/dde_rump/recipes/src/rump/content.mk b/repos/dde_rump/recipes/src/rump/content.mk index 2b9facd08..c17a85c2f 100644 --- a/repos/dde_rump/recipes/src/rump/content.mk +++ b/repos/dde_rump/recipes/src/rump/content.mk @@ -1,5 +1,14 @@ -LIB_MK := $(addprefix lib/mk/,rump_fs.mk vfs_rump.mk rump.inc rump_base.inc) \ - $(foreach SPEC,x86_32 x86_64 arm,lib/mk/spec/$(SPEC)/rump.mk) +LIB_MK := $(addprefix lib/mk/, \ + rump_common.inc \ + rump_fs.mk \ + rump.inc \ + rump_include.inc \ + rump_prefix.inc \ + rump_tools.mk \ + vfs_rump.mk) \ + $(foreach SPEC,x86_32 x86_64 arm, \ + lib/mk/spec/$(SPEC)/rump.mk \ + lib/mk/spec/$(SPEC)/rump_include.mk) PORT_DIR := $(call port_dir,$(REP_DIR)/ports/dde_rump) @@ -9,11 +18,7 @@ MIRROR_FROM_REP_DIR := $(LIB_MK) \ include/rump include/rump_fs \ include/util -MIRROR_FROM_PORT_DIR := $(shell cd $(PORT_DIR); find src/lib/dde_rump -maxdepth 1 -type f; \ - for d in src/lib/dde_rump/brlib src/lib/dde_rump/nblibs \ - src/lib/dde_rump/src; do \ - find $$d -mindepth 1 -maxdepth 1 -not -name .git; \ - done) +MIRROR_FROM_PORT_DIR := src/lib/dde_rump/src content: $(MIRROR_FROM_REP_DIR) $(MIRROR_FROM_PORT_DIR) @@ -26,4 +31,8 @@ $(MIRROR_FROM_PORT_DIR): content: LICENSE LICENSE: - cp $(PORT_DIR)/src/lib/dde_rump/$@ $@ + ( echo "The NetBSD Foundation's (TNF) license is a “2 clause” Berkeley-style"; \ + echo "license, which is used for all code contributed to TNF.If you write"; \ + echo "code and assign the copyright to TNF, this is the license that will"; \ + echo "be used. For the license of a individual file, please refer to the"; \ + echo "header information.") > $@ diff --git a/repos/dde_rump/rump.list b/repos/dde_rump/rump.list new file mode 100644 index 000000000..3cdc4557d --- /dev/null +++ b/repos/dde_rump/rump.list @@ -0,0 +1,988 @@ +src/common/include/ppath/ppath.h +src/common/include/ppath/ppath_impl.h +src/common/include/prop/plistref.h +src/common/include/prop/prop_array.h +src/common/include/prop/prop_bool.h +src/common/include/prop/prop_data.h +src/common/include/prop/prop_dictionary.h +src/common/include/prop/prop_ingest.h +src/common/include/prop/proplib.h +src/common/include/prop/prop_number.h +src/common/include/prop/prop_object.h +src/common/include/prop/prop_string.h +src/common/lib/libc/arch/arm/atomic/atomic_add_32.S +src/common/lib/libc/arch/arm/atomic/atomic_and_32.S +src/common/lib/libc/arch/arm/atomic/atomic_cas_32.S +src/common/lib/libc/arch/arm/atomic/atomic_dec_32.S +src/common/lib/libc/arch/arm/atomic/atomic_inc_32.S +src/common/lib/libc/arch/arm/atomic/atomic_op_asm.h +src/common/lib/libc/arch/arm/atomic/atomic_or_32.S +src/common/lib/libc/arch/arm/atomic/atomic_swap.S +src/common/lib/libc/arch/arm/atomic/membar_ops.S +src/common/lib/libc/arch/i386/atomic/atomic.S +src/common/lib/libc/arch/x86_64/atomic/atomic.S +src/common/lib/libc/arch/x86_64/gen/byte_swap_2.S +src/common/lib/libc/arch/x86_64/gen/byte_swap_4.S +src/common/lib/libc/arch/x86_64/gen/byte_swap_8.S +src/common/lib/libc/cdb/cdbr.c +src/common/lib/libc/gen/bswap16.c +src/common/lib/libc/gen/bswap32.c +src/common/lib/libc/gen/bswap64.c +src/common/lib/libc/gen/ptree.c +src/common/lib/libc/gen/rb.c +src/common/lib/libc/gmon/mcount.c +src/common/lib/libc/hash/murmurhash/murmurhash.c +src/common/lib/libc/hash/rmd160/rmd160.c +src/common/lib/libc/hash/sha1/sha1.c +src/common/lib/libc/hash/sha2/sha2.c +src/common/lib/libc/inet/inet_addr.c +src/common/lib/libc/md/md4c.c +src/common/lib/libc/md/md5c.c +src/common/lib/libc/stdlib/heapsort.c +src/common/lib/libc/stdlib/mi_vector_hash.c +src/common/lib/libc/stdlib/random.c +src/common/lib/libc/stdlib/strtoimax.c +src/common/lib/libc/stdlib/_strtol.h +src/common/lib/libc/stdlib/strtoll.c +src/common/lib/libc/stdlib/strtoul.c +src/common/lib/libc/stdlib/_strtoul.h +src/common/lib/libc/stdlib/strtoull.c +src/common/lib/libc/stdlib/strtoumax.c +src/common/lib/libc/string/bcopy.c +src/common/lib/libc/string/consttime_memequal.c +src/common/lib/libc/string/explicit_memset.c +src/common/lib/libc/string/ffs.c +src/common/lib/libc/string/memchr.c +src/common/lib/libc/string/memcmp.c +src/common/lib/libc/string/memcpy.c +src/common/lib/libc/string/memmove.c +src/common/lib/libc/string/memset.c +src/common/lib/libc/string/popcount32.c +src/common/lib/libc/string/popcount64.c +src/common/lib/libc/string/strcasecmp.c +src/common/lib/libc/string/strcat.c +src/common/lib/libc/string/strchr.c +src/common/lib/libc/string/strcmp.c +src/common/lib/libc/string/strcpy.c +src/common/lib/libc/string/strcspn.c +src/common/lib/libc/string/strlcat.c +src/common/lib/libc/string/strlcpy.c +src/common/lib/libc/string/strlen.c +src/common/lib/libc/string/strncasecmp.c +src/common/lib/libc/string/strncat.c +src/common/lib/libc/string/strncmp.c +src/common/lib/libc/string/strncpy.c +src/common/lib/libc/string/strnlen.c +src/common/lib/libc/string/strpbrk.c +src/common/lib/libc/string/strrchr.c +src/common/lib/libc/string/strsep.c +src/common/lib/libc/string/strspn.c +src/common/lib/libc/string/strstr.c +src/common/lib/libc/sys/cpuset.c +src/common/lib/libppath/ppath.c +src/common/lib/libppath/ppath_extant.c +src/common/lib/libppath/ppath_kmem_alloc.c +src/common/lib/libprop/prop_array.c +src/common/lib/libprop/prop_array_util.c +src/common/lib/libprop/prop_bool.c +src/common/lib/libprop/prop_data.c +src/common/lib/libprop/prop_dictionary.c +src/common/lib/libprop/prop_dictionary_util.c +src/common/lib/libprop/prop_ingest.c +src/common/lib/libprop/prop_kern.c +src/common/lib/libprop/prop_number.c +src/common/lib/libprop/prop_object.c +src/common/lib/libprop/prop_object_impl.h +src/common/lib/libprop/prop_rb_impl.h +src/common/lib/libprop/prop_stack.c +src/common/lib/libprop/prop_stack.h +src/common/lib/libprop/prop_string.c +src/common/lib/libutil/getfstypename.c +src/common/lib/libutil/proc_compare.c +src/common/lib/libutil/snprintb.c +src/include/stdbool.h +src/include/vis.h +src/lib/libc/gen/unvis.c +src/lib/libc/gen/vis.c +src/lib/libutil/efun.c +src/sys/altq/files.altq +src/sys/altq/if_altq.h +src/sys/arch/amd64/amd64/kobj_machdep.c +src/sys/arch/amd64/include/ansi.h +src/sys/arch/amd64/include/asm.h +src/sys/arch/amd64/include/bswap.h +src/sys/arch/amd64/include/bus_defs.h +src/sys/arch/amd64/include/bus_funcs.h +src/sys/arch/amd64/include/byte_swap.h +src/sys/arch/amd64/include/cdefs.h +src/sys/arch/amd64/include/cpu_counter.h +src/sys/arch/amd64/include/cpufunc.h +src/sys/arch/amd64/include/cpu.h +src/sys/arch/amd64/include/disklabel.h +src/sys/arch/amd64/include/elf_machdep.h +src/sys/arch/amd64/include/endian.h +src/sys/arch/amd64/include/endian_machdep.h +src/sys/arch/amd64/include/frame.h +src/sys/arch/amd64/include/frame_regs.h +src/sys/arch/amd64/include/int_const.h +src/sys/arch/amd64/include/int_fmtio.h +src/sys/arch/amd64/include/int_limits.h +src/sys/arch/amd64/include/int_mwgwtypes.h +src/sys/arch/amd64/include/intrdefs.h +src/sys/arch/amd64/include/intr.h +src/sys/arch/amd64/include/int_types.h +src/sys/arch/amd64/include/limits.h +src/sys/arch/amd64/include/lock.h +src/sys/arch/amd64/include/mcontext.h +src/sys/arch/amd64/include/mutex.h +src/sys/arch/amd64/include/param.h +src/sys/arch/amd64/include/pcb.h +src/sys/arch/amd64/include/pic.h +src/sys/arch/amd64/include/pmap.h +src/sys/arch/amd64/include/proc.h +src/sys/arch/amd64/include/psl.h +src/sys/arch/amd64/include/pte.h +src/sys/arch/amd64/include/ptrace.h +src/sys/arch/amd64/include/rwlock.h +src/sys/arch/amd64/include/segments.h +src/sys/arch/amd64/include/signal.h +src/sys/arch/amd64/include/specialreg.h +src/sys/arch/amd64/include/trap.h +src/sys/arch/amd64/include/tss.h +src/sys/arch/amd64/include/types.h +src/sys/arch/amd64/include/vmparam.h +src/sys/arch/amd64/include/wchar_limits.h +src/sys/arch/arm/arm32/kobj_machdep.c +src/sys/arch/arm/include/ansi.h +src/sys/arch/arm/include/arm32/frame.h +src/sys/arch/arm/include/arm32/param.h +src/sys/arch/arm/include/arm32/pte.h +src/sys/arch/arm/include/arm32/types.h +src/sys/arch/arm/include/arm32/vmparam.h +src/sys/arch/arm/include/armreg.h +src/sys/arch/arm/include/asm.h +src/sys/arch/arm/include/bswap.h +src/sys/arch/arm/include/byte_swap.h +src/sys/arch/arm/include/cdefs.h +src/sys/arch/arm/include/cpuconf.h +src/sys/arch/arm/include/cpufunc.h +src/sys/arch/arm/include/cpufunc_proto.h +src/sys/arch/arm/include/disklabel.h +src/sys/arch/arm/include/elf_machdep.h +src/sys/arch/arm/include/endian_machdep.h +src/sys/arch/arm/include/frame.h +src/sys/arch/arm/include/int_const.h +src/sys/arch/arm/include/int_fmtio.h +src/sys/arch/arm/include/int_limits.h +src/sys/arch/arm/include/int_mwgwtypes.h +src/sys/arch/arm/include/int_types.h +src/sys/arch/arm/include/limits.h +src/sys/arch/arm/include/lock.h +src/sys/arch/arm/include/locore.h +src/sys/arch/arm/include/mcontext.h +src/sys/arch/arm/include/mutex.h +src/sys/arch/arm/include/param.h +src/sys/arch/arm/include/pcb.h +src/sys/arch/arm/include/proc.h +src/sys/arch/arm/include/ptrace.h +src/sys/arch/arm/include/reg.h +src/sys/arch/arm/include/rwlock.h +src/sys/arch/arm/include/signal.h +src/sys/arch/arm/include/types.h +src/sys/arch/arm/include/wchar_limits.h +src/sys/arch/evbarm/include/ansi.h +src/sys/arch/evbarm/include/asm.h +src/sys/arch/evbarm/include/bswap.h +src/sys/arch/evbarm/include/cdefs.h +src/sys/arch/evbarm/include/disklabel.h +src/sys/arch/evbarm/include/elf_machdep.h +src/sys/arch/evbarm/include/endian.h +src/sys/arch/evbarm/include/endian_machdep.h +src/sys/arch/evbarm/include/frame.h +src/sys/arch/evbarm/include/int_const.h +src/sys/arch/evbarm/include/int_fmtio.h +src/sys/arch/evbarm/include/int_limits.h +src/sys/arch/evbarm/include/int_mwgwtypes.h +src/sys/arch/evbarm/include/int_types.h +src/sys/arch/evbarm/include/limits.h +src/sys/arch/evbarm/include/lock.h +src/sys/arch/evbarm/include/mcontext.h +src/sys/arch/evbarm/include/mutex.h +src/sys/arch/evbarm/include/param.h +src/sys/arch/evbarm/include/pcb.h +src/sys/arch/evbarm/include/proc.h +src/sys/arch/evbarm/include/ptrace.h +src/sys/arch/evbarm/include/rwlock.h +src/sys/arch/evbarm/include/signal.h +src/sys/arch/evbarm/include/types.h +src/sys/arch/evbarm/include/vmparam.h +src/sys/arch/evbarm/include/wchar_limits.h +src/sys/arch/i386/i386/kobj_machdep.c +src/sys/arch/i386/include/ansi.h +src/sys/arch/i386/include/asm.h +src/sys/arch/i386/include/bswap.h +src/sys/arch/i386/include/bus_defs.h +src/sys/arch/i386/include/bus_funcs.h +src/sys/arch/i386/include/byte_swap.h +src/sys/arch/i386/include/cdefs.h +src/sys/arch/i386/include/cpu_counter.h +src/sys/arch/i386/include/cpufunc.h +src/sys/arch/i386/include/cpu.h +src/sys/arch/i386/include/disklabel.h +src/sys/arch/i386/include/elf_machdep.h +src/sys/arch/i386/include/endian.h +src/sys/arch/i386/include/endian_machdep.h +src/sys/arch/i386/include/frame.h +src/sys/arch/i386/include/int_const.h +src/sys/arch/i386/include/int_fmtio.h +src/sys/arch/i386/include/int_limits.h +src/sys/arch/i386/include/int_mwgwtypes.h +src/sys/arch/i386/include/intrdefs.h +src/sys/arch/i386/include/intr.h +src/sys/arch/i386/include/int_types.h +src/sys/arch/i386/include/limits.h +src/sys/arch/i386/include/lock.h +src/sys/arch/i386/include/mcontext.h +src/sys/arch/i386/include/mutex.h +src/sys/arch/i386/include/param.h +src/sys/arch/i386/include/pcb.h +src/sys/arch/i386/include/pic.h +src/sys/arch/i386/include/pmap.h +src/sys/arch/i386/include/proc.h +src/sys/arch/i386/include/psl.h +src/sys/arch/i386/include/pte.h +src/sys/arch/i386/include/ptrace.h +src/sys/arch/i386/include/rwlock.h +src/sys/arch/i386/include/segments.h +src/sys/arch/i386/include/signal.h +src/sys/arch/i386/include/specialreg.h +src/sys/arch/i386/include/trap.h +src/sys/arch/i386/include/tss.h +src/sys/arch/i386/include/types.h +src/sys/arch/i386/include/vmparam.h +src/sys/arch/i386/include/wchar_limits.h +src/sys/arch/x86/include/bus_defs.h +src/sys/arch/x86/include/busdefs.h +src/sys/arch/x86/include/bus_funcs.h +src/sys/arch/x86/include/cacheinfo.h +src/sys/arch/x86/include/cpu_counter.h +src/sys/arch/x86/include/cpu_extended_state.h +src/sys/arch/x86/include/cpufunc.h +src/sys/arch/x86/include/cpu.h +src/sys/arch/x86/include/intrdefs.h +src/sys/arch/x86/include/intr.h +src/sys/arch/x86/include/lock.h +src/sys/arch/x86/include/mutex.h +src/sys/arch/x86/include/pic.h +src/sys/arch/x86/include/pmap.h +src/sys/arch/x86/include/pmap_pv.h +src/sys/arch/x86/include/psl.h +src/sys/arch/x86/include/pte.h +src/sys/arch/x86/include/rwlock.h +src/sys/arch/x86/include/specialreg.h +src/sys/arch/x86/include/trap.h +src/sys/coda/files.coda +src/sys/compat/common/compat_mod.h +src/sys/compat/common/compat_util.h +src/sys/compat/common/kern_select_50.c +src/sys/compat/common/kern_time_50.c +src/sys/compat/common/vfs_syscalls_50.c +src/sys/compat/sys/clockctl.h +src/sys/compat/sys/dirent.h +src/sys/compat/sys/mount.h +src/sys/compat/sys/resource.h +src/sys/compat/sys/stat.h +src/sys/compat/sys/time.h +src/sys/compat/sys/time_types.h +src/sys/compat/sys/timex.h +src/sys/conf/copyright +src/sys/conf/files +src/sys/conf/majors +src/sys/conf/newvers.sh +src/sys/conf/osrelease.sh +src/sys/conf/param.c +src/sys/crypto/arc4/files.arc4 +src/sys/crypto/blowfish/files.blowfish +src/sys/crypto/camellia/files.camellia +src/sys/crypto/cast128/files.cast128 +src/sys/crypto/cprng_fast/cprng_fast.c +src/sys/crypto/cprng_fast/cprng_fast.h +src/sys/crypto/cprng_fast/files.cprng_fast +src/sys/crypto/des/files.des +src/sys/crypto/nist_ctr_drbg/files.nist_ctr_drbg +src/sys/crypto/nist_ctr_drbg/nist_ctr_aes_rijndael.h +src/sys/crypto/nist_ctr_drbg/nist_ctr_drbg_aes128.h +src/sys/crypto/nist_ctr_drbg/nist_ctr_drbg.c +src/sys/crypto/nist_ctr_drbg/nist_ctr_drbg_config.h +src/sys/crypto/nist_ctr_drbg/nist_ctr_drbg.h +src/sys/crypto/rijndael/files.rijndael +src/sys/crypto/rijndael/rijndael-alg-fst.c +src/sys/crypto/rijndael/rijndael-alg-fst.h +src/sys/crypto/rijndael/rijndael-api-fst.c +src/sys/crypto/rijndael/rijndael-api-fst.h +src/sys/crypto/rijndael/rijndael.c +src/sys/crypto/rijndael/rijndael.h +src/sys/crypto/rijndael/rijndael_local.h +src/sys/crypto/skipjack/files.skipjack +src/sys/ddb/files.ddb +src/sys/dev/altmem/files.altmem +src/sys/dev/clock_subr.c +src/sys/dev/clock_subr.h +src/sys/dev/cons.c +src/sys/dev/cons.h +src/sys/dev/dksubr.c +src/sys/dev/dkvar.h +src/sys/dev/dkwedge/dk.c +src/sys/dev/dm/files.dm +src/sys/dev/dmover/files.dmover +src/sys/dev/drm/files.drm +src/sys/dev/dtv/files.dtv +src/sys/dev/files.audio +src/sys/dev/firmload.c +src/sys/dev/firmload.h +src/sys/dev/flash/files.flash +src/sys/dev/gpio/files.gpio +src/sys/dev/i2c/files.i2c +src/sys/dev/ic/files.athn +src/sys/dev/ir/files.ir +src/sys/dev/iscsi/files.iscsi +src/sys/dev/mii/files.mii +src/sys/dev/nand/files.nand +src/sys/dev/nor/files.nor +src/sys/dev/onewire/files.onewire +src/sys/dev/pad/files.pad +src/sys/dev/ppbus/files.ppbus +src/sys/dev/raidframe/files.raidframe +src/sys/dev/rasops/files.rasops +src/sys/dev/rcons/files.rcons +src/sys/dev/rnd_private.h +src/sys/dev/spi/files.spi +src/sys/dev/splash/files.splash +src/sys/dev/stbi/files.stbi +src/sys/dev/sysmon/files.sysmon +src/sys/dev/tprof/files.tprof +src/sys/dev/videomode/files.videomode +src/sys/dev/wscons/files.wscons +src/sys/dev/wsfb/files.wsfb +src/sys/dev/wsfont/files.wsfont +src/sys/external/bsd/drm2/drm/files.drmkms +src/sys/external/bsd/drm2/linux/files.drmkms_linux +src/sys/external/bsd/drm2/ttm/files.ttm +src/sys/external/bsd/drm/conf/files.drm +src/sys/external/bsd/dwc2/conf/files.dwc2 +src/sys/external/isc/atheros_hal/conf/files.ath_hal +src/sys/fs/adosfs/files.adosfs +src/sys/fs/cd9660/cd9660_bmap.c +src/sys/fs/cd9660/cd9660_extern.h +src/sys/fs/cd9660/cd9660_lookup.c +src/sys/fs/cd9660/cd9660_mount.h +src/sys/fs/cd9660/cd9660_node.c +src/sys/fs/cd9660/cd9660_node.h +src/sys/fs/cd9660/cd9660_rrip.c +src/sys/fs/cd9660/cd9660_rrip.h +src/sys/fs/cd9660/cd9660_util.c +src/sys/fs/cd9660/cd9660_vfsops.c +src/sys/fs/cd9660/cd9660_vnops.c +src/sys/fs/cd9660/files.cd9660 +src/sys/fs/cd9660/iso.h +src/sys/fs/cd9660/iso_rrip.h +src/sys/fs/efs/files.efs +src/sys/fs/filecorefs/files.filecorefs +src/sys/fs/hfs/files.hfs +src/sys/fs/msdosfs/bootsect.h +src/sys/fs/msdosfs/bpb.h +src/sys/fs/msdosfs/denode.h +src/sys/fs/msdosfs/direntry.h +src/sys/fs/msdosfs/fat.h +src/sys/fs/msdosfs/files.msdosfs +src/sys/fs/msdosfs/msdosfs_conv.c +src/sys/fs/msdosfs/msdosfs_denode.c +src/sys/fs/msdosfs/msdosfs_fat.c +src/sys/fs/msdosfs/msdosfs_lookup.c +src/sys/fs/msdosfs/msdosfsmount.h +src/sys/fs/msdosfs/msdosfs_vfsops.c +src/sys/fs/msdosfs/msdosfs_vnops.c +src/sys/fs/nilfs/files.nilfs +src/sys/fs/ntfs/files.ntfs +src/sys/fs/ptyfs/files.ptyfs +src/sys/fs/puffs/files.puffs +src/sys/fs/smbfs/files.smbfs +src/sys/fs/sysvbfs/files.sysvbfs +src/sys/fs/tmpfs/files.tmpfs +src/sys/fs/udf/ecma167-udf.h +src/sys/fs/udf/files.udf +src/sys/fs/unicode.h +src/sys/fs/union/files.union +src/sys/fs/v7fs/files.v7fs +src/sys/ipkdb/files.ipkdb +src/sys/kern/bufq_disksort.c +src/sys/kern/bufq_fcfs.c +src/sys/kern/bufq_priocscan.c +src/sys/kern/bufq_readprio.c +src/sys/kern/files.kern +src/sys/kern/init_sysctl_base.c +src/sys/kern/kern_auth.c +src/sys/kern/kern_cfglock.c +src/sys/kern/kern_descrip.c +src/sys/kern/kern_event.c +src/sys/kern/kern_hook.c +src/sys/kern/kern_ksyms.c +src/sys/kern/kern_ktrace.c +src/sys/kern/kern_ktrace_vfs.c +src/sys/kern/kern_malloc.c +src/sys/kern/kern_module.c +src/sys/kern/kern_module_vfs.c +src/sys/kern/kern_mutex_obj.c +src/sys/kern/kern_ntptime.c +src/sys/kern/kern_physio.c +src/sys/kern/kern_pmf.c +src/sys/kern/kern_proc.c +src/sys/kern/kern_prot.c +src/sys/kern/kern_rate.c +src/sys/kern/kern_resource.c +src/sys/kern/kern_rndpool.c +src/sys/kern/kern_rndq.c +src/sys/kern/kern_rndsink.c +src/sys/kern/kern_stub.c +src/sys/kern/kern_syscall.c +src/sys/kern/kern_sysctl.c +src/sys/kern/kern_tc.c +src/sys/kern/kern_time.c +src/sys/kern/kern_timeout.c +src/sys/kern/kern_uidinfo.c +src/sys/kern/kern_xxx.c +src/sys/kern/subr_autoconf.c +src/sys/kern/subr_bufq.c +src/sys/kern/subr_callback.c +src/sys/kern/subr_copy.c +src/sys/kern/subr_cprng.c +src/sys/kern/subr_device.c +src/sys/kern/subr_devsw.c +src/sys/kern/subr_disk.c +src/sys/kern/subr_disk_mbr.c +src/sys/kern/subr_disk_open.c +src/sys/kern/subr_evcnt.c +src/sys/kern/subr_extent.c +src/sys/kern/subr_hash.c +src/sys/kern/subr_humanize.c +src/sys/kern/subr_iostat.c +src/sys/kern/subr_kcpuset.c +src/sys/kern/subr_kmem.c +src/sys/kern/subr_kobj.c +src/sys/kern/subr_kobj_vfs.c +src/sys/kern/subr_log.c +src/sys/kern/subr_lwp_specificdata.c +src/sys/kern/subr_once.c +src/sys/kern/subr_pcq.c +src/sys/kern/subr_percpu.c +src/sys/kern/subr_pool.c +src/sys/kern/subr_prf.c +src/sys/kern/subr_pserialize.c +src/sys/kern/subr_specificdata.c +src/sys/kern/subr_time.c +src/sys/kern/subr_vmem.c +src/sys/kern/subr_workqueue.c +src/sys/kern/subr_xcall.c +src/sys/kern/syscalls.c +src/sys/kern/sys_descrip.c +src/sys/kern/sys_generic.c +src/sys/kern/sys_module.c +src/sys/kern/sys_pipe.c +src/sys/kern/sys_select.c +src/sys/kern/sys_syscall.c +src/sys/kern/uipc_sem.c +src/sys/kern/vfs_bio.c +src/sys/kern/vfs_cache.c +src/sys/kern/vfs_cwd.c +src/sys/kern/vfs_dirhash.c +src/sys/kern/vfs_getcwd.c +src/sys/kern/vfs_hooks.c +src/sys/kern/vfs_init.c +src/sys/kern/vfs_lockf.c +src/sys/kern/vfs_lookup.c +src/sys/kern/vfs_mount.c +src/sys/kern/vfs_quotactl.c +src/sys/kern/vfs_subr.c +src/sys/kern/vfs_syscalls.c +src/sys/kern/vfs_trans.c +src/sys/kern/vfs_vnode.c +src/sys/kern/vfs_vnops.c +src/sys/kern/vfs_wapbl.c +src/sys/kern/vfs_xattr.c +src/sys/kern/vnode_if.c +src/sys/lib/libkern/crc32.c +src/sys/lib/libkern/crc32.h +src/sys/lib/libkern/imax.c +src/sys/lib/libkern/imin.c +src/sys/lib/libkern/intoa.c +src/sys/lib/libkern/kern_assert.c +src/sys/lib/libkern/libkern.h +src/sys/lib/libkern/lmax.c +src/sys/lib/libkern/lmin.c +src/sys/lib/libkern/__main.c +src/sys/lib/libkern/max.c +src/sys/lib/libkern/mertwist.c +src/sys/lib/libkern/min.c +src/sys/lib/libkern/pmatch.c +src/sys/lib/libkern/rngtest.c +src/sys/lib/libkern/scanc.c +src/sys/lib/libkern/skpc.c +src/sys/lib/libkern/ulmax.c +src/sys/lib/libkern/ulmin.c +src/sys/lib/libkern/xlat_mbr_fstype.c +src/sys/lib/libx86emu/files.x86emu +src/sys/miscfs/deadfs/dead_vfsops.c +src/sys/miscfs/deadfs/dead_vnops.c +src/sys/miscfs/fdesc/files.fdesc +src/sys/miscfs/fifofs/fifo.h +src/sys/miscfs/genfs/genfs.h +src/sys/miscfs/genfs/genfs_io.c +src/sys/miscfs/genfs/genfs_node.h +src/sys/miscfs/genfs/genfs_rename.c +src/sys/miscfs/genfs/genfs_vfsops.c +src/sys/miscfs/genfs/genfs_vnops.c +src/sys/miscfs/kernfs/files.kernfs +src/sys/miscfs/nullfs/files.nullfs +src/sys/miscfs/overlay/files.overlay +src/sys/miscfs/procfs/files.procfs +src/sys/miscfs/specfs/specdev.h +src/sys/miscfs/specfs/spec_vnops.c +src/sys/miscfs/syncfs/syncfs.h +src/sys/miscfs/syncfs/sync_subr.c +src/sys/miscfs/syncfs/sync_vnops.c +src/sys/miscfs/umapfs/files.umapfs +src/sys/net80211/files.net80211 +src/sys/net/agr/files.agr +src/sys/netatalk/files.netatalk +src/sys/netbt/files.netbt +src/sys/net/dlt.h +src/sys/net/files.net +src/sys/net/files.pf +src/sys/net/if_arp.h +src/sys/net/if.h +src/sys/netinet6/files.netinet6 +src/sys/netinet6/in6.h +src/sys/netinet/files.ipfilter +src/sys/netinet/files.netinet +src/sys/netinet/in.h +src/sys/netipsec/files.netipsec +src/sys/netisdn/files.i4b +src/sys/netmpls/files.netmpls +src/sys/netnatm/files.netnatm +src/sys/net/npf/files.npf +src/sys/net/pfil.h +src/sys/net/pktqueue.h +src/sys/netsmb/files.netsmb +src/sys/nfs/files.nfs +src/sys/nfs/nfs.h +src/sys/nfs/nfsproto.h +src/sys/nfs/nfs_var.h +src/sys/nfs/rpcv2.h +src/sys/opencrypto/files.opencrypto +src/sys/rump/dev/files.rump +src/sys/rump/include/machine/cpu.h +src/sys/rump/include/machine/intr.h +src/sys/rump/include/machine/pmap.h +src/sys/rump/include/rump/rumpdefs.h +src/sys/rump/include/rump/rump.h +src/sys/rump/include/rump/rumpkern_if_pub.h +src/sys/rump/include/rump/rump_namei.h +src/sys/rump/include/rump/rumpnet_if_pub.h +src/sys/rump/include/rump/rump_syscalls_compat.h +src/sys/rump/include/rump/rump_syscalls.h +src/sys/rump/include/rump/rumpuser.h +src/sys/rump/include/rump/rumpvfs_if_pub.h +src/sys/rump/include/rump/rumpvnode_if.h +src/sys/rump/include/sys/bus.h +src/sys/rump/librump/rumpdev/autoconf.c +src/sys/rump/librump/rumpdev/MAINBUS.ioconf +src/sys/rump/librump/rumpdev/opt/wsdisplay.h +src/sys/rump/librump/rumpdev/rump_dev.c +src/sys/rump/librump/rumpdev/rump_dev_private.h +src/sys/rump/librump/rumpkern/accessors.c +src/sys/rump/librump/rumpkern/arch/generic/rump_generic_cpu.c +src/sys/rump/librump/rumpkern/arch/generic/rump_generic_pmap.c +src/sys/rump/librump/rumpkern/arch/x86/rump_x86_cpu.c +src/sys/rump/librump/rumpkern/arch/x86/rump_x86_cpu_counter.c +src/sys/rump/librump/rumpkern/arch/x86/rump_x86_pmap.c +src/sys/rump/librump/rumpkern/arch/x86/rump_x86_spinlock.c +src/sys/rump/librump/rumpkern/arch/x86/rump_x86_spl.c +src/sys/rump/librump/rumpkern/cons.c +src/sys/rump/librump/rumpkern/devsw.c +src/sys/rump/librump/rumpkern/emul.c +src/sys/rump/librump/rumpkern/etfs_wrap.c +src/sys/rump/librump/rumpkern/hyperentropy.c +src/sys/rump/librump/rumpkern/intr.c +src/sys/rump/librump/rumpkern/klock.c +src/sys/rump/librump/rumpkern/kobj_rename.c +src/sys/rump/librump/rumpkern/locks_up.c +src/sys/rump/librump/rumpkern/ltsleep.c +src/sys/rump/librump/rumpkern/lwproc.c +src/sys/rump/librump/rumpkern/opt/config_file.h +src/sys/rump/librump/rumpkern/opt/ksyms.h +src/sys/rump/librump/rumpkern/opt/opt_bufcache.h +src/sys/rump/librump/rumpkern/opt/opt_compat_43.h +src/sys/rump/librump/rumpkern/opt/opt_compat_netbsd.h +src/sys/rump/librump/rumpkern/opt/opt_ddb.h +src/sys/rump/librump/rumpkern/opt/opt_defcorename.h +src/sys/rump/librump/rumpkern/opt/opt_dump.h +src/sys/rump/librump/rumpkern/opt/opt_hz.h +src/sys/rump/librump/rumpkern/opt/opt_ipkdb.h +src/sys/rump/librump/rumpkern/opt/opt_kgdb.h +src/sys/rump/librump/rumpkern/opt/opt_ktrace.h +src/sys/rump/librump/rumpkern/opt/opt_lockdebug.h +src/sys/rump/librump/rumpkern/opt/opt_magiclinks.h +src/sys/rump/librump/rumpkern/opt/opt_modular.h +src/sys/rump/librump/rumpkern/opt/opt_multiprocessor.h +src/sys/rump/librump/rumpkern/opt/opt_ptrace.h +src/sys/rump/librump/rumpkern/opt/opt_revcache.h +src/sys/rump/librump/rumpkern/opt/opt_rnd_printf.h +src/sys/rump/librump/rumpkern/opt/opt_rtc_offset.h +src/sys/rump/librump/rumpkern/opt/opt_sysv.h +src/sys/rump/librump/rumpkern/opt/opt_sysvparam.h +src/sys/rump/librump/rumpkern/opt/opt_uvmhist.h +src/sys/rump/librump/rumpkern/opt/veriexec.h +src/sys/rump/librump/rumpkern/rump.c +src/sys/rump/librump/rumpkern/rumpcopy.c +src/sys/rump/librump/rumpkern/rump_curlwp.h +src/sys/rump/librump/rumpkern/rump_curlwp_hypercall.h +src/sys/rump/librump/rumpkern/rumpkern_if_priv.h +src/sys/rump/librump/rumpkern/rumpkern_if_wrappers.c +src/sys/rump/librump/rumpkern/rumpkern_syscalls.c +src/sys/rump/librump/rumpkern/rump_private.h +src/sys/rump/librump/rumpkern/rump_syscalls.c +src/sys/rump/librump/rumpkern/scheduler.c +src/sys/rump/librump/rumpkern/signals.c +src/sys/rump/librump/rumpkern/sleepq.c +src/sys/rump/librump/rumpkern/threads.c +src/sys/rump/librump/rumpkern/vm.c +src/sys/rump/librump/rumpnet/rumpnet_if_priv.h +src/sys/rump/librump/rumpnet/rump_net_private.h +src/sys/rump/librump/rumpvfs/compat.c +src/sys/rump/librump/rumpvfs/devnodes.c +src/sys/rump/librump/rumpvfs/devnull.c +src/sys/rump/librump/rumpvfs/rumpblk.c +src/sys/rump/librump/rumpvfs/rumpfs.c +src/sys/rump/librump/rumpvfs/rump_vfs.c +src/sys/rump/librump/rumpvfs/rumpvfs_if_priv.h +src/sys/rump/librump/rumpvfs/rumpvfs_if_wrappers.c +src/sys/rump/librump/rumpvfs/rump_vfs_private.h +src/sys/rump/librump/rumpvfs/rumpvfs_syscalls.c +src/sys/rump/librump/rumpvfs/rumpvnode_if.c +src/sys/rump/librump/rumpvfs/vm_vfs.c +src/sys/secmodel/bsd44/files.bsd44 +src/sys/secmodel/extensions/files.extensions +src/sys/secmodel/files.secmodel +src/sys/secmodel/keylock/files.keylock +src/sys/secmodel/overlay/files.overlay +src/sys/secmodel/secmodel.c +src/sys/secmodel/secmodel.h +src/sys/secmodel/securelevel/files.securelevel +src/sys/secmodel/suser/files.suser +src/sys/secmodel/suser/secmodel_suser.c +src/sys/secmodel/suser/suser.h +src/sys/sys/acct.h +src/sys/sys/aio.h +src/sys/sys/ansi.h +src/sys/sys/atomic.h +src/sys/sys/bitops.h +src/sys/sys/bootblock.h +src/sys/sys/bswap.h +src/sys/sys/buf.h +src/sys/sys/bufq.h +src/sys/sys/bufq_impl.h +src/sys/sys/bus.h +src/sys/sys/bus_proto.h +src/sys/sys/callback.h +src/sys/sys/callout.h +src/sys/sys/cdbr.h +src/sys/sys/cdefs_elf.h +src/sys/sys/cdefs.h +src/sys/sys/cdio.h +src/sys/sys/clockctl.h +src/sys/sys/clock.h +src/sys/sys/common_int_limits.h +src/sys/sys/common_int_mwgwtypes.h +src/sys/sys/common_int_types.h +src/sys/sys/condvar.h +src/sys/sys/conf.h +src/sys/sys/cprng.h +src/sys/sys/cpu_data.h +src/sys/sys/cpu.h +src/sys/sys/debug.h +src/sys/sys/device.h +src/sys/sys/device_if.h +src/sys/sys/devmon.h +src/sys/sys/dirent.h +src/sys/sys/dirhash.h +src/sys/sys/disk.h +src/sys/sys/disklabel_acorn.h +src/sys/sys/disklabel.h +src/sys/sys/dkbad.h +src/sys/sys/dkio.h +src/sys/sys/dtrace_bsd.h +src/sys/sys/endian.h +src/sys/sys/errno.h +src/sys/sys/evcnt.h +src/sys/sys/event.h +src/sys/sys/eventvar.h +src/sys/sys/exec_elf.h +src/sys/sys/exec.h +src/sys/sys/extattr.h +src/sys/sys/extent.h +src/sys/sys/fcntl.h +src/sys/sys/fd_set.h +src/sys/sys/featuretest.h +src/sys/sys/filedesc.h +src/sys/sys/file.h +src/sys/sys/filio.h +src/sys/sys/fstrans.h +src/sys/sys/fstypes.h +src/sys/sys/hash.h +src/sys/sys/intr.h +src/sys/sys/inttypes.h +src/sys/sys/ioccom.h +src/sys/sys/ioctl_compat.h +src/sys/sys/ioctl.h +src/sys/sys/iostat.h +src/sys/sys/ipi.h +src/sys/sys/kauth.h +src/sys/sys/kcpuset.h +src/sys/sys/kernel.h +src/sys/sys/kernhist.h +src/sys/sys/kmem.h +src/sys/sys/kobj.h +src/sys/sys/kobj_impl.h +src/sys/sys/kprintf.h +src/sys/sys/ksem.h +src/sys/sys/ksyms.h +src/sys/sys/kthread.h +src/sys/sys/ktrace.h +src/sys/sys/lockdebug.h +src/sys/sys/lockf.h +src/sys/sys/lock.h +src/sys/sys/lwp.h +src/sys/sys/malloc.h +src/sys/sys/mallocvar.h +src/sys/sys/mbuf.h +src/sys/sys/md4.h +src/sys/sys/md5.h +src/sys/sys/mman.h +src/sys/sys/module.h +src/sys/sys/mount.h +src/sys/sys/mqueue.h +src/sys/sys/msgbuf.h +src/sys/sys/mutex.h +src/sys/sys/namei.h +src/sys/sys/null.h +src/sys/sys/once.h +src/sys/sys/param.h +src/sys/sys/pcq.h +src/sys/sys/pcu.h +src/sys/sys/percpu.h +src/sys/sys/percpu_types.h +src/sys/sys/pipe.h +src/sys/sys/pmf.h +src/sys/sys/poll.h +src/sys/sys/pool.h +src/sys/sys/proc.h +src/sys/sys/prot.h +src/sys/sys/protosw.h +src/sys/sys/pserialize.h +src/sys/sys/pset.h +src/sys/sys/ptrace.h +src/sys/sys/ptree.h +src/sys/sys/queue.h +src/sys/sys/quotactl.h +src/sys/sys/quota.h +src/sys/sys/ras.h +src/sys/sys/rbtree.h +src/sys/sys/reboot.h +src/sys/sys/resource.h +src/sys/sys/resourcevar.h +src/sys/sys/rmd160.h +src/sys/sys/rnd.h +src/sys/sys/rndsink.h +src/sys/sys/rngtest.h +src/sys/sys/rwlock.h +src/sys/sys/sched.h +src/sys/sys/select.h +src/sys/sys/selinfo.h +src/sys/sys/sha1.h +src/sys/sys/sha2.h +src/sys/sys/siginfo.h +src/sys/sys/signal.h +src/sys/sys/signalvar.h +src/sys/sys/sigtypes.h +src/sys/sys/sleepq.h +src/sys/sys/socket.h +src/sys/sys/socketvar.h +src/sys/sys/sockio.h +src/sys/sys/specificdata.h +src/sys/sys/spldebug.h +src/sys/sys/spl.h +src/sys/sys/stat.h +src/sys/sys/statvfs.h +src/sys/sys/stdarg.h +src/sys/sys/stdint.h +src/sys/sys/syncobj.h +src/sys/sys/syscallargs.h +src/sys/sys/syscall.h +src/sys/sys/syscall_stats.h +src/sys/sys/syscallvar.h +src/sys/sys/sysctl.h +src/sys/sys/syslimits.h +src/sys/sys/syslog.h +src/sys/sys/systm.h +src/sys/sys/termios.h +src/sys/sys/timeb.h +src/sys/sys/time.h +src/sys/sys/timepps.h +src/sys/sys/times.h +src/sys/sys/timetc.h +src/sys/sys/timevar.h +src/sys/sys/timex.h +src/sys/sys/tprintf.h +src/sys/sys/trace.h +src/sys/sys/tree.h +src/sys/sys/ttychars.h +src/sys/sys/ttycom.h +src/sys/sys/ttydefaults.h +src/sys/sys/ttydev.h +src/sys/sys/tty.h +src/sys/sys/types.h +src/sys/sys/ucontext.h +src/sys/sys/ucred.h +src/sys/sys/uidinfo.h +src/sys/sys/uio.h +src/sys/sys/unistd.h +src/sys/sys/userconf.h +src/sys/sys/utsname.h +src/sys/sys/verified_exec.h +src/sys/sys/vfs_syscalls.h +src/sys/sys/vmem.h +src/sys/sys/vmem_impl.h +src/sys/sys/vmmeter.h +src/sys/sys/vnode.h +src/sys/sys/vnode_if.h +src/sys/sys/wait.h +src/sys/sys/wapbl.h +src/sys/sys/wapbl_replay.h +src/sys/sys/workqueue.h +src/sys/sys/xattr.h +src/sys/sys/xcall.h +src/sys/ufs/ext2fs/ext2fs_alloc.c +src/sys/ufs/ext2fs/ext2fs_balloc.c +src/sys/ufs/ext2fs/ext2fs_bmap.c +src/sys/ufs/ext2fs/ext2fs_bswap.c +src/sys/ufs/ext2fs/ext2fs_dinode.h +src/sys/ufs/ext2fs/ext2fs_dir.h +src/sys/ufs/ext2fs/ext2fs_extern.h +src/sys/ufs/ext2fs/ext2fs.h +src/sys/ufs/ext2fs/ext2fs_inode.c +src/sys/ufs/ext2fs/ext2fs_lookup.c +src/sys/ufs/ext2fs/ext2fs_readwrite.c +src/sys/ufs/ext2fs/ext2fs_rename.c +src/sys/ufs/ext2fs/ext2fs_subr.c +src/sys/ufs/ext2fs/ext2fs_vfsops.c +src/sys/ufs/ext2fs/ext2fs_vnops.c +src/sys/ufs/ffs/ffs_alloc.c +src/sys/ufs/ffs/ffs_appleufs.c +src/sys/ufs/ffs/ffs_balloc.c +src/sys/ufs/ffs/ffs_bswap.c +src/sys/ufs/ffs/ffs_extern.h +src/sys/ufs/ffs/ffs_inode.c +src/sys/ufs/ffs/ffs_quota2.c +src/sys/ufs/ffs/ffs_snapshot.c +src/sys/ufs/ffs/ffs_subr.c +src/sys/ufs/ffs/ffs_tables.c +src/sys/ufs/ffs/ffs_vfsops.c +src/sys/ufs/ffs/ffs_vnops.c +src/sys/ufs/ffs/ffs_wapbl.c +src/sys/ufs/ffs/fs.h +src/sys/ufs/files.ufs +src/sys/ufs/lfs/lfs_extern.h +src/sys/ufs/lfs/lfs.h +src/sys/ufs/mfs/mfs_extern.h +src/sys/ufs/mfs/mfs_miniroot.c +src/sys/ufs/ufs/dinode.h +src/sys/ufs/ufs/dir.h +src/sys/ufs/ufs/dirhash.h +src/sys/ufs/ufs/extattr.h +src/sys/ufs/ufs/inode.h +src/sys/ufs/ufs/quota1.h +src/sys/ufs/ufs/quota1_subr.c +src/sys/ufs/ufs/quota2.h +src/sys/ufs/ufs/quota2_subr.c +src/sys/ufs/ufs/quota.h +src/sys/ufs/ufs/ufs_bmap.c +src/sys/ufs/ufs/ufs_bswap.h +src/sys/ufs/ufs/ufs_dirhash.c +src/sys/ufs/ufs/ufs_extattr.c +src/sys/ufs/ufs/ufs_extern.h +src/sys/ufs/ufs/ufs_inode.c +src/sys/ufs/ufs/ufs_lookup.c +src/sys/ufs/ufs/ufsmount.h +src/sys/ufs/ufs/ufs_quota2.c +src/sys/ufs/ufs/ufs_quota.c +src/sys/ufs/ufs/ufs_quota.h +src/sys/ufs/ufs/ufs_readwrite.c +src/sys/ufs/ufs/ufs_rename.c +src/sys/ufs/ufs/ufs_vfsops.c +src/sys/ufs/ufs/ufs_vnops.c +src/sys/ufs/ufs/ufs_wapbl.c +src/sys/ufs/ufs/ufs_wapbl.h +src/sys/uvm/files.uvm +src/sys/uvm/uvm_amap.h +src/sys/uvm/uvm_anon.h +src/sys/uvm/uvm_aobj.c +src/sys/uvm/uvm_aobj.h +src/sys/uvm/uvm_ddb.h +src/sys/uvm/uvm_device.h +src/sys/uvm/uvm_extern.h +src/sys/uvm/uvm_fault.h +src/sys/uvm/uvm_fault_i.h +src/sys/uvm/uvm_glue.h +src/sys/uvm/uvm.h +src/sys/uvm/uvm_kmguard.h +src/sys/uvm/uvm_km.h +src/sys/uvm/uvm_loan.h +src/sys/uvm/uvm_map.h +src/sys/uvm/uvm_object.c +src/sys/uvm/uvm_object.h +src/sys/uvm/uvm_page.h +src/sys/uvm/uvm_pager.h +src/sys/uvm/uvm_param.h +src/sys/uvm/uvm_pdaemon.h +src/sys/uvm/uvm_pdpolicy.h +src/sys/uvm/uvm_pglist.h +src/sys/uvm/uvm_pmap.h +src/sys/uvm/uvm_prot.h +src/sys/uvm/uvm_readahead.c +src/sys/uvm/uvm_readahead.h +src/sys/uvm/uvm_stat.h +src/sys/uvm/uvm_swap.h +src/sys/uvm/uvm_swapstub.c +src/sys/uvm/uvm_vnode.c +src/tools/compat/compat_defs.h +src/tools/compat/namespace.h +src/tools/compat/vis.h +src/usr.bin/cksum/crc.c +src/usr.bin/cksum/crc_extern.h +src/usr.bin/cksum/extern.h +src/usr.bin/config/defs.h +src/usr.bin/config/files.c +src/usr.bin/config/gram.y +src/usr.bin/config/hash.c +src/usr.bin/config/lint.c +src/usr.bin/config/main.c +src/usr.bin/config/mkdevsw.c +src/usr.bin/config/mkheaders.c +src/usr.bin/config/mkioconf.c +src/usr.bin/config/mkmakefile.c +src/usr.bin/config/mkswap.c +src/usr.bin/config/pack.c +src/usr.bin/config/scan.l +src/usr.bin/config/sem.c +src/usr.bin/config/sem.h +src/usr.bin/config/util.c diff --git a/repos/dde_rump/run/rump_cgd_ext2.run b/repos/dde_rump/run/rump_cgd_ext2.run deleted file mode 100644 index cecc3dfd3..000000000 --- a/repos/dde_rump/run/rump_cgd_ext2.run +++ /dev/null @@ -1,136 +0,0 @@ -if {[have_spec arm]} { - assert_spec arm_v7 -} - -# -# Check used commands -# -set dd [check_installed dd] - -# -# Build -# -set build_components { - core init - drivers/timer - server/ram_blk - server/rump_cgd - server/rump_fs - test/libc_vfs -} - -build $build_components - -# -# Prepare image -# -set disk_image "cgd.raw" - -puts "preparing bin/$disk_image..." - -if {![file exists $disk_image]} { - catch { exec $dd if=/dev/zero of=bin/$disk_image bs=1M count=16 } -} - -set cgd_key [exec [genode_dir]/tool/rump -c bin/$disk_image] - -if {[catch { exec [genode_dir]/tool/rump -c -d "/dev/rcgd0a" -f -F ext2fs -k "$cgd_key" bin/$disk_image }]} { - puts stderr "could not format crypto device." - exit 1 -} - -create_boot_directory - -# -# Generate config -# -append config { - - - - - - - - - - - - - - - - - - - - - } -append config " - " -append config { - - - - - - - key} -append config " - $cgd_key" -append config { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} - -install_config $config - -# -# Boot modules -# - -# generic modules -set boot_modules { - core ld.lib.so init timer ram_blk rump_cgd rump_fs test-libc_vfs - libc.lib.so rump.lib.so rump_cgd.lib.so rump_fs.lib.so -} - -append boot_modules "$disk_image" - -build_boot_image $boot_modules - -append qemu_args " -nographic" - -run_genode_until {.*child "test-libc_vfs" exited with exit value 0.*} 60 - -exec rm -f bin/$disk_image -puts "\nTest succeeded\n" - -# vi: set ft=tcl : diff --git a/repos/dde_rump/run/rump_fat.run b/repos/dde_rump/run/rump_fat.run index 708e404be..873a13cb6 100644 --- a/repos/dde_rump/run/rump_fat.run +++ b/repos/dde_rump/run/rump_fat.run @@ -47,6 +47,7 @@ append config { + @@ -56,7 +57,7 @@ append config { - + diff --git a/repos/dde_rump/src/lib/rump/bootstrap.cc b/repos/dde_rump/src/lib/rump/bootstrap.cc index 66bfa0557..d412e6f17 100644 --- a/repos/dde_rump/src/lib/rump/bootstrap.cc +++ b/repos/dde_rump/src/lib/rump/bootstrap.cc @@ -14,7 +14,7 @@ extern "C" { #include #include -#include +#include } #include @@ -24,8 +24,6 @@ extern "C" { #include -extern "C" void wait_for_continue(); - #ifdef _LP64 typedef Elf64_Dyn Elf_Dyn; typedef Elf64_Sym Elf_Sym; diff --git a/repos/dde_rump/src/lib/rump/hypercall.cc b/repos/dde_rump/src/lib/rump/hypercall.cc index 6a536c008..fef8a934c 100644 --- a/repos/dde_rump/src/lib/rump/hypercall.cc +++ b/repos/dde_rump/src/lib/rump/hypercall.cc @@ -22,7 +22,6 @@ #include #include -extern "C" void wait_for_continue(); enum { SUPPORTED_RUMP_VERSION = 17 }; static bool verbose = false; diff --git a/repos/dde_rump/src/lib/rump/misc.cc b/repos/dde_rump/src/lib/rump/misc.cc deleted file mode 100644 index 6f1e3226f..000000000 --- a/repos/dde_rump/src/lib/rump/misc.cc +++ /dev/null @@ -1,30 +0,0 @@ -/** - * \brief Misc functions - * \author Sebastian Sumpf - * \date 2014-01-17 - */ - -/* - * Copyright (C) 2014-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -/* Genode includes */ -#include - - -/* - * On some platforms (namely ARM) we end-up pulling in string.h prototypes - */ -extern "C" void *memcpy(void *d, void *s, Genode::size_t n) -{ - return Genode::memcpy(d, s, n); -} - - -extern "C" void *memset(void *s, int c, Genode::size_t n) -{ - return Genode::memset(s, c, n); -} diff --git a/repos/dde_rump/src/rump_dummy/target.mk b/repos/dde_rump/src/rump_dummy/target.mk new file mode 100644 index 000000000..519b5538e --- /dev/null +++ b/repos/dde_rump/src/rump_dummy/target.mk @@ -0,0 +1 @@ +LIBS = rump2 rump2_fs diff --git a/repos/dde_rump/src/server/rump_cgd/block_driver.h b/repos/dde_rump/src/server/rump_cgd/block_driver.h deleted file mode 100644 index 538882029..000000000 --- a/repos/dde_rump/src/server/rump_cgd/block_driver.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * \brief Block driver - * \author Josef Söntgen - * \date 2014-04-16 - */ - -/* - * Copyright (C) 2014-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _BLOCK_DRIVER_H_ -#define _BLOCK_DRIVER_H_ - -/* General includes */ -#include -#include -#include -#include - -/* local includes */ -#include "cgd.h" - - -class Driver : public Block::Driver -{ - private: - - Genode::Heap &_heap; - Block::Session::Operations _ops; - Genode::size_t _blk_sz; - Block::sector_t _blk_cnt; - - Cgd::Device *_cgd_device; - - - public: - - Driver(Genode::Env &env, Genode::Heap &heap) - : - Block::Driver(env.ram()), _heap(heap), - _blk_sz(0), _blk_cnt(0), _cgd_device(0) - { - try { - _cgd_device = Cgd::init(_heap, env); - } catch (...) { - Genode::error("could not initialize cgd device."); - throw Genode::Service_denied(); - } - - _blk_cnt = _cgd_device->block_count(); - _blk_sz = _cgd_device->block_size(); - - /* - * XXX We need write access to satisfy RUMP but we have to check - * the client policy in the session interface. - */ - _ops.set_operation(Block::Packet_descriptor::READ); - _ops.set_operation(Block::Packet_descriptor::WRITE); - } - - ~Driver() - { - Cgd::deinit(_heap, _cgd_device); - } - - bool _range_valid(Block::sector_t num, Genode::size_t count) - { - if (num + count > _blk_cnt) { - Genode::error("requested block ", num, "-", num + count, " out of range!"); - return false; - } - - return true; - } - - - /**************************** - ** Block-driver interface ** - ****************************/ - - Genode::size_t block_size() { return _blk_sz; } - Block::sector_t block_count() { return _blk_cnt; } - Block::Session::Operations ops() { return _ops; } - - void read(Block::sector_t block_number, - Genode::size_t block_count, - char* buffer, - Block::Packet_descriptor &packet) - { - if (!_ops.supported(Block::Packet_descriptor::READ)) - throw Io_error(); - - if(!_range_valid(block_number, block_count)) - throw Io_error(); - - _cgd_device->read(buffer, block_count * _blk_sz, block_number * _blk_sz); - ack_packet(packet); - } - - void write(Block::sector_t block_number, - Genode::size_t block_count, - const char * buffer, - Block::Packet_descriptor &packet) - { - if (!_ops.supported(Block::Packet_descriptor::WRITE)) - throw Io_error(); - - if(!_range_valid(block_number, block_count)) - throw Io_error(); - - _cgd_device->write(buffer, block_count * _blk_sz, block_number * _blk_sz); - ack_packet(packet); - } - - void sync() { } -}; - -#endif /* _BLOCK_DRIVER_H_ */ diff --git a/repos/dde_rump/src/server/rump_cgd/cgd.cc b/repos/dde_rump/src/server/rump_cgd/cgd.cc deleted file mode 100644 index 1354e3c7d..000000000 --- a/repos/dde_rump/src/server/rump_cgd/cgd.cc +++ /dev/null @@ -1,504 +0,0 @@ -/** - * \brief RUMP cgd - * \author Josef Soentgen - * \date 2014-04-11 - */ - -/* - * Copyright (C) 2014-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -/* Genode includes */ -#include - -/* repo includes */ -#include - -/* local includes */ -#include "cgd.h" - -/* rump includes */ -extern "C" { -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -} - - -/** - * Miscellaneous methods used for converting the key string - */ -namespace { - - /** - * Decode base64 encoding - */ - class Base64 - { - private: - - /* initialize the lookup table */ - static constexpr const unsigned char _ascii_to_value[256] - { - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 63, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64, - 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64, - 64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64 - }; - - - public: - - static size_t decode(char *dst, char const *src, size_t src_len) - { - unsigned char const *usrc = reinterpret_cast(src); - - size_t i; - for (i = 0; i < src_len; i += 4) { - *(dst++) = _ascii_to_value[usrc[i]] << 2 | _ascii_to_value[usrc[i + 1]] >> 4; - *(dst++) = _ascii_to_value[usrc[i + 1]] << 4 | _ascii_to_value[usrc[i + 2]] >> 2; - *(dst++) = _ascii_to_value[usrc[i + 2]] << 6 | _ascii_to_value[usrc[i + 3]]; - } - - return src_len * 3/4; - } - }; - - - /* lookup table instance */ - constexpr unsigned char Base64::_ascii_to_value[256]; - - - /** - * Convert unsigned big endian value to host endianess - */ - unsigned read_big_endian(unsigned val) - { - unsigned char *p = reinterpret_cast(&val); - - return (p[3]<<0) | (p[2]<<8) | (p[1]<<16) | (p[0]<<24); - } -} - - -/** - * cgd(4) wrapper - */ -namespace Cgd { - - struct Params - { - enum { - ALGORITHM_LEN = 16, - IVMETHOD_LEN = 16, - KEY_LEN = 64, - PASSPHRASE_LEN = 64, - SALT_LEN = 29, - }; - - char algorithm[ALGORITHM_LEN]; - char ivmethod[IVMETHOD_LEN]; - char key[KEY_LEN]; - - Genode::size_t keylen = 0; - Genode::size_t blocksize = 0; - - Params() - { - Genode::memset(algorithm, 0, sizeof(*algorithm)); - Genode::memset(ivmethod, 0, sizeof(*ivmethod)); - Genode::memset(key, 0, sizeof(*key)); - } - - static Params *generate() - { - return 0; - } - }; - - - /** - * Configuration of the cgd device - * - * cgdconfig(8) saves the key as base 64 encoded string. The first 4 bytes - * of this string are the length of the key in bits stored as big endian. - */ - class Config - { - public: - - /* same as in cgdconfig(8) */ - typedef enum { ACTION_INVALID, ACTION_CONFIGURE, ACTION_GENERATE } Action; - - - private: - - enum { ACTION_VALUE_LEN = 16, /* action attribute value length */ - ENCODED_KEY_LEN = 64, /* encoded key string buffer */ - DECODED_KEY_LEN = 36, /* decoded key string buffer */ - VALID_ENCODED_KEY_LEN = 48, /* length of 256Bit key */ - }; - - Genode::Attached_rom_dataspace _cfg; - Action _action; - Params *_params; - - /** - * Get action from config attribute - * - * \return action - */ - Action _get_action() - { - char action_val[ACTION_VALUE_LEN]; - - if (_cfg.xml().has_attribute("action")) - _cfg.xml().attribute("action").value(action_val, sizeof (action_val)); - else - return ACTION_INVALID; - - if (Genode::strcmp(action_val, "configure") == 0) - return ACTION_CONFIGURE; - if (Genode::strcmp(action_val, "generate") == 0) - return ACTION_GENERATE; - - return ACTION_INVALID; - } - - /** - * Decode key string in cgdconfig(8) format - * - * \param dst pointer to buffer to store decoded key - * \param src pointer to buffer with encoded key string - * \param src_len length of encoded key string buffer - * - * \return true if decoding was successful and false otherwise - */ - bool _decode_key_string(char *dst, char const *src, size_t src_len) - { - char dec_key[DECODED_KEY_LEN]; - - /* check that buffer is large enough */ - if (sizeof (dec_key) < (src_len*3/4)) - return false; - - (void) Base64::decode(dec_key, src, src_len); - - unsigned *p = reinterpret_cast(dec_key); - unsigned bits = read_big_endian(*p); - Genode::memcpy(dst, p + 1, bits / 8); - - return true; - } - - /** - * Parse given configuration - * - * This method throws a Genode::Exception if an error in the given - * configuration is found. - */ - void _parse_config() - { - if (_cfg.xml().has_sub_node("params")) { - Genode::Xml_node pnode = _cfg.xml().sub_node("params"); - - char method_val[4]; - pnode.sub_node("method").value(method_val, sizeof (method_val)); - bool use_key = Genode::strcmp(method_val, "key") == 0 ? true : false; - - if (!use_key) { - Genode::error("no valid method specified."); - throw Genode::Exception(); - } - - _params = new (Genode::env()->heap()) Params(); - - Genode::strncpy(_params->algorithm, CGD_ALGORITHM, - Params::ALGORITHM_LEN); - Genode::strncpy(_params->ivmethod, CGD_IVMETHOD, - Params::IVMETHOD_LEN); - - char enc_key[ENCODED_KEY_LEN]; - pnode.sub_node("key").value(enc_key, sizeof (enc_key)); - size_t enc_key_len = Genode::strlen(enc_key); - - if (enc_key_len != VALID_ENCODED_KEY_LEN) { - Genode::error("incorrect encoded key found."); - throw Genode::Exception(); - } - - if (!_decode_key_string(_params->key, enc_key, enc_key_len)) { - Genode::error("could not decode key string."); - throw Genode::Exception(); - } - - _params->keylen = CGD_KEYLEN; - - /* let cgd(4) figure out the right blocksize */ - _params->blocksize = -1; - } else { - Genode::error("no node found."); - throw Genode::Exception(); - } - } - - - public: - - Config(Genode::Env &env) - : - _cfg(env, "config"), - _action(_get_action()), - _params(0) - { - _parse_config(); - } - - ~Config() { destroy(Genode::env()->heap(), _params); } - - Action action() { return _action; } - Params* params() { return _params; } - }; -} - - -/** - * Constructor - * - * \param fd used by the rumpkernel to execute syscalls on - */ -Cgd::Device::Device(int fd) -: - _fd(fd), - _blk_sz(0), _blk_cnt(0) -{ - /** - * We query the disklabel(5) on CGD_RAW_DEVICE to get the - * actual block size and the number of blocks in the - * first partition. Though there may be more partitions - * we always use the first one. - */ - disklabel dl; - Genode::memset(&dl, 0, sizeof (dl)); - int err = rump_sys_ioctl(_fd, DIOCGDINFO, &dl); - if (err) { - cgd_ioctl ci; - rump_sys_ioctl(_fd, CGDIOCCLR, &ci); - rump_sys_close(_fd); - - Genode::error("could not read geometry of '", CGD_RAW_DEVICE, "'"); - throw Genode::Exception(); - } - - _blk_sz = dl.d_secsize; - _blk_cnt = dl.d_partitions[0].p_size; -} - - -/** - * Destructor - */ -Cgd::Device::~Device() -{ - /* unconfigure cgd(4) device to explicitly clean up buffers */ - cgd_ioctl ci; - rump_sys_ioctl(_fd, CGDIOCCLR, &ci); - rump_sys_close(_fd); -} - - -/** - * Get name of the actual cgd device - * - * \return name - */ -char const *Cgd::Device::name() const { return CGD_RAW_DEVICE; } - - -/** - * Read from the cgd device - * - * \param dst pointer to buffer - * \param len size of the buffer - * \param seek_offset offset from where to start reading - * - * \return bytes read - */ -Genode::size_t Cgd::Device::read(char *dst, Genode::size_t len, seek_off_t seek_offset) -{ - ssize_t ret = rump_sys_pread(_fd, dst, len, seek_offset); - - return ret == -1 ? 0 : ret; -} - - -/** - * Write to cgd device - * - * \param src pointer to buffer - * \param len size of the buffer - * \param seek_offset offset from where to start writing - * - * \return bytes written - */ -Genode::size_t Cgd::Device::write(char const *src, Genode::size_t len, seek_off_t seek_offset) -{ - /* should we append? */ - if (seek_offset == ~0ULL) { - off_t off = rump_sys_lseek(_fd, 0, SEEK_END); - if (off == -1) - return 0; - seek_offset = off; - } - - ssize_t ret = rump_sys_pwrite(_fd, src, len, seek_offset); - return ret == -1 ? 0 : ret; -} - - -/** - * Configure the actual cgd device - * - * \param alloc memory allocator for metadata - * \param p pointer to parameters - * \param dev name of the block device used as backing device for cgd - * - * \return configured cgd device - */ -Cgd::Device *Cgd::Device::configure(Genode::Allocator *alloc, Cgd::Params const *p, - char const *dev) -{ - int fd = rump_sys_open(CGD_RAW_DEVICE, O_RDWR); - if (fd == -1) { - Genode::error("could not open '", CGD_RAW_DEVICE, "'"); - throw Genode::Exception(); - } - - /* perform configuration of cgd device */ - cgd_ioctl ci; - Genode::memset(&ci, 0, sizeof (ci)); - - ci.ci_disk = dev; - ci.ci_alg = p->algorithm; - ci.ci_ivmethod = p->ivmethod; - ci.ci_key = p->key; - ci.ci_keylen = p->keylen; - ci.ci_blocksize = p->blocksize; - - int err = rump_sys_ioctl(fd, CGDIOCSET, &ci); - if (err == -1) { - rump_sys_close(fd); - - Genode::error("could not configure '", CGD_RAW_DEVICE, "'"); - throw Genode::Exception(); - } - - cgd_user cu; - Genode::memset(&cu, 0, sizeof (cu)); - - err = rump_sys_ioctl(fd, CGDIOCGET, &cu); - if (err == -1) { /* unlikely */ - - /** - * Reuse former cgd_ioctl struct because it is not used by this - * ioctl() anyway. - */ - rump_sys_ioctl(fd, CGDIOCCLR, &ci); - rump_sys_close(fd); - - Genode::error("could not get cgd information."); - throw Genode::Exception(); - } - - Cgd::Device *cgd = new (alloc) Cgd::Device(fd); - - return cgd; -} - - -/** - * Initialize a new Cgd::Device - */ -Cgd::Device *Cgd::init(Genode::Allocator &alloc, Genode::Env &env) -{ - /* start rumpkernel */ - rump_init(); - - /* register block device */ - if (rump_pub_etfs_register(GENODE_DEVICE, GENODE_BLOCK_SESSION, - RUMP_ETFS_BLK)) { - Genode::error("could not register '", GENODE_DEVICE, "' within rumpkernel"); - throw Genode::Exception(); - } - - Cgd::Config cfg(env); - - Cgd::Config::Action action = cfg.action(); - - Cgd::Device *cgd_dev = 0; - - switch (action) { - case Cgd::Config::ACTION_CONFIGURE: - { - Cgd::Params *p = cfg.params(); - if (!p) - throw Genode::Exception(); - - cgd_dev = Cgd::Device::configure(&alloc, p, GENODE_DEVICE); - - break; - } - case Cgd::Config::ACTION_GENERATE: - { - Cgd::Params *params = Cgd::Params::generate(); - (void)params; - - break; - } - case Cgd::Config::ACTION_INVALID: - Genode::error("invalid action declared"); - throw Genode::Exception(); - break; - } - - Genode::log("exporting '", cgd_dev->name(), "' as block session"); - - return cgd_dev; -} - - -/** - * Deinitialize a Cgd::Device - */ -void Cgd::deinit(Genode::Allocator &alloc, Cgd::Device *dev) -{ - destroy(alloc, dev); - - /* halt rumpkernel */ - rump_sys_reboot(RB_HALT, 0); -} diff --git a/repos/dde_rump/src/server/rump_cgd/cgd.h b/repos/dde_rump/src/server/rump_cgd/cgd.h deleted file mode 100644 index f5d198507..000000000 --- a/repos/dde_rump/src/server/rump_cgd/cgd.h +++ /dev/null @@ -1,58 +0,0 @@ -/** - * \brief Rump cgd header - * \author Josef Soentgen - * \date 2014-04-11 - */ - -/* - * Copyright (C) 2014-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CGD_H_ -#define _CGD_H_ - -#include - -namespace Cgd { - - typedef Genode::uint64_t seek_off_t; - - class Params; - - class Device - { - private: - - int _fd; /* fd for cgd (raw) device */ - Genode::size_t _blk_sz; /* block size of cgd device */ - Genode::uint64_t _blk_cnt; /* block count of cgd device */ - - - public: - - Device(int fd); - - ~Device(); - - char const *name() const; - - Genode::size_t block_size() const { return _blk_sz; } - - Genode::uint64_t block_count() const { return _blk_cnt; } - - Genode::size_t read(char *dst, Genode::size_t len, seek_off_t seek_offset); - - Genode::size_t write(char const *src, Genode::size_t len, seek_off_t seek_offset); - - static Device *configure(Genode::Allocator *alloc, Params const *p, char const *dev); - }; - - - Device *init(Genode::Allocator &alloc, Genode::Env &env); - void deinit(Genode::Allocator &alloc, Device *dev); -} - -#endif /* _CGD_H_ */ diff --git a/repos/dde_rump/src/server/rump_cgd/main.cc b/repos/dde_rump/src/server/rump_cgd/main.cc deleted file mode 100644 index 0d41f11bc..000000000 --- a/repos/dde_rump/src/server/rump_cgd/main.cc +++ /dev/null @@ -1,57 +0,0 @@ -/** - * \brief Block device encryption via cgd - * \author Josef Soentgen - * \date 2014-04-11 - */ - -/* - * Copyright (C) 2014-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -/* Genode includes */ -#include -#include - -/* local includes */ -#include "block_driver.h" -#include "cgd.h" - - -struct Main -{ - Genode::Env &env; - Genode::Heap heap { env.ram(), env.rm() }; - - struct Factory : Block::Driver_factory - { - Genode::Env &env; - Genode::Heap &heap; - - Factory(Genode::Env &env, Genode::Heap &heap) - : env(env), heap(heap) { } - - Block::Driver *create() { - return new (&heap) Driver(env, heap); } - - void destroy(Block::Driver *driver) { - Genode::destroy(&heap, driver); } - - } factory { env, heap }; - - Block::Root root { env.ep(), heap, env.rm(), factory, true }; - - Main(Genode::Env &env) : env(env) { - env.parent().announce(env.ep().manage(root)); } -}; - - -void Component::construct(Genode::Env &env) -{ - /* XXX execute constructors of global statics */ - env.exec_static_constructors(); - - static Main inst(env); -} diff --git a/repos/dde_rump/src/server/rump_cgd/random.cc b/repos/dde_rump/src/server/rump_cgd/random.cc deleted file mode 100644 index e7d9ac63a..000000000 --- a/repos/dde_rump/src/server/rump_cgd/random.cc +++ /dev/null @@ -1,89 +0,0 @@ -/** - * \brief Add random support for CGD - * \author Sebastian Sumpf - * \author Josef Soentgen - * \date 2015-02-13 - */ - -/* - * Copyright (C) 2015-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -/* Genode includes */ -#include - -/* local rump includes */ -#include -#include - -/* library includes */ -#include - -typedef Genode::size_t size_t; - - -/*********************************** - ** Jitter entropy for randomness ** - ***********************************/ - -struct Entropy -{ - struct rand_data *ec_stir; - - struct Initialization_failed : Genode::Exception { }; - - Entropy(Genode::Allocator &alloc) - { - jitterentropy_init(alloc); - - int err = jent_entropy_init(); - if (err) { - Genode::error("could not initialize jitterentropy library"); - throw Initialization_failed(); - } - - ec_stir = jent_entropy_collector_alloc(0, 0); - if (ec_stir == nullptr) { - Genode::error("could not initialize jitterentropy library"); - throw Initialization_failed(); - } - } - - size_t read(char *buf, size_t len) - { - int err; - if ((err = jent_read_entropy(ec_stir, buf, len) < 0)) { - Genode::error("failed to read entropy: ", err); - return 0; - } - - return len; - } -}; - - -static Genode::Constructible _entropy; -static bool _init_failed; - - -int rumpuser_getrandom_backend(void *buf, size_t buflen, int flags, Genode::size_t *retp) -{ - if (!_entropy.constructed()) { - if (_init_failed) { - *retp = 0; - return -1; - } - - try { _entropy.construct(Rump::env().heap()); } - catch (Entropy::Initialization_failed) { - _init_failed = true; - return -1; - } - } - - *retp = _entropy->read((char *)buf, buflen); - return 0; -} diff --git a/repos/dde_rump/src/server/rump_cgd/target.mk b/repos/dde_rump/src/server/rump_cgd/target.mk deleted file mode 100644 index 3c34f273e..000000000 --- a/repos/dde_rump/src/server/rump_cgd/target.mk +++ /dev/null @@ -1,4 +0,0 @@ -TARGET = rump_cgd - -SRC_CC = cgd.cc main.cc random.cc -LIBS = base rump rump_cgd jitterentropy diff --git a/repos/dde_rump/src/server/rump_fs/file_system.cc b/repos/dde_rump/src/server/rump_fs/file_system.cc index 95d574b01..f2183defe 100644 --- a/repos/dde_rump/src/server/rump_fs/file_system.cc +++ b/repos/dde_rump/src/server/rump_fs/file_system.cc @@ -21,13 +21,14 @@ #include /** - * We define our own fs arg structure to fit all sizes, we assume that 'fspec' - * is the only valid argument and all other fields are unused. + * We define our own fs arg structure to fit all sizes used by the different + * file system implementations, we assume that 'fspec' * is the only valid + * argument and all other fields are unused. */ struct fs_args { char *fspec; - char pad[150]; + char pad[164]; fs_args() { Genode::memset(pad, 0, sizeof(pad)); } }; @@ -131,7 +132,7 @@ void File_system::mount_fs() opts |= RUMP_MNT_NOATIME; if (root_fd == -42) { - root_fd = open("/", O_DIRECTORY | O_RDONLY); + root_fd = rump_sys_open("/", O_DIRECTORY | O_RDONLY); if (root_fd == -1) { Genode::error("opening root directory failed"); throw Genode::Exception(); @@ -145,7 +146,7 @@ void File_system::mount_fs() throw Genode::Exception(); } - int const mnt_fd = open(GENODE_MOUNT_DIR, O_DIRECTORY | O_RDONLY); + int const mnt_fd = rump_sys_open(GENODE_MOUNT_DIR, O_DIRECTORY | O_RDONLY); if (mnt_fd == -1) { Genode::error("opening mnt directory failed"); throw Genode::Exception(); diff --git a/repos/dde_rump/src/server/rump_fs/target.mk b/repos/dde_rump/src/server/rump_fs/target.mk index 7feb523f1..d638270ed 100644 --- a/repos/dde_rump/src/server/rump_fs/target.mk +++ b/repos/dde_rump/src/server/rump_fs/target.mk @@ -1,5 +1,3 @@ TARGET = rump_fs SRC_CC = main.cc file_system.cc random.cc LIBS = base rump rump_fs - -