Author: brooks
Date: Thu Feb  8 20:09:42 2018
New Revision: 329025
URL: https://svnweb.freebsd.org/changeset/base/329025

Log:
  Modernize nfssvc(2) registartion.
  
  Use syscall_helper_register() to register syscalls and do it through the
  module interface rather than sysinit.
  
  This pattern is more common and easier to understand.
  
  Reviewed by:  jhb
  Sponsored by: DARPA, AFRL
  Differential Revision:        https://reviews.freebsd.org/D14232

Modified:
  head/sys/nfs/nfs_nfssvc.c

Modified: head/sys/nfs/nfs_nfssvc.c
==============================================================================
--- head/sys/nfs/nfs_nfssvc.c   Thu Feb  8 19:55:03 2018        (r329024)
+++ head/sys/nfs/nfs_nfssvc.c   Thu Feb  8 20:09:42 2018        (r329025)
@@ -56,9 +56,10 @@ __FBSDID("$FreeBSD$");
 
 #include <nfs/nfssvc.h>
 
-static int nfssvc_offset = SYS_nfssvc;
-static struct sysent nfssvc_prev_sysent;
-MAKE_SYSENT(nfssvc);
+static struct syscall_helper_data nfssvc_syscalls[] = {
+       SYSCALL_INIT_HELPER(nfssvc),
+       SYSCALL_INIT_LAST
+};
 
 /*
  * This tiny module simply handles the nfssvc() system call. The other
@@ -119,16 +120,12 @@ sys_nfssvc(struct thread *td, struct nfssvc_args *uap)
 static int
 nfssvc_modevent(module_t mod, int type, void *data)
 {
-       static int registered;
        int error = 0;
 
        switch (type) {
        case MOD_LOAD:
-               error = syscall_register(&nfssvc_offset, &nfssvc_sysent,
-                   &nfssvc_prev_sysent, SY_THR_STATIC_KLD);
-               if (error)
-                       break;
-               registered = 1;
+               error = syscall_helper_register(nfssvc_syscalls,
+                   SY_THR_STATIC_KLD);
                break;
 
        case MOD_UNLOAD:
@@ -137,9 +134,7 @@ nfssvc_modevent(module_t mod, int type, void *data)
                        error = EBUSY;
                        break;
                }
-               if (registered)
-                       syscall_deregister(&nfssvc_offset, &nfssvc_prev_sysent);
-               registered = 0;
+               syscall_helper_unregister(nfssvc_syscalls);
                break;
        default:
                error = EOPNOTSUPP;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to