Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Jun 2005 20:09:20 GMT
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 79328 for review
Message-ID:  <200506302009.j5UK9Kc0065926@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=79328

Change 79328 by peter@peter_daintree on 2005/06/30 20:08:44

	Replicate syscalls added by kernel modules from main to ia32. This
	is for a local problem.

Affected files ...

.. //depot/projects/hammer/sys/kern/kern_syscalls.c#4 edit

Differences ...

==== //depot/projects/hammer/sys/kern/kern_syscalls.c#4 (text+ko) ====

@@ -27,6 +27,8 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/sys/kern/kern_syscalls.c,v 1.11 2004/07/15 08:26:05 phk Exp $");
 
+#include "opt_compat.h"
+
 #include <sys/param.h>
 #include <sys/sysproto.h>
 #include <sys/sysent.h>
@@ -36,6 +38,10 @@
 #include <sys/sx.h>
 #include <sys/module.h>
 
+#ifdef COMPAT_IA32
+extern struct sysent freebsd32_sysent[];
+#endif
+
 /*
  * Acts like "nosys" but can be identified in sysent for dynamic call 
  * number assignment for a limited number of calls. 
@@ -75,14 +81,21 @@
 
        *old_sysent = sysent[*offset];
        sysent[*offset] = *new_sysent;
+#ifdef COMPAT_IA32
+	freebsd32_sysent[*offset] = *new_sysent;
+#endif
        return 0;
 }
 
 int
 syscall_deregister(int *offset, struct sysent *old_sysent)
 {
-       if (*offset)
+       if (*offset) {
                sysent[*offset] = *old_sysent;
+#ifdef COMPAT_IA32
+		freebsd32_sysent[*offset] = freebsd32_sysent[0];
+#endif
+	}
        return 0;
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200506302009.j5UK9Kc0065926>