Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c =================================================================== --- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c +++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c @@ -7333,6 +7333,6 @@ DECLARE_MODULE(zfsctrl, zfs_mod, SI_SUB_VFS, SI_ORDER_ANY); MODULE_VERSION(zfsctrl, 1); MODULE_DEPEND(zfsctrl, opensolaris, 1, 1, 1); -MODULE_DEPEND(zfsctrl, krpc, 1, 1, 1); +MODULE_DEPEND(zfsctrl, xdr, 1, 1, 1); MODULE_DEPEND(zfsctrl, acl_nfs4, 1, 1, 1); MODULE_DEPEND(zfsctrl, zlib, 1, 1, 1); Index: sys/conf/files =================================================================== --- sys/conf/files +++ sys/conf/files @@ -4983,9 +4983,9 @@ xen/xenbus/xenbusb_front.c optional xenhvm xen/xenbus/xenbusb_back.c optional xenhvm xen/xenmem/xenmem_if.m optional xenhvm -xdr/xdr.c optional krpc | nfslockd | nfscl | nfsd -xdr/xdr_array.c optional krpc | nfslockd | nfscl | nfsd -xdr/xdr_mbuf.c optional krpc | nfslockd | nfscl | nfsd -xdr/xdr_mem.c optional krpc | nfslockd | nfscl | nfsd -xdr/xdr_reference.c optional krpc | nfslockd | nfscl | nfsd -xdr/xdr_sizeof.c optional krpc | nfslockd | nfscl | nfsd +xdr/xdr.c optional xdr | krpc | nfslockd | nfscl | nfsd +xdr/xdr_array.c optional xdr | krpc | nfslockd | nfscl | nfsd +xdr/xdr_mbuf.c optional xdr | krpc | nfslockd | nfscl | nfsd +xdr/xdr_mem.c optional xdr | krpc | nfslockd | nfscl | nfsd +xdr/xdr_reference.c optional xdr | krpc | nfslockd | nfscl | nfsd +xdr/xdr_sizeof.c optional xdr | krpc | nfslockd | nfscl | nfsd Index: sys/conf/options =================================================================== --- sys/conf/options +++ sys/conf/options @@ -469,6 +469,7 @@ TCP_RFC7413_MAX_PSKS opt_inet.h TCP_SIGNATURE opt_ipsec.h VLAN_ARRAY opt_vlan.h +XDR XBONEHACK # Index: sys/modules/Makefile =================================================================== --- sys/modules/Makefile +++ sys/modules/Makefile @@ -385,6 +385,7 @@ ${_wpi} \ ${_wpifw} \ ${_x86bios} \ + xdr \ xl \ xz \ zlib Index: sys/modules/krpc/Makefile =================================================================== --- sys/modules/krpc/Makefile +++ sys/modules/krpc/Makefile @@ -1,6 +1,6 @@ # $FreeBSD$ -.PATH: ${SRCTOP}/sys/rpc ${SRCTOP}/sys/xdr +.PATH: ${SRCTOP}/sys/rpc KMOD= krpc SRCS= auth_none.c \ auth_unix.c \ @@ -23,13 +23,6 @@ svc_generic.c \ svc_vc.c \ -SRCS+= xdr.c \ - xdr_array.c \ - xdr_mbuf.c \ - xdr_mem.c \ - xdr_reference.c \ - xdr_sizeof.c - SRCS+= opt_inet6.h .include Index: sys/modules/xdr/Makefile =================================================================== --- /dev/null +++ sys/modules/xdr/Makefile @@ -0,0 +1,12 @@ +# $FreeBSD$ + +.PATH: ${SRCTOP}/sys/xdr +KMOD= xdr +SRCS= xdr.c \ + xdr_array.c \ + xdr_mbuf.c \ + xdr_mem.c \ + xdr_reference.c \ + xdr_sizeof.c + +.include Index: sys/rpc/rpc_generic.c =================================================================== --- sys/rpc/rpc_generic.c +++ sys/rpc/rpc_generic.c @@ -882,3 +882,4 @@ /* So that loader and kldload(2) can find us, wherever we are.. */ MODULE_VERSION(krpc, 1); +MODULE_DEPEND(krpc, xdr, 1, 1, 1); Index: sys/rpc/rpc_prot.c =================================================================== --- sys/rpc/rpc_prot.c +++ sys/rpc/rpc_prot.c @@ -61,8 +61,6 @@ #include #include -MALLOC_DEFINE(M_RPC, "rpc", "Remote Procedure Call"); - #define assert(exp) KASSERT(exp, ("bad arguments")) static enum clnt_stat accepted(enum accept_stat, struct rpc_err *); Index: sys/xdr/xdr.c =================================================================== --- sys/xdr/xdr.c +++ sys/xdr/xdr.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #include @@ -65,6 +66,8 @@ #define XDR_FALSE ((long) 0) #define XDR_TRUE ((long) 1) +MALLOC_DEFINE(M_RPC, "rpc", "Remote Procedure Call"); + /* * for unit alignment */ @@ -834,3 +837,20 @@ */ return (xdr_uint64_t(xdrs, (uint64_t *)ullp)); } + +/* + * Kernel module glue + */ +static int +xdr_modevent(module_t mod, int type, void *data) +{ + + return (0); +} +static moduledata_t xdr_mod = { + "xdr", + xdr_modevent, + NULL, +}; +DECLARE_MODULE(xdr, xdr_mod, SI_SUB_VFS, SI_ORDER_ANY); +MODULE_VERSION(xdr, 1);