mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-18 21:27:56 +00:00
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
This commit is contained in:
parent
15a5db61c8
commit
38abfc79f5
@ -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
|
||||
|
@ -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 :
|
||||
|
||||
|
@ -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 :
|
@ -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))
|
26
repos/dde_rump/lib/mk/rump_common.inc
Normal file
26
repos/dde_rump/lib/mk/rump_common.inc
Normal file
@ -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 :
|
@ -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
|
||||
|
20
repos/dde_rump/lib/mk/rump_include.inc
Normal file
20
repos/dde_rump/lib/mk/rump_include.inc
Normal file
@ -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 :
|
20
repos/dde_rump/lib/mk/rump_prefix.inc
Normal file
20
repos/dde_rump/lib/mk/rump_prefix.inc
Normal file
@ -0,0 +1,20 @@
|
||||
# We prefix any global symbol in object files from SRC_NOLINK with 'rmpns_',
|
||||
# for this we add a 'rmpns_<source file>.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 :
|
98
repos/dde_rump/lib/mk/rump_tools.mk
Normal file
98
repos/dde_rump/lib/mk/rump_tools.mk
Normal file
@ -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)
|
@ -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
|
||||
|
4
repos/dde_rump/lib/mk/spec/arm/rump_include.mk
Normal file
4
repos/dde_rump/lib/mk/spec/arm/rump_include.mk
Normal file
@ -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
|
@ -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
|
||||
|
5
repos/dde_rump/lib/mk/spec/x86_32/rump_include.mk
Normal file
5
repos/dde_rump/lib/mk/spec/x86_32/rump_include.mk
Normal file
@ -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
|
@ -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
|
||||
|
5
repos/dde_rump/lib/mk/spec/x86_64/rump_include.mk
Normal file
5
repos/dde_rump/lib/mk/spec/x86_64/rump_include.mk
Normal file
@ -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
|
@ -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}
|
||||
;;
|
@ -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]
|
12
repos/dde_rump/patches/gram_config.patch
Normal file
12
repos/dde_rump/patches/gram_config.patch
Normal file
@ -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 *);
|
@ -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}
|
@ -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}
|
@ -1 +1 @@
|
||||
8719ed349bf425eb570d0ee7f16acf980b44adb4
|
||||
2e7f21f64fa91b723c2679eb3ed90d8c861d6273
|
||||
|
@ -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 :
|
||||
|
@ -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.") > $@
|
||||
|
988
repos/dde_rump/rump.list
Normal file
988
repos/dde_rump/rump.list
Normal file
@ -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
|
@ -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 {
|
||||
<config>
|
||||
<parent-provides>
|
||||
<service name="ROM"/>
|
||||
<service name="IRQ"/>
|
||||
<service name="IO_MEM"/>
|
||||
<service name="IO_PORT"/>
|
||||
<service name="PD"/>
|
||||
<service name="RM"/>
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
</parent-provides>
|
||||
<default-route>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
<start name="timer">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides><service name="Timer"/></provides>
|
||||
</start>
|
||||
<start name="ram_blk">
|
||||
<resource name="RAM" quantum="20M"/>
|
||||
<provides><service name="Block"/></provides>}
|
||||
append config "
|
||||
<config file=\"$disk_image\" block_size=\"512\"/>"
|
||||
append config {
|
||||
</start>
|
||||
<start name="rump_cgd">
|
||||
<resource name="RAM" quantum="8M" />
|
||||
<provides><service name="Block"/></provides>
|
||||
<config action="configure">
|
||||
<params>
|
||||
<method>key</method>}
|
||||
append config "
|
||||
<key>$cgd_key</key>"
|
||||
append config {
|
||||
</params>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Block"> <child name="ram_blk"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
<start name="rump_fs">
|
||||
<resource name="RAM" quantum="16M"/>
|
||||
<provides><service name="File_system"/></provides>
|
||||
<config fs="ext2fs">
|
||||
<default-policy root="/" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Block"> <child name="rump_cgd"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
<start name="test-libc_vfs">
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<config>
|
||||
<libc stdout="/dev/log">
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<fs/>
|
||||
</vfs>
|
||||
</libc>
|
||||
</config>
|
||||
</start>
|
||||
</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 :
|
@ -47,6 +47,7 @@ append config {
|
||||
<default-route>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
<default caps="100"/>
|
||||
<start name="timer">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides><service name="Timer"/></provides>
|
||||
@ -56,7 +57,7 @@ append config {
|
||||
<provides><service name="Block"/></provides>
|
||||
<config file="fs.raw" block_size="512"/>
|
||||
</start>
|
||||
<start name="rump_fs">
|
||||
<start name="rump_fs" caps="200">
|
||||
<resource name="RAM" quantum="8M" />
|
||||
<provides><service name="File_system"/></provides>
|
||||
<config fs="msdos"><default-policy root="/" writeable="yes"/></config>
|
||||
|
@ -14,7 +14,7 @@
|
||||
extern "C" {
|
||||
#include <sys/types.h>
|
||||
#include <rump/rumpuser.h>
|
||||
#include <elf.h>
|
||||
#include <exec_elf.h>
|
||||
}
|
||||
|
||||
#include <rump/env.h>
|
||||
@ -24,8 +24,6 @@ extern "C" {
|
||||
#include <util/string.h>
|
||||
|
||||
|
||||
extern "C" void wait_for_continue();
|
||||
|
||||
#ifdef _LP64
|
||||
typedef Elf64_Dyn Elf_Dyn;
|
||||
typedef Elf64_Sym Elf_Sym;
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include <util/random.h>
|
||||
#include <util/string.h>
|
||||
|
||||
extern "C" void wait_for_continue();
|
||||
enum { SUPPORTED_RUMP_VERSION = 17 };
|
||||
|
||||
static bool verbose = false;
|
||||
|
@ -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 <util/string.h>
|
||||
|
||||
|
||||
/*
|
||||
* 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);
|
||||
}
|
1
repos/dde_rump/src/rump_dummy/target.mk
Normal file
1
repos/dde_rump/src/rump_dummy/target.mk
Normal file
@ -0,0 +1 @@
|
||||
LIBS = rump2 rump2_fs
|
@ -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 <base/log.h>
|
||||
#include <block_session/connection.h>
|
||||
#include <block/component.h>
|
||||
#include <os/packet_allocator.h>
|
||||
|
||||
/* 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_ */
|
@ -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 <base/attached_rom_dataspace.h>
|
||||
|
||||
/* repo includes */
|
||||
#include <rump_cgd/cgd.h>
|
||||
|
||||
/* local includes */
|
||||
#include "cgd.h"
|
||||
|
||||
/* rump includes */
|
||||
extern "C" {
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/dirent.h>
|
||||
#include <sys/disklabel.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/reboot.h>
|
||||
#include <dev/cgdvar.h>
|
||||
#include <rump/rump.h>
|
||||
#include <rump/rump_syscalls.h>
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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<unsigned char const*>(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<unsigned char*>(&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<unsigned *>(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 <params> 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);
|
||||
}
|
@ -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 <base/signal.h>
|
||||
|
||||
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_ */
|
@ -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 <base/env.h>
|
||||
#include <base/component.h>
|
||||
|
||||
/* 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);
|
||||
}
|
@ -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 <base/log.h>
|
||||
|
||||
/* local rump includes */
|
||||
#include <rump/env.h>
|
||||
#include <util/random.h>
|
||||
|
||||
/* library includes */
|
||||
#include <jitterentropy.h>
|
||||
|
||||
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> _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;
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
TARGET = rump_cgd
|
||||
|
||||
SRC_CC = cgd.cc main.cc random.cc
|
||||
LIBS = base rump rump_cgd jitterentropy
|
@ -21,13 +21,14 @@
|
||||
#include <base/attached_rom_dataspace.h>
|
||||
|
||||
/**
|
||||
* 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();
|
||||
|
@ -1,5 +1,3 @@
|
||||
TARGET = rump_fs
|
||||
SRC_CC = main.cc file_system.cc random.cc
|
||||
LIBS = base rump rump_fs
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user