From owner-freebsd-bugs@FreeBSD.ORG Sun Jul 9 21:40:23 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A6B3216A730 for ; Sun, 9 Jul 2006 21:40:23 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id D9E7743D86 for ; Sun, 9 Jul 2006 21:40:17 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k69LeHT4000989 for ; Sun, 9 Jul 2006 21:40:17 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k69LeHen000985; Sun, 9 Jul 2006 21:40:17 GMT (envelope-from gnats) Resent-Date: Sun, 9 Jul 2006 21:40:17 GMT Resent-Message-Id: <200607092140.k69LeHen000985@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Intron Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6DC5B16A5C6 for ; Sun, 9 Jul 2006 21:39:58 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4B09443F6D for ; Sun, 9 Jul 2006 21:36:23 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k69LaNaQ055392 for ; Sun, 9 Jul 2006 21:36:23 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id k69LaNDX055391; Sun, 9 Jul 2006 21:36:23 GMT (envelope-from nobody) Message-Id: <200607092136.k69LaNDX055391@www.freebsd.org> Date: Sun, 9 Jul 2006 21:36:23 GMT From: Intron To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Cc: Subject: kern/99979: Get Ready for Kernel Module in C++ X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Jul 2006 21:40:23 -0000 >Number: 99979 >Category: kern >Synopsis: Get Ready for Kernel Module in C++ >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun Jul 09 21:40:17 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Intron >Release: 7.0-CURRENT >Organization: China >Environment: 7.0-CURRENT, Intel Celeron 1.7GHz >Description: I would write my kernel module in C++, just like IOKit of OpenDarwin. Thus, all conflicts against C++ in current FreeBSD kernel source must be swept out firstly. Here, I submit patches for _null.h, libkern.h and systm.h in /sys/sys/. 1. _null.h.diff: Now C++ code may also appear inside kernel source. 2. libkern.h.diff: C++ prohibits undeclared incompatible cast. 3. systm.h.diff: The word "new" is a perserved word of C++. >How-To-Repeat: >Fix: --- _null.h.orig Mon Jul 10 05:13:36 2006 +++ _null.h Mon Jul 10 04:58:08 2006 @@ -23,12 +23,12 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: /repoman/r/ncvs/src/sys/sys/_null.h,v 1.7 2005/01/07 02:29:23 imp Exp $ + * $FreeBSD: src/sys/sys/_null.h,v 1.7 2005/01/07 02:29:23 imp Exp $ */ #ifndef NULL -#if defined(_KERNEL) || !defined(__cplusplus) +#if defined(_KERNEL) && !defined(__cplusplus) #define NULL ((void *)0) #else #if defined(__LP64__) @@ -36,6 +36,6 @@ #else #define NULL 0 #endif /* __LP64__ */ -#endif /* _KERNEL || !__cplusplus */ +#endif /* _KERNEL && !__cplusplus */ #endif ----------------------------------------------------------------------------- --- libkern.h.orig Mon Jul 10 05:15:46 2006 +++ libkern.h Mon Jul 10 04:09:36 2006 @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)libkern.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: /repoman/r/ncvs/src/sys/sys/libkern.h,v 1.52 2005/10/06 19:06:07 pjd Exp $ + * $FreeBSD: src/sys/sys/libkern.h,v 1.52 2005/10/06 19:06:07 pjd Exp $ */ #ifndef _SYS_LIBKERN_H_ @@ -115,7 +115,7 @@ static __inline uint32_t crc32_raw(const void *buf, size_t size, uint32_t crc) { - const uint8_t *p = buf; + const uint8_t *p = (const uint8_t *) buf; while (size--) crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8); ----------------------------------------------------------------------------- --- systm.h.orig Mon Jul 10 05:17:29 2006 +++ systm.h Mon Jul 10 04:07:15 2006 @@ -32,7 +32,7 @@ * SUCH DAMAGE. * * @(#)systm.h 8.7 (Berkeley) 3/29/95 - * $FreeBSD: /repoman/r/ncvs/src/sys/sys/systm.h,v 1.240 2006/02/11 09:33:07 phk Exp $ + * $FreeBSD: src/sys/sys/systm.h,v 1.240 2006/02/11 09:33:07 phk Exp $ */ #ifndef _SYS_SYSTM_H_ @@ -203,7 +203,7 @@ int suword16(void *base, int word); int suword32(void *base, int32_t word); int suword64(void *base, int64_t word); -intptr_t casuptr(intptr_t *p, intptr_t old, intptr_t new); +intptr_t casuptr(intptr_t *p, intptr_t old, intptr_t _new); void realitexpire(void *); >Release-Note: >Audit-Trail: >Unformatted: