Module Name:    src
Committed By:   joerg
Date:           Fri Jan 20 00:25:29 UTC 2012

Modified Files:
        src/sys/lib/libkern: Makefile.libkern
        src/sys/sys: socket.h

Log Message:
Don't use __cmsg_alignbytes in the kernel. Mark it as constant function
for userland as its value never changes. This allows the compiler to
optimise most invocations away.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/lib/libkern/Makefile.libkern
cvs rdiff -u -r1.101 -r1.102 src/sys/sys/socket.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/Makefile.libkern
diff -u src/sys/lib/libkern/Makefile.libkern:1.15 src/sys/lib/libkern/Makefile.libkern:1.16
--- src/sys/lib/libkern/Makefile.libkern:1.15	Sat Nov 19 22:51:25 2011
+++ src/sys/lib/libkern/Makefile.libkern	Fri Jan 20 00:25:29 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.libkern,v 1.15 2011/11/19 22:51:25 tls Exp $
+#	$NetBSD: Makefile.libkern,v 1.16 2012/01/20 00:25:29 joerg Exp $
 
 # 
 # Variable definitions for libkern.  
@@ -58,7 +58,7 @@ SRCS+=	adddi3.c anddi3.c ashldi3.c ashrd
 
 # Other stuff
 SRCS+=	kern_assert.c __main.c
-SRCS+=	__cmsg_alignbytes.c cpuset.c inet_addr.c intoa.c
+SRCS+=	cpuset.c inet_addr.c intoa.c
 .if empty(SRCS:Mbyte_swap_8.*)
 SRCS+=	bswap64.c
 .endif

Index: src/sys/sys/socket.h
diff -u src/sys/sys/socket.h:1.101 src/sys/sys/socket.h:1.102
--- src/sys/sys/socket.h:1.101	Tue Dec 20 23:56:29 2011
+++ src/sys/sys/socket.h	Fri Jan 20 00:25:29 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: socket.h,v 1.101 2011/12/20 23:56:29 christos Exp $	*/
+/*	$NetBSD: socket.h,v 1.102 2012/01/20 00:25:29 joerg Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -531,8 +531,11 @@ struct cmsghdr {
  * without (2), we can't guarantee binary compatibility in case of future
  * changes in ALIGNBYTES.
  */
-#define __CMSG_ALIGN(n)	(((n) + __cmsg_alignbytes()) & ~__cmsg_alignbytes())
 #ifdef _KERNEL
+#define __CMSG_ALIGN(n)	(((n) + ALIGNBYTES) & ~ALIGNBYTES)
+#define CMSG_ALIGN(n)	__CMSG_ALIGN(n)
+#else
+#define __CMSG_ALIGN(n)	(((n) + __cmsg_alignbytes()) & ~__cmsg_alignbytes())
 #define CMSG_ALIGN(n)	__CMSG_ALIGN(n)
 #endif
 
@@ -574,9 +577,11 @@ struct cmsghdr {
 
 #include <sys/cdefs.h>
 
+#ifndef	_KERNEL
 __BEGIN_DECLS
-int	__cmsg_alignbytes(void);
+int	__cmsg_alignbytes(void) __constfunc;
 __END_DECLS
+#endif
 
 #ifdef	_KERNEL
 static inline socklen_t

Reply via email to